见:
昨天在IE8里对XP遁甲做了个测试
测试时通过windbg调试ie,下断点改vbs脚本执行exe。
bu vbscript!COleScript::InSafeMode ".echo ===;ed ecx+174 0;g"
昨天在IE8上测试脚本执行exe时,执行calc就会弹出XP遁甲的提示。
后来试了下其他exe也会,然后再测试IE的打开对话框,在里面右击打开exe
等都会弹出提示。只有执行的exe是iexplore.exe或者notepad.exe或者他们的副本
(必须是系统里的,一般exe冒名还是会出提示的),这种情况下是不会弹出提示,而是直接执行。
我想可能是IE8里是父子结构,所以允许iexplore执行iexplore的。
因为要查看源文件,所以也是允许notepad执行的。
没有更进一步分析,只是做了表面分析。
也不知道IE8里直接访问文件是不是可以允许?loaddll是否允许?
如果不能的是否只能通过接收数据,在执行接收的代码。
【2014.8.6后续补充】
后又想到把微软的计算器用记事本的名字替换(calc.exe改成notepad.exe),结果弹出了计算器!
Set sh = CreateObject("Shell.Application")
sh.ShellExecute("c:\temp\notepad.exe")
改成iexplore.exe也可以弹出计算器!
sh.ShellExecute("c:\temp\iexplore.exe")
在把系统里的cmd.exe改成notepad.exe,弹出了命令提示符!【***图标居然还是记事本的***】
(
想到了07年左右,公司的数据用某个加密软件透明加解密,只要改cmd.exe为被保护的软件名。
就可以再里面用copy透明解密了。
)
我估计XP遁甲会验证文件是否是微软的签名?哈希?,没有深入分析,只做表面文章。
总结:用微软的文件冒名记事本、浏览器即可。
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<SCRIPT LANGUAGE="vbscript">
<!--
Set sh = CreateObject("Shell.Application")
'sh.ShellExecute("c:\temp\notepad.exe") '微软的程序改成notepad.exe或者iexplore.exe都会弹出来
sh.ShellExecute("c:\temp\ie_bak.exe") '原记事本ie浏览器任意改名照弹出来
'sh.ShellExecute("c:\temp\iexplore.exe")
//-->
</SCRIPT>
<BODY>
</BODY>
</HTML>
【2014.8.7】改成有命令行的Wscript.Shell对象
Set sh = CreateObject("WScript.Shell")
sh.Run("c:\temp\notepad.exe /c c:\temp\test\mybox.exe")
这样可以用cmd程序冒名运行了其他程序了。
或者可以用rundll32程序冒名运行dll也可以。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课