Vroting / ruijieclient

Automatically exported from code.google.com/p/ruijieclient
GNU Lesser General Public License v3.0
0 stars 0 forks source link

贡献一些材料 #36

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
cpp.txt里面的内容是根据3.50改的一段TailerPacket,源码来自mentos
u,已经核对过。
ida.txt是对应的用ida反汇编的源码(只给了填写主要数据包的�
��个函数,在ida里函数名称是
sub42b510,可以自己反汇编8021x.exe后找到),已经根据实际发送�
��包添加了本人能知道的注
释。

剩下的是我们学校的8021x.exe和同一次认证下的三个包。

上面内容基本上没有什么技术含量,因为本人对C和汇编只算�
��有所了解,本来是想自己完善
mentosu以支持3.50以上的版本,但是现在由于能力限制只能放弃
,把一年来的结果放到这里,
有需要的人可以用作参考,当然也很有可能没什么用。

还需要更详细的材料可以联系我。ben304zhe@gmail.com

Original issue reported on code.google.com by ben304...@gmail.com on 23 Oct 2009 at 11:48

Attachments:

GoogleCodeExporter commented 8 years ago
再说一句,听说锐捷用了v3版本的算法我不知道这个说法正不
正确,因为观察整个包来说,3.50后续的版本只
增加了一个而外的数据段,前面基本上没什么改动。所以我��
�猜想是前面的eblog和md5部分一直没变,问题只
在于后面多出来的vz_api算出的那部分数据

Original comment by ben304...@gmail.com on 23 Oct 2009 at 11:52

GoogleCodeExporter commented 8 years ago
看了一下cpp.txt,其中还是有些不准的地方。
V3算法是锐捷官方的一份PDF文档中说的,“2.x版本中只有V2算�
��,3.x中同时存在V2、V3算法”,大概就
是指那32字节和128字节。
那32字节只要将Soar的算法稍作修改就行了(MentoHUST就这么做��
�
http://code.google.com/p/mentohust/),那128字节由vz_api算出,才是难
点重点,md5校验阶段不
知是怎么算出来的,其他阶段就是连续取32个随机数再格式化
。
看你的ida.txt貌似反汇编得不错,要是能把精力用在攻克vz_api�
��就好了。
以下是编写MentoHUST时的Start抓包分析:
目标Mac
源Mac
协议相关(88 8e 01 01)
长度(00 00)
ff ff 37 77 //00 00 13 11
ff      //DHCP 00关01开
84 d7 c3 ce //本机IP
00 00 00 fe //子网掩码
84 d7 c3 80 //网关IP
ac b1 ff b0 //DNS IP
29 ac       //验证值
00 00 13 11 38 30 32 31 78 2e 65 78 65  //8021x.exe
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
03 1e 00 00 //版本3.30 系统0 客户端类型0
00          //不确定,可能没用
00 00 13 11 01 
33  //不确定,见过33、7B、43,与长度有关?xrgsu为0028
1a 28 00 00 13 11 17 22
//各不相同,范例如下
[取 1 取 2 取 3 取 4 取5]
35 30 37 38 32 31 32 42  34 45 32 37 45 33 43 37
32 45 34 34 39 34 35 42  37 43 36 33 38 38 34 39
1a 0c 00 00 13 11 18 06 00 00 00 00 //第一次01
1a 0e 00 00 13 11 2d 08 00 00 00 00 00 00(6位本机Mac)
1a 08 00 00 13 11 2f 02
//也有MD5阶段为1a 18 00 00 13 11 2f 12 d1 a0 90 cc 1c 9a 19 75 aa dd c7 37 
59 d3 92 2b
1a 09 00 00 13 11 35 03 00  //不使用和第二次00?
1a 18 00 00 13 11 36 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
//也有1a 18 00 00 13 11 36 12 00 00 00 00 00 00 00 00 00 00 45 09 08 08 00 00
1a 18 00 00 13 11 38 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
//IPv6地址
1a 88 00 00 13 11 4d 82
//各不相同,范例如下
35 30 37 38 32 31 32 62  30 34 65 32 37 65 33 63
37 32 65 34 34 38 33 37  36 65 30 38 30 63 32 34
34 30 35 38 30 30 39 36  34 66 66 63 37 64 35 34
37 65 65 31 30 38 65 65  37 63 35 63 37 34 34 33
34 31 32 61 37 62 30 66  37 30 34 32 35 39 65 65
36 62 34 64 30 64 37 62  31 66 62 65 34 62 37 61
37 39 65 39 30 65 32 36  31 35 38 34 30 62 31 62
33 66 37 35 37 61 37 61  33 61 65 31 37 38 33 34
1a 28 00 00 13 11 39 22
00....00
1a 48 00 00 13 11 54 42 36 51 46 34 58 32 4A 59 //可能存在6QF4X2JY

类型|总长度    |Vendor-Id  |Vendor 类型|Vendor长度 |属性值
1a|0e       |00 00 13 11|2d     |08     |00 22 15 86 13 4c

0x17    0x22    32位校验
0x18    0x06    DHCP第几次
0x2d    0x08    客户机MAC
0x2f    0x02/12 未知
0x35    0x03    未知,DHCP?
0x36    0x12    未知,多全为0
0x38    0x12    IPv6地址
0x39    0x22    未知,目前全为0
0x4d    0x82    128位校验
0x54    0x42    未知

以下摘自那份pdf文档,原始的已删除,未备份:
算法配置项,以第一个为例:
“0x”和“Alg”为固定内容, “0x”和“Alg”之间的部分为 
Su 版本代号。 
主、从版本号用十六进制表示,比如上图中的从版本号,十��
�进制值为 28,表示从版本号为 40。 
操作系统类型支持两种:00 表示 Windows,01表示 Linux。 
客户端类型支持三种:00 表示 SuA,02 表示 SuForGSN。 
防破解算法支持两种:V2 表示 V2 版算法,V3 表示 V3 
版算法。 

有精力的话还是去研究vz_api生成那128字节的算法吧,其他地��
�基本没必要研究了。

Original comment by hustsoft...@gmail.com on 23 Oct 2009 at 9:45

GoogleCodeExporter commented 8 years ago
我曾经有过在windows下直接注入vz_zpi.dll然后调用的想法,可是
不知道能不能这样操作。

Original comment by ben304...@gmail.com on 24 Oct 2009 at 7:41

GoogleCodeExporter commented 8 years ago
这样不就只能用在 ia32 平台了吗? 不好

Original comment by microcai...@gmail.com on 30 Oct 2009 at 2:01

GoogleCodeExporter commented 8 years ago
虽然不懂什么叫做ia32,但是猜想楼上的意思是说win32,我觉��
�做这种尝试就可以很直接判断v3算法是否只
跟后面的128字节有关,而且实施起来应该并不难吧?

Original comment by ben304...@gmail.com on 30 Oct 2009 at 4:57

GoogleCodeExporter commented 8 years ago
MentoHUST已经这么尝试过了:对锐捷认证的数据抓包做成MentoHUS
T的数据文件,在Start阶段调
用Vz_api.dll生成128字节的随机数写入抓包的Start包相应部分,��
�MD5阶段载入W32N55.dll,然
后调用Vz_api.dll又生成128字节写入MD5包相应部分,MentoHUST生成�
��32字节的算法是准确的,
结果是不可行。不知你打算怎样调用?

Original comment by www.eh...@gmail.com on 31 Oct 2009 at 5:48

GoogleCodeExporter commented 8 years ago
正是你说的那样,其实我并不清楚代码上怎么实现。如果结��
�是那样的话那就可能是vz_api对整个内存的某些
部分加入了运算...

Original comment by ben304...@gmail.com on 1 Nov 2009 at 11:46

GoogleCodeExporter commented 8 years ago
虽然我不懂,但是我觉得可以这样先试一下,反汇编vz_api.dll�
��具体使用了哪些数据,然后改vz_api或者
mentohust的内存使它们完全一致

Original comment by ben304...@gmail.com on 1 Nov 2009 at 11:52

GoogleCodeExporter commented 8 years ago
反正实现这个想法也是有难度的,那个vz_api.dll体积有近百kb��
�功能就是计算那128个字节,很
多人都是弄了一半就弄不下去了。当然,这是我们水平有限��
�你可以试试,说不定你可以解决。

Original comment by www.eh...@gmail.com on 1 Nov 2009 at 2:54

GoogleCodeExporter commented 8 years ago
我不清楚现在大家的研究重点是什么,是算法还是其他的,��
�果现在唯一的问题是算法的话大家都应该关注这
128字节,其它字节基本上都攻破了吧?
而且不好意思,我只是有这些想法,对于C和汇编我实在很菜�
��菜...
或者我尝试一下反汇编vz_api,把里面使用的内存段尽量都找��
�来。

Original comment by ben304...@gmail.com on 2 Nov 2009 at 2:47

GoogleCodeExporter commented 8 years ago
是算法.
这个是大难点阿

Original comment by microcai...@gmail.com on 2 Nov 2009 at 4:23

GoogleCodeExporter commented 8 years ago
3.6,似乎xgrsu还能用。。。

Original comment by sthots on 8 Nov 2009 at 7:55

GoogleCodeExporter commented 8 years ago
各位的V3无法认证是返回什么错误?
非管理员指定的客户端?ip动态类型绑定错误?

Original comment by yzlkes...@gmail.com on 8 Nov 2009 at 8:11

GoogleCodeExporter commented 8 years ago
V3 算法啊。目前还破解出来

Original comment by microcai...@gmail.com on 15 Nov 2009 at 2:52

GoogleCodeExporter commented 8 years ago
是没破解 就是问拿v2认证v3是什么返回

Original comment by yzlkes...@gmail.com on 21 Nov 2009 at 2:47

GoogleCodeExporter commented 8 years ago
ida 跑出来的  谁能看懂?

Original comment by yzlkes...@gmail.com on 22 Nov 2009 at 4:35

Attachments:

GoogleCodeExporter commented 8 years ago
楼上的包在我的机子上没有任何显示,是不是类似于IDA里面��
�TREEVIEW?

Original comment by ben304...@gmail.com on 23 Nov 2009 at 4:53

GoogleCodeExporter commented 8 years ago
不是什么了不起的东西  ida里的流程图

Original comment by yzlkes...@gmail.com on 23 Nov 2009 at 11:42

GoogleCodeExporter commented 8 years ago
看看这个呢 反出来的C

Original comment by yzlkes...@gmail.com on 23 Nov 2009 at 2:54

Attachments:

GoogleCodeExporter commented 8 years ago
楼上别激动,你的C也是ida弄出来的吧,都没什么了不起的,�
��题是这段C你编译过了吗?

Original comment by ben304...@gmail.com on 23 Nov 2009 at 6:17

GoogleCodeExporter commented 8 years ago
没有编译过  而且我没激动啊 汗  看来我措辞不当啊
这个主要看看算法吧 

“话说这个DLL不是算法部分的DLL么…为什么会在加载的时候��
�判断自己是不是已经被加载…你给出
的部分就是dllmain,还是个假的链接器构造的入口,真入口在R
awDllMain里面,注册了自身信
息,以及读取了一些非标准资源。
里面有三个超过500行的大函数,三个超过1200行的函数,以及�
��个达到5600多行的函数,读起来
非常没有难度加恶心…反正看到Graph就恶心了…还有代码编写
非常没有水准,大段大段的Ctrl+C
Ctrl+V…”

Original comment by yzlkes...@gmail.com on 24 Nov 2009 at 5:39

GoogleCodeExporter commented 8 years ago
Thinks . I don't have ida. Thanks for de-compile for us all.

Original comment by microcai...@gmail.com on 24 Nov 2009 at 3:47