破解Win2003标准版IAS Radius服务器客户端IP数限制

Win2003的Internet Authentication Service(IAS)服务是基于Windows Server平台的自带RADIUS服务端,结合Active Directory用于VPN拨入、无线802.1x接入等非常方便。

IAS要求必须指定来源客户端IP地址,查询帮助知可以填写192.168.0.0/24这样的子网地址以实现IP段,但填写后提示只有企业版才支持此功能。

因为没钱买企业版(好吧,其实是某云提供的企业版2003只有64位版,博主的1G内存小主机没必要因为这一个功能去换64位而损失各种兼容性),考虑进行破解。因为是系统Network Service服务,不便于使用OD调试,故优先用IDA静态分析,不过微软的系统DLL都公开了PDB方便用户调试和研究,分析起来其实并不复杂,IDA中很快找到对GetVersionExW的调用,随后连蒙带猜搞清周围的逻辑。破解思路与方法如下:

1、注册表HKLM\SYSTEM\CurrentControlSet\Services\RemoteAccess\Policy键,LicenseType值改为2是企业版的标志。这样以后IAS控制台就可以输入子网IP而不提示上面的对话框。

2、以上步骤后服务运行时还是会打版本不符合的EventLog,说明运行时还有判断,通过研究发现需要爆破。如图所示,iassvcs.dll中这里对OSVERSIONINFOEX.wSuiteMask和0x2做位测试,表示是否是企业版(参阅https://msdn.microsoft.com/en-us/library/windows/desktop/ms724833(v=vs.85).aspx)。用winhex将这里的jz改为nop即可。

3、system32目录下的文件受Windows File Protection(WFP)保护,直接替换会被秒还原。需要先将dllcache以及windows安装目录下的相应文件都删除或改名。另外替换正在使用中的文件也是将原文件改名,粘贴新文件,重启进程。

以上破解完成后测试服务启动正常,在我的环境下WFP好像也没有网上说的那样弹窗提示系统文件被fxxk了。实测可以添加0.0.0.0/0这样的ip地址匹配任意ip。

Leave a Reply

Your email address will not be published. Required fields are marked *