轻松解密各种网马.docx
《轻松解密各种网马.docx》由会员分享,可在线阅读,更多相关《轻松解密各种网马.docx(17页珍藏版)》请在冰点文库上搜索。
轻松解密各种网马
轻松解密各种网马
或许大家已经看过很多解密网马的办法。
借助工具很多网马都被轻松的解开,不如:
unescape加密,Encode加密,js变异加密,US-ASCII加密,但是如果是手头没有工具呢?
或者遇到连工具都无法解开的加密呢?
轻言放弃可不是我们的作风哦!
今天就为大家讲解一些总结出来的实用的解密方式,和新方法。
首先大家要理解一个问题,所有的网马加密方式,再客户端都必须被识别,如果无法转换为浏览器可以识别的标准代码的话,是无法被运行的!
所以理论上所有网马的加密方式都是可以解密的。
我们就拿几个典型的例子来讲解吧。
首先是我最近遇到一个网马,加密结果如下:
是不是看的很头疼啊?
乱七八糟的,无从下手了,不是简单的解密工具就行了吧?
我们一起来动手解决掉它吧!
首先我们来一起了解两个关键词“document.write”和“eval”。
“document.write”在JAVASCRIPT是一条打印语句,而“eval”指的是eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。
如果在JS的加密代码中碰上document.write,我们一般把它改成“alert”,如果遇到“eval”一般改成“document.write”。
好的。
我们首先吧eval改为document.write然后运行看看结果
OK已经初步解密,从最后调用realexploit()这个自定义函数,可以看出。
这个就是最近刚出的realplay的漏洞利用网马了。
至于里面的unescape加密的部分就不用我解释了吧?
最快的办法是复制那部分代码。
然后加到XX搜索关键词地址后面即可
例如%64%6F%63%75%6D%65%6E%74
这段代码,最快的防翻译办法就是加入上面地址中
返回的结果是
下面我们一起看看天网被挂过的一个网马:
一堆乱七八糟的,都不知道是什么。
如何解读?
其实在最快最简单的办法就是浏览这个页面,保存时候选择中欧(ISO)编码就可以了
得到结果:
与此相类似的还有US-ACSII加密方式的网马,也可以通过这个方式来解密
保存时候依然选择中欧(ISO)编码即可得到如下结果:
接下来就来看一个有貌似点难度的了。
最近黑客防线出的《黑暗网马》使用了火狐里一个人出的加密工具。
解密过程需要提供密码,难道是为了防止修改?
看起来有点类似md5加密,难道真的不可逆?
1K的网马可以加密到15K甚至更大,太可怕了吧?
让我们一起来把他解密出来吧!
在长长的代码最后我们看到了
varpass="TEST.WWW.CUTEQQ.CN";
if(pass){
pass=unescape(pass);
varcuteqq,cuteqq2,cuteqq3;
cuteqq=XOR(unescape(Qq_784378237),STR.md5(pass));
cuteqq2=XOR(unescape(Qq784378237),STR.md5(pass));
cuteqq3=cuteqq+www_cuteqq_cn_s+cuteqq2;
document.write(cuteqq3);
return(false);
}
意思就是调用pass验证函数,如果为真,就继续执行里面的内容。
XOR是运算符
对两个表达式进行逻辑“异或”运算。
这里就不希艾娜关系了解了。
关键是最后的
Document.write(cuteqq3)了解网页代码的人就知道这段具体的意思就是,如果密码验证正确。
就输出cuteqq3这个函数里的内容。
当我们遇到document.write的时候我们一般把它改成“alert”得到初步解密
这里我们就遇到一个问题。
Alert根据里显示器的大小显示内容。
无法完整显示出内容。
怎么办?
我们引入一段javascript代码:
document.getElementById('textfield').value=cuteqq3;
替换掉原来的document.write(cuteqq3);
然后在页面的
和
之间添加一段,效果如下
网马
….这里省略解密部分
这里的意思是建立一个文本框,然后吧刚才的cuteqq3的内容赋值给文本框
Textfield是文本框的名称。
可以自己修改。
但是必须修改
document.getElementById('textfield').value里对应的名称
再次运行刚才的网马得到结果
刚才加密过代码大小是
解密后是
至于里面的
\x72\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79
这样的代码,我们就可以用简单的办法突破了
十六进制转义字符串如下:
alert("\x72\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79")
就可以显示出来了
顺便说下。
刚才的加密页面里用到了防止查看源代码的技术。
就是适用下面的代码
这里的noscript元素用来定义在脚本未被执行时的替代内容(文本)。
此标签可被用于可识别