发信人: ciert() 
整理人: ciert(1999-11-29 09:43:06), 站内信件
 | 
 
 
背景:
 OICQ是一个优秀的国内公司开发的在线通讯软件,
 在国内使用越来越广泛,累计人数目前已经达到
 80万左右。因此使用和关心的人也越来越多,由于
 模拟样板-icq的早期版本存在比较严重的安全问题,
 所以本人想开始一个分析OICQ的计划。
 
 序言:
 OICQ不提供查看其他用户的功能,并且通过其用户界面
 可以进行的操作很有限。因此在网易计算机安全版(以下称
 本版)不时有人提问如何获得OICQ中其他用户的IP,本着
 分析OICQ的安全性的原则,以查看其他用户IP为出发条件。
 我号召在本版开展这个分析计划。
 
 技术背景:
 通过一次比较短暂的sniffer,我将目前掌握的技术内容公布
 如下,OICQ整个系统分为Client和Server两个部分,其Client
 部分安装在用户处,Server目前只有sz.oicq.com一台主机。
 Client和Server之间通讯采用UDP协议,Client采取本地端口4000
 远程端口8000的UDP封装。Server返回信息采用本地端口8000,
 远端端口4000的UDP封装。 当同一客户机器上同时启动两个或更多
 OICQ时候,响应OICQ采用4001本地端口4002及顺延。
 
 由于UDP协议不保证数据肯定发送到远端,所以OICQ在收到服务器回应
 前,会反复发送UDP封包(对于DDN以流量计费,而且速度不快的用户来说
 OICQ是个吃钱大头) ,在OICQ用户互相通讯时候,采用直接向其他用户
 发送UDP包,无反馈十余次以后,改用服务器发送。因此,OICQ必然会而且
 能够得到其他用户的IP地址。否则将无法完成这个过程。这一点通过Sniffer
 已经得到证实。
 
 OICQ client的UDP发送包平均长约26~38byte,其有效字段为12~20个字节。
 UDP数据区首三个字节 02 01 04 为基本固定,猜测为OICQ内部协议特征字符
 第四个字节猜测为命令号,用来指示Server进行不同的操作。
 例如第四字节 03H 可能表示注册
             13H 可能表示认证
             09H 可能表示获取id详细情况
             05H 可能表示查找
 
 整个UDP包以03H为终止符号,数据区长度不足18字节的则用20H填充满18字节。
  
 
 超过18字节则以03H终止,不再填补空格。
 
 当第四字节为06H 或者14H,或者是组合使用时候(粗看以后未能发觉哪个
 起主要作用)配合尾随字节的填充数据,可以获得任一在线用户的IP
 地址和端口号。
 
 分析结果:
    此分析计划结果是彻底解析出OICQ全部的内部基本协议,并希望随着此
 计划能够同时利用分析结果开发出几个原理实现工具。 
 
 分析方法主要是通过包拦截和包解码。
 
 谁是参与者?
 任何人,不需要任何申请和注册,都可以成为本计划的参与者。
 我是这个计划的协调者,每个参与者可以将自己对oicq协议的发现的心得
 写mail给我或者直接贴在本版,我会一并汇总,同时,我将集合每个
 人的见解和发现,不定期发布最新结果,并且将完成主要分析结果报告和
 完成专用分析软件或者原理展示工具。
 
 为什么有这个计划?
 基本的出发点有两个,一是提高一下大家对网络分析的兴趣,顺便熟悉
 一下一些工具软件和UDP协议、IP协议,同时希望能够因此本版能够
 更加有活力。
 二是为了引起oicq提供者的重视,未将来版本的oicq的安全性作出更多的
 考虑。
 
 本分析计划不牵涉代码分析和逆向工程,因此不违反知识产权保护等法律。
 这个分析计划将持续2个星期至3个月,
 这主要看参与者踊跃程度和分析的进展。
 
 我衷心希望大家都能参与到这个有趣的计划里来(确实蛮有趣,至少我觉得
 是这样)
 
 参加者可以设法获得一些sniffer程序或者协议分析器,
 比如ipman,netxray等,或者可以设法获得一些UDP转发monitor。
 同时需要参考一些网络资料。
 过几天我会整理一些技术参考资料,一并发布。
 我的mail是[email protected],欢迎大家咨询。
 最后声明,本计划不牵涉任何商业因素和政治因素,计划进展的任何一部分
 都将是公开的。本计划的分析过程中伴随开发的相关分析软件或者原理展示
 工具也将是完全公开的。
 
 再次热烈欢迎大家参与。
 
 
 
 
 -- ===========================================================
       ●       ●)     ●      ●)   \●/    \●
     <┃>   (┃     (┃)   ( )    ┃┃      ( >
      /\     / )    (\    / )   /  \     /\
   ==左三圈,右三圈,脖子扭扭,屁股扭扭,大家一起来做运动==    
 ===========================================================
  ※ 修改:.ciert 于 Nov 29 01:42:13 修改本文.[FROM: 202.96.232.233] ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.232.233]
  | 
 
 
 |