前排提示
以下的分析及考证仅适用于安腾校园网(蝴蝶客户端)
仅用于学习,产生的法律后果与本人无关。
安腾校园网认证原理
安腾校园网认证客户端,别称安朗、红蝴蝶、绿蝴蝶、神州客户端。客户端发送的报文是一种基于UDP协议的认证,UDP协议没有连接性,在发送之后不验证目的主机是否收到、在发送之前也不需要预先建立链接。它相比于TCP协议:速度快、协议简单、但在网络不稳定时容易丢包。
协议完整的分析在这里
在这里我简单的说一下吧:
上线
- 包的构建
- 包头一字节告诉服务器你要干嘛。通用的是0x01(上线),0x03(呼吸),0x05(下线)。
- 然后是整个包的MD5 hash,服务器收到包之后肯定会对比这个MD5,不正确的话直接丢弃。
- 然后是你的用户名、密码
- MAC地址、IP地址
- 服务的类型(int、internet)
- 客户端版本号
- 构建完成之后 加密。
- 发送到服务器的UDP端口上,通常是3848、3850、3949
- 在上线包发送之后服务器验证之后就可以上网了
- 然后就是每30s发送的呼吸包(保持在线)
- 下线包也是一样,把包头填上0x05就可以
设想的攻击步骤
- 首先是UDP注入,在UDP包的header伪造成服务器的IP,向被攻击主机发送呼吸失败的packet
- 被攻击主机的蝴蝶检测到了之后,状态会改变成呼吸失败,同时上线按钮重新可用
- 在确定被攻击的主机收到这个包之后,发送ARP欺诈包,告诉主机,攻击主机的MAC地址才是服务器的MAC地址
- 这时上线包在链路层传输时查询服务器IP对应的MAC地址,查询到的是攻击主机的MAC地址,则把上线包发送到了攻击主机上
- 攻击主机接受UDP包,解包,获取账号密码 :)
攻击的实现
实现ing!