轻轻松松解密各种网页木马
J*tU\Vx0IXPUB技术博客D9@/PQ?B+XdQ
首先大家要理解一个问题,所有的网马加密方式,再客户端都必须被识别,如果无法转换为浏览器可以识别的标准代码的话,是无法被运行的!所以理论上所有网马的加密方式都是可以解密的。我们就拿几个典型的例子来讲解吧。
Hv9I8?U1H
n0首先是我最近遇到一个网马,加密结果如下:
]OT)a:h#v
hE?.W_&e0IXPUB技术博客 a4z3Z6L[}

是不是看的很头疼啊?乱七八糟的,无从下手了,不是简单的解密工具就行了吧?我们一起来动手解决掉它吧!首先我们来一起了解两个关键词“document.write”和“eval”。
O5R!I~AoQ y.U1F&U0“document.write”在JAVASCRIPT是一条打印语句,而“eval”指的是eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。如果在JS的加密代码中碰上document.write,我们一般把它改成“alert”,如果遇到“eval”一般改成“document.write”。我们首先吧eval改为document.write然后运行看看结果:IXPUB技术博客'm#CP,Y'T)B {0r

OK!已经初步解密,从最后调用realexploit()这个自定义函数,可以看出。这个就是最近刚出的realplay的漏洞利用网马了。至于里面的unescape加密的部分就不用我解释了吧?最快的办法是复制那部分代码。然后加到百度搜索关键词地址后面即可,http://www.baidu.com/s?wd=,例如document。
LuP D6zb3Y0这段代码,最快的防翻译办法就是加入上面地址中http://www.baidu.com/s?wd=document,返回的结果是:IXPUB技术博客T,bZJi
IXPUB技术博客:\[)aE.H(Rf

下面我们一起看看天网被挂过的一个网马:
*z$jK6I'l8zi0
IXPUB技术博客6^8^)vK$t Rq
IXPUB技术博客/zX5Q].\,eR4d'r
IXPUB技术博客/?/B`5T\7wzy
一堆乱七八糟的,都不知道是什么。如何解读?其实在最快最简单的办法就是浏览这个页面,保存时候选择中欧(ISO)编码就可以了。

得到结果:
9U}q2G Z{D5B0
IXPUB技术博客q(c |6aBo$A\IE'N

保存时候依然选择中欧(ISO)编码即可得到如下结果:IXPUB技术博客0aW r oe#f f1{7QO/Vc
IXPUB技术博客 b.e9ME-G"`%dJG/O#D
接下来就来看一个有貌似点难度的了。最近黑客防线出的《黑暗网马》使用了火狐里一个人出的加密工具。解密过程需要提供密码,难道是为了防止修改?看起来有点类似md5加密,难道真的不可逆?1K的网马可以加密到15K甚至更大,太可怕了吧?让我们一起来把他解密出来吧!
ZJ%X6p'_:Ql4Z0
var pass="TEST.WWW.CUTEQQ.CN";
T#P%]P d+g\0if(pass){
kA"T3V;])z0pass=unescape(pass);
#]^jU!_i)x.F0var cuteqq,cuteqq2,cuteqq3;IXPUB技术博客,q,m@9hO^4o
cuteqq=XOR(unescape(Qq_784378237),STR.md5(pass));
;@+Ji;c vjV0cuteqq2=XOR(unescape(Qq784378237),STR.md5(pass));
9T"L:MkrOes1Ls0cuteqq3=cuteqq+www_cuteqq_cn_s+cuteqq2;IXPUB技术博客"t~}*@ VS*[
document.write(cuteqq3);
{kdF4N7`DK^0return(false);
xdV0} c3~!]0}
意思就是调用pass验证函数,如果为真,就继续执行里面的内容。XOR是运算符,对两个表达式进行逻辑“异或”运算。这里就不详细了解了。关键是最后的Document.write(cuteqq3)了解网页代码的人就知道这段具体的意思就是,如果密码验证正确。就输出cuteqq3这个函数里的内容。当我们遇到document.write的时候我们一般把它改成“alert”得到初步解密:IXPUB技术博客"s$^E;vLI/\%O:] P {0d
IXPUB技术博客3i6kHO
SY/u

这里我们就遇到一个问题。Alert根据里显示器的大小显示内容。无法完整显示出内容。怎么办?我们引入一段javascript代码:document.getElementById('textfield').value=cuteqq3;替换掉原来的document.write(cuteqq3);然后在页面的</head>
?!cA2J6C_!pBr0<body>和<script></script>之间添加一段,效果如下:IXPUB技术博客TpD pH-\
<html>IXPUB技术博客;`Ih6q4N
<;head>
0q7}&MA|h(] D4A0<title>网马</title>IXPUB技术博客,egi9H uz$o
</head>IXPUB技术博客jy
aq \/J7w
<body>IXPUB技术博客%Ww3it6vrT-T,e
<form. id="form1" name="form1" method="post" action="">IXPUB技术博客Uq!T5uDVT
<label>IXPUB技术博客1m/s5x+SL/m%Z |A+P
<textarea name="textfield" cols="100" rows="50"></textarea>
C&a0E eDpm0</label>IXPUB技术博客5rQX(D?
t0R
}
</form>
xc'in4@0<script>IXPUB技术博客o
k?$Z wO
….这里省略解密部分
U K,],fr9K
A0</script>
Z~.BB6d2yv4o~7X0这里的意思是建立一个文本框,然后吧刚才的cuteqq3的内容赋值给文本框,Textfield是文本框的名称。可以自己修改。但是必须修改document.getElementById('textfield').value里对应的名称,再次运行刚才的网马得到结果:IXPUB技术博客8q#a"e)[2bO-kB[e `
Zj!o/F Hr?0
IXPUB技术博客[.Bj/i;j3w'j
IXPUB技术博客kf(t#N6|u2v

刚才加密过代码大小是:
R4aD){'P0
IXPUB技术博客UXg&hl2\
解密后是:IXPUB技术博客[x+H'u9K
IXPUB技术博客_ccec'[,w:T
至于里面的\x72\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79这样的代码,我们就可以用简单的办法突破了。IXPUB技术博客`X7bjz1Cp)c
十六进制转义字符串如下:IXPUB技术博客Hj*p~%h"J']p
<SCRIPT. LANGUAGE="JavaScript">
7l/{9U]bOs4rn0alert("\x72\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79")IXPUB技术博客 m$`d*i1`
^9dlV
</SCRIPT>
就可以显示出来了,顺便说下。刚才的加密页面里用到了防止查看源代码的技术。就是适用下面的代码IXPUB技术博客"Mz~+UtQ\d
<noscript>
jD7KIoLS+D5X0<iframe. src=*>