updateing / minieap

可扩展的 802.1x 客户端,带有锐捷 v3 (v4) 算法插件支持
GNU General Public License v3.0
514 stars 93 forks source link

在同一区域内的另一栋楼无法认证——特殊结构的认证包? #67

Open jimlee2048 opened 2 years ago

jimlee2048 commented 2 years ago

通过修改minieap源代码,在将checkv4.c中的两个长数组修改为从我校Linux客户端中提取的值后,我成功的在A栋楼使用minieap通过了认证,以下是我的修改:#4e27a86

然而,修改后能在A栋楼正常认证的minieap,在同一生活区内的另一栋楼(B栋楼)中却无法通过认证,提示如图所示的字段格式错误,未发现特征值(偏移量 0x6)错误。在尝试 #60 中提到的@ysc3839的patch后,依然是同样的错误提示。

2022-02-21 B minieap fail

通过抓包分析,我发现一个非常奇怪的问题:同一个官方Linux认证客户端,在B栋发送的认证包与在A栋发送的认证包存在较大的差异:同一个客户端,却在两栋楼发送了结构上完全不同的EAP-Response-Identity数据帧与EAP-Response-MD5-Challenge数据帧。同时,B栋发送的EAP-Response-IdentityEAP-Response-MD5-Challenge,也不是@ShanQincheng在他的论文中展示的数据帧结构。

b9a530a8fd8909fa85de5548217d76d (上图标识有误,应为EAP-Response-MD5-Challenge

个人猜测:B栋的认证设备可能存在不同,导致认证需要发送特殊结构的认证包。可能这就是导致A栋通过的minieap无法在B栋使用的原因?同时让我比较迷惑的是,同一个官方客户端,又是如何在不同的网络环境下发送出不同结构的认证包的呢?还请作者帮忙看看这个问题,非常感谢!

jimlee2048 commented 2 years ago

@updateing ,出于隐私原因,具体抓包信息请问方便通过邮箱发给您嘛? 您的邮箱地址是aGFvdGlhQGdtYWlsLmNvbQ==(base64)吗?

123485k commented 2 years ago

请问一下是根据什么来修改checkV4.c中的两个长数组呢?我已经抓包了

jimlee2048 commented 2 years ago

请问一下是根据什么来修改checkV4.c中的两个长数组呢?我已经抓包了

需要从锐捷官方Linux客户端文件中提取 https://github.com/hyrathb/mentohust/issues/282#issuecomment-251142647

123485k commented 2 years ago

请问一下是根据什么来修改checkV4.c中的两个长数组呢?我已经抓包了

需要从锐捷官方Linux客户端文件中提取 hyrathb/mentohust#282 (comment)

翻了整个issue,还是不懂怎么修改

jimlee2048 commented 2 years ago

请问一下是根据什么来修改checkV4.c中的两个长数组呢?我已经抓包了

需要从锐捷官方Linux客户端文件中提取 hyrathb/mentohust#282 (comment)

翻了整个issue,还是不懂怎么修改

就在我引用的这条回复里……

使用Hex编辑器打开锐捷Linux客户端的二进制执行文件rjsupplicant,然后

如果你还是想自己提取,依然可以搜索字节2012102613440120,搜索到的第一段取长度1820,接着的第二段长度2035

123485k commented 2 years ago

非常感谢,问题已经解决了 123485k/opwnwrt-minieap-fjut