精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● 计算机安全>>◇软件解析◇>>针对OICQ的分析计划书

主题:针对OICQ的分析计划书
发信人: 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]

[关闭][返回]