最近接触了学校的一个出网程序,不是中兴,是学校自己写的软件。
软件限制了代理,多网卡,路由。如果不用客户端用网页出校、那么一小时会停十分钟,于是反汇编了一下程序。
发现程序获取本地的IP、经过编码发送到出网的服务器。
其中用过几种方法破解限制,都不彻底。但是在内存中修改了程序获得的本地IP,改为路由的IP就突破了限制。
验证过程大致是,程序将密码加上**再加上本地的IP,经过可逆的编码形成最后被传送的密码。
在服务器上解析加密过的密码,逆向后得到申请者的IP与实际申请者的比对,如果不对就返回错误信息,
否则申请成功。
最后,查看软件的导入表,发现了三个函数:GetAdapersInfo、GetNetWorkParams和GetIfTable
都来自iphlpapi.dll。
查了了下Msdn,发现正是通过GetAdaptersInfo获得本机的网络信息,只要欺骗过程序,那么自然就突破了验证。
最后的做法是给出校程序注入DLL, HOOK API,修改返回的数据信息。
其中使用了Detours开发包。
至于中兴客户认证端,学校也有一部分用户,安装过后,查看导入表,也发现了这个函数。
实际的验证,应该也是差不多这样。不管过程怎么样还不是要调用API,囧
看过中兴关于自己的校园网系统的介绍,只是感觉很多都是在说大话。
比如中兴说,通过服务器解析TTL,用路由后这个值会变为XX,每个操作系统的TTL设置的都不一样,而且都是可以在注册表
里修改的。再说截取协议内容判断吧,校园网流量那么大...每个数据包都截取,我不认为学校会这么做。
中兴的程序员最容易想到也最容易做到的就是IP的比对。这一切只要劫持了iphlpapi就可以任意修改。
就说这么多,自己没条件去验证我说的,所以说这是猜想,有兴趣的有条件的学生可以去试一下
拦截的测试示例我传了一份在优快云上可以搜索一下。