大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
js脚本免杀工具 免杀经验以及简单的分析
文章作者:虫虫
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
本文所做的实验是以ah.js(冰狐的一个变种,附件中名为”病毒样本.txt”)为病毒样本进行的,其他js恶意代码没有测试。
由于卡巴斯基对js的查杀力度比较大,再者我本机就安装了卡巴斯基,所以对其有少量额外的分析。
菜鸟作品,难登大雅之堂,高手多多指教! ^-^
常规的思路就是将js编码以后使杀毒软件找不到特征码所以不报。本实验也是循了这一思路,所以并没有多少创新的地方。(要有创新点的话,后半部分的一个技巧可能算是一个.呵呵)
于是将js文件拆成几片,看看特征码在什么地方,然后修改。ccl不能拆开非pe文件,也不适合,所以都是手动来的。
但一开始我并没有这么做,我使用escape函数将这个js编码了,使用的时候再用unescape变回来,于是写了代码,但测试失败!(也许其他的杀毒监测不出来,但是卡巴不会)
想可能特征码还存在,于是将原文件每一个字符的ASCII读出来,然后再用String.fromCharCode编回来,这样肯定就不会有特征码了,因为只有一串串的数字,于是很得意的这么做了,然而,很意外的,卡巴马上把这个文件杀了!!!!
相当意外,难道卡巴是动态跟踪的?于是把病毒样本里的变量名换了,被杀!!难道他动态的监视每一个变量,一旦发现变量中有非法内容马上查杀?!再结合第一次实验,我几乎就确定是这么回事了,但是下面的实验又让我意外:
把病毒样本里的变量名换了,然后加入了几个中间变量,本来等待被卡巴杀掉,但是卡巴却把它放行了(附件中的 样本直接变形.txt).
于是重新思考了.[各位和我一样的小菜菜也一起想一下吧,高手莫笑]
卡巴斯基并没有那么智能去动态的跟踪每一个变量,他可能只是内嵌了一个脚本分析器,可以分析简单的脚本编码,所以以上的几个实验会有被杀的结果.然后卡巴也是特征码驱动的,于是, 样本直接变形.txt 会被放行.
这个思路的直接产物就是:附件中的”js变形免杀”这个东东,因为简单编码并不会绕过卡巴,但是将源码稍微改动后却可以通过.如果将二者结合一下呢? js变形免杀 就这么做的。大家可以看看他的代码。附件中还有他变形后的ah.js的代码”生成样本1.js”
呵呵,不要高兴,他被卡巴杀了,呵呵. 但是江民会放过他 (附件中有一个各类杀毒比较)
变形不够吧?于是写了 js变形免杀2 ,终于绕过了卡巴. 根据我以上的思路认为其他的恶意js通过这个工具变形后均可以免杀,但我没有做相关的测试,也希望看到这里的各位拿去测试一下,谢谢!
写的好啰嗦阿!!当作稿件发倒是能多赚点。呵呵。
下面是我觉得有点创新的地方。也是在测定特征码位置的时候想到的。
看一下附件的 js分片卡巴检测 ,发现了什么?呵呵
还是那个:将js文件拆成几片,看看特征码在什么地方,然后修改。由的时候拆成几片后都不报毒了,郁闷,得重新凑,因为把特征码拆开了,检测不到了。哈哈,猜到了吧?
我就把这几片分开来放,然后再另一个文件里使用
<script src=piece1.js></script>
<script src=piece2.js></script>
<script src=piece3.js></script>
把他们合起来~~~很有意思的绕过了杀毒~(附件有说明)
其实asp也可以阿,include不是吗?
好了,很啰嗦,写点什么时总要发挥投稿时1句话分5句说的精神~~哎~~
asp马的免杀呢?完全可以照上面的思路.但是我却没有写出对应的工具~自己劳动一下吧~
[个人感觉asp马的危害比js大(为什么?呵呵),所以只把js变形器给出了……js免杀,他调用的马可不一定免杀呶~]
为防止被杀毒查杀了,附件是加密的,密码是 est
增加:对附件代码的一点点提示
这是附件中对JS进行编码的核心代码:
var s=new String(document.all.txt.value);
var t=new String;
var i;
for (i=0;i<s.length;i++ ){
t=t+(s.charCodeAt(i).toString())+”,”;}
t=t.substr(t,t.length-1)
t=’t=”‘+t+'”;/nt=eval(“String.fromCharCode(“+t+”)”);/ndocument.write(“<script>”+t+”<///script>”);’;
document.all.txt.value=t;}
</script>
这是使用该工具生成的一段代码:
t=eval(“String.fromCharCode(“+t+”)”);
document.write(“<script>”+t+”<//script>”);
看起来其实也没有什么,就是将原来的js给变成ascii码,然后再用String.fromCharCode编回来。
但是这样一编将不同格式的,不同特征字的js代码变成了格式相同,特征字相似的js代码,使得生成的js的免杀修改特别方便,也方便了使用后面的js分片技巧来免杀,这是一点;
其次,你不觉得这个代码有点类似于exe文件的加壳吗?我们用工具将原js编码,然后通过转换以后再使用document.write(“<script>”+t+”<//script>”)使其恢复活性,很像是吧。本来打算把这个展开来分析一下,但是仔细考虑了一下发现这个好像没有很大的用途,最多用于保护代码~和免杀。asp也可以通过使用eval和execute来加壳一下,呵呵。(asp方面可以使劲考虑下阿,你可能 会有一个很大的发现啊!)
我也说了这个文章并没有什么技术性,实用性也不是很高。权当拿出来开拓开拓思路,高手莫笑,呵呵。
Code:
<title>虫虫的js变形工具</title>
<script>
function change(){
var s=new String(document.all.txt.value);
var t=new String;
var i;
for (i=0;i<s.length;i++ ){
t=t+(s.charCodeAt(i).toString())+”,”;}
t=t.substr(t,t.length-1)
t=’t=”‘+t+'”;/nt=eval(“String.fromCharCode(“+t+”)”);/ndocument.write(“<script>”+t+”<///script>”);’;
document.all.txt.value=t;}
</script>
<body style=”font-size:12px;”>
<center>
<span style=”font-size:20px;color:red;”>虫虫的JS变形工具</span><br>
将js的内容(不包含< script>标签)复制到下面的文本框中,点变形即可。
<textarea id=txt cols=80 rows=30></textarea><br>
<button οnclick=change()>变形</button>
</center>
</body>
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/171520.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...