这个是我自己写的第三方校园网认证客户端,用于华科的校园网认证。认证协议主要通过软件逆向分析得到,同时也参考了前辈们的一些工作,并修复了其中的bug。
从高三接触到patch和keygen的时候开始,我就有了当黑客的梦想。进入大学之后,学校不让共享校园网帐号,不让开wifi热点,于是我就有了就拿校园网下手,实现黑客梦的想法。
项目主体是Python写的,下载下来就可以用。
$ sudo python main.py -n enp3s0 -u GloveAn -p HelloWorld
程序需要三个输入,分别是网卡名称、用户名和密码,对应的参数为 -n / -u / -p 。由于使用到了raw socket,所以需要root权限。注意:输入的密码会被保存在history中。如果不知道网卡名称,可以使用 $ sudo python main.py -l
列出系统中可用的网卡。
程序中有一个模块用于生成客户端的hash值校验,这个模块是用C语言写的。要使用这个模块,需要先用./packets/ruijie/setup.py build
对其进行编译,然后将编译好的.so文件移动到./packets/ruijie/目录下。不过因为华科没有开启客户端的hash值校验,所以可以不使用这个模块。
程序中用到了和linux相关的东西,所以只能在linux下使用。
我首次了解校园网的认证过程,是通过MentoHust这个项目。不过因为校园网的升级,这个项目不再可用了。后来有前辈研究了升级后的官方客户端,keygen了里面的hash函数,开发了MentoHust v3版本。在keygen成果的帮助下,我的工作量减少了很多。客户端中用到的hash函数改编自libTomcrypt;raw socket的用法是从YaH3C这个项目中学到的。
项目中的软件逆向部分是通过radare2和gdb完成的,一个负责静态分析,一个负责动态调试。客户端由Python 3和C语言编写,在linux下开发。