minieap
minieap copied to clipboard
锐捷6.8是真的无力啊。。一点办法没有
目前算法只适用于官方 Linux 客户端能用的环境。试试学校的官方 Linux 版还能不能用?
学校官方的客户端已经有很长时间不更新了
我校客户端也好几年没更新了,但一样能过认证。还请测试。
学校win版本稍微低一点就非管理员指定的客户端,然后黑名单。。。
可以提供winshark抓包文件
可以用电子邮件发到 [email protected],我看看有没有新增字段…… 不过如果是算法问题,那就没有办法了。
好的,课后回去发
你好,已发送
@updateing 已经发现Windows版本的校验算法了? 好像你让他发给你Windows下抓的包没有什么意义啊
并没有,我是想如果字段补充完整的话至少不会被发现版本过低而黑名单,只会密码错误。这样的话能够方便后续测试。
比如这里多出和不同的字段(MD5 Response 为例):
# 多出,是个表示十六进制的 ASCII 字符串,会变,不同包中大小写还会不同
INFO:
header->type = 0x17
header->len = 0x22 (including type and len, actual size = 0x20)
content(hex) =
...
# 缺少 0x55,本来是空字段
# 多出
INFO:
header->type = 0x6b
header->len = 0x03 (including type and len, actual size = 0x01)
content(hex) =
00
# 多出,我校 6.60 版客户端这里是 00 00 01 00 00 04 00 00,我猜可能是版本相关?
INFO:
header->type = 0x7e
header->len = 0x0a (including type and len, actual size = 0x08)
content(hex) =
00 00 01 00 00 0c 00 00
# 改变,Linux 版这里是版本字符串
INFO:
header->type = 0x6f
header->len = 0x03 (including type and len, actual size = 0x01)
content(hex) =
00
# 多出
INFO:
header->type = 0x79
header->len = 0x03 (including type and len, actual size = 0x01)
content(hex) =
02
@updateing 其实我觉得我们这样对比字段逐个猜测还是太浪费时间了,况且还没有找出新的Windows版本处理反破解数据的方法 如果真的希望模拟windows版本,还是要逆向,但是Windows版本更新是比较频繁的,你会花上更长的时间和星网锐捷拉锯战 我依然觉得还是把这个项目的关注者往Linux版本上面引导(毕竟向学校提出要使用Linux系统对我们这些专业也算是正当理由了)比较好
是这样说,应该对学校提出要求,而且我在每个 issue 最开头也是说先尝试学校的 Linux 版本了。但确实不能指望学校太多(最近发生一些事让我对我校网络中心的印象变差很多)……
基本搞定,但是发送心跳包还是有问题,隔几分钟就掉线,学校的心跳可能也升级了
@ifwangs 如果你们学校使用Linux客户端没问题的话,看看他们的心跳设计
除此之外也可能有心跳间隔问题。超出宽限期后就会掉线。
Windows 的心跳包确实会不同,不清楚现在这样简单的心跳是否通用……
是直接改windows包的md5就发出去了?
不是,是很简单的格式,从 MentoHUST 继承过来的……
我指的是认证用的那三个包,心跳好像一直都没怎么注意,估计是有改动的,因为不记得在哪里好像看到过v3心跳这样的字眼
认证用的三个包是根据抓官方 Linux 版的包得到的字段列表自己生成出来的,不是套模板改出来的。
所以意思就是说实际上这个学校的设置还是能用Linux的客户端的? 另外你提到了字段和客户端版本的问题,这么说来不是通过md5计算的结果判断的? 如果是的话感觉有些什么东西我理解错了…
Hamster Tian [email protected]于2017年3月1日周三 08:27写道:
认证用的三个包是根据抓官方 Linux 版的包得到的字段列表自己生成出来的,不是套模板改出来的。
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/updateing/minieap/issues/10#issuecomment-283205582, or mute the thread https://github.com/notifications/unsubscribe-auth/ABraexl8Vq54Ub1IX-h05Ee4BqBTbLV9ks5rhLuAgaJpZM4ML8ds .
所以意思就是说实际上这个学校的设置还是能用 Linux 的客户端的?
这应该要等他说明……
另外你提到了字段和客户端版本的问题,这么说来不是通过 md5 计算的结果判断的?
这样一说,局端可以判断 EAP 规定中的 MD5 字段与私有 hash 是否一起能通过认证。若 EAP 规定的字段通过了而私有 hash 没有通过,则可以说明用户使用了非指定客户端。但锐捷设计时应该是考虑了实际环境中可能存在多个版本客户端,即使是正确的密码也会有多种不同的 hash。要支持环境中所有的客户端的话,局端就要在每次认证时把所有可能的 hash 都算出来…… 不知道是不是真的这样,要是真的话私有 hash 就可以拿来判断版本了。等 @ifwangs 说明吧……
经反复测试,最终还是用旧版v2算法认证成功,但心跳包发不出去,会自动掉线重连。这个项目能不能兼容上v2算法试试
@ifwangs 用当初的0.3.1算了吧 v2的算法早就已经不更新了,你再对比心跳有什么不一样吧
@czkwg8 通过某宝拿到了修改过的认证数据包,原0.3.1可以认证成功了,但是我自己抓的包始终不行。但心跳始终是个问题,等空下来用锐捷客户端抓一下心跳包研究研究
校验不是重点了的话,剩下的字段就很有趣了。
这里是已知字段 ID 的列表,这里是查找任意文件中的字段的工具(其实就是在找 1a xx 00 00 13 11 这个 magic),后者可以直接以抓包文件做参数。可以比较一下,看看是否有上面说的那些字段。
心跳包也可能会跟着字段列表,也可以用上面的工具辅助分析。
上面三个小图是我抓包结果,下面是原版V2心跳,不知道发不了心跳是不是这里的问题。而且上面三个图中圈圈里的是变化的
你画出来的地方恰好是心跳包中的 echono 和 echokey 组合出来的字段。按 MentoHUST 和本项目的理解,一个是随机的,一个要从 success 中读取。抓出来不一样很正常。
你说的心跳发不出去是指抓包结果里都没有心跳包出现,还是发出去了没作用?是否考察过发送间隔?
@updateing 应该是没发出去,输出一直显示正在发送数据包已保持在线,改了心跳间隔也不行。过一会就会认证掉线
抓包看看吧……
@updateing 推荐个ubuntu下抓包工具吧