1、木马免杀全攻略续 题记:本文与 07 年 9 月发表于黑客 X 档案 ,是的脚本木马免杀版本。转载请注明版权:http:/ 与 黑客 X 档案 黑客反病毒论坛 http:/ 作者:A1Pass 大家好,很高兴又与大家见面了,不知道大家对上期的文章是否满意,但是木马的免杀很多啊!可是我只介绍了可执行文件木马免杀这一种,而关于脚本木马的免杀只字未提,真是惭愧 在这篇文章里我会尽量补充上篇文章的不足,系统地介绍一下脚本木马的免杀方法。 关于脚本木马的查杀原理与可执行文件木马大体相同,所以在这里就不再介绍杀毒软件的查杀原理了,不明白的朋友请查看 07 年第 7 期的木马免杀全攻略一文。 但是毕竟脚本木
2、马与可执行文件木马不是属于一个种类计算机语言的产物,所以也有许多不同的地方。关于脚步木马,从程序角度上来讲它应该是完全开源的,因此带给了我们很大的方便,我们只要懂得脚本语言,就可以去分析活动服务器文档。从而很容易学习到别人的编程思路。细心的朋友应该看出来了,我为什么叫“活动服务器文档”呢?我们从微软给它定义的名字就可已看出来所谓的脚本只不过是文档的一个超集,但是他的本质还是文档。 而对于这个 “程序”完全开放的特性,所以它对于我们做免杀的网络安全爱好者来说更容易修改。因此就导致了传统杀毒软件对脚本木马查杀力度的疲软,从而出现了例如“思易ASP 木马追捕”、 “雷克图” 等专杀程序的出现。 介于
3、此,本文将分为两个部分,分别教大家怎样针对传统杀毒软件以及专杀程序做有效的免杀。以便于大家理解。 一、 针对传统杀毒软件的免杀 对于脚本木马的免杀工作,其实对免杀者的脚本语言基础是有一定的要求的,所以我由浅入深的为大家讲解,希望零基础的读者能跟的上。下面咱们先学习一下怎样使用工具进行免杀。 1 加密免杀 有免杀基础的朋友应该知道,免杀时针对可执行文件木马的加壳免杀方法吧?其实脚本也有自己的壳,但是鉴于脚本的开放性,所以他的壳对免杀来说效果可能不是很好,但是这终究是一种免杀方法。 而对于 ASP 脚本的加密,目前比较流行的就是微软的 screnc 加密,当然还有别的加密方法,但也是万变不离其宗,
4、今天我就先介绍几款 ASP 脚本的加密工具给大家用。 (1) ASP 木马加密免杀工具 GUI 版 这款工具就是微软 screnc 加密的 GUI 版,因为原版的 screnc 加密工具是命令行下使用的,不方便刚入门的朋友学习,所以找了个 Windows 界面下的程序给大家。 我们先用它为海阳顶端木马加密一下,打开“ASP 木马加密免杀工具”后点击“选择源木马”按钮,在弹出的对话框中选择我们要加密的脚本木马(如图 1) ,选择完毕后先点击“读取”,在点击“加密”按钮即可加密成功。很方便吧,点点鼠标就可以将 ASP 木马加密了。 我们看看加密后的木马变成什么样子了(如图 2) 。 这回神仙也看不
5、懂了吧?神仙看不懂,杀毒软件当然也看不懂了。但是有一点需要大家注意,我们加密完成后需要测试一下脚本木马的功能是否完全正常,因为加密后的脚本木马可能导致变量、参数等不能完全还原。当然,在后面的免杀中大家也要注意到这一点。 (2)ASP 木马加解密 “ASP 木马加密解密”是一款支持批量加密解密的软件,它的算法与微软 screnc 加密的算法不同,但是使用起来依然比较方便。我们只要选择 ASP 木马的所在文件夹,那么在这个文件夹下的所有木马都将被进行加密!所以大家在操作时注意备份。 我们先将需要加密的 ASP 木马放入一个单独的文件夹里,然后打开程序,选择相应的文件夹,并选择“编码” 选项,最后点
6、击“ 执行批量转换”即可完成加密(如图 3) 。 (3)webshell 免杀工具 “webshell 免杀工具” 是一款采用特殊 “算法”的加密工具,可以加密asp、jsp、php、cgi、aspx 等不同脚本木马,而且加密完成后文件大小基本不变。而关于它的“算法”是多么特殊,我在本小节后面会向大家详细介绍。下面让我们一起看看它是怎么用的。 打开工具后我们点击“文件打开/ 保存”按钮,选定我们的海阳木马后会谈出个提示对话框,叫我们选择输出路径(就是加密后木马的保存路径) (如图 4) 。 选择完毕后程序自动开始加密,由于加密速度较慢,配置低的电脑中间可能会出现假死状态,我们需要稍等一会。大概
7、过 1 分钟左右加密就会完成。 为什么这款工具可以加密几乎所有脚本木马呢?大家再回头看看本小节的第一句话,我在算法这一词上加了双引号,也就是说这根本就不是什么算法,其实只不过是简单的大小写字母替换而已,除此之外,还会对 ASP 等脚本的对象进行拆分。有的朋友要问了, “对象是什么意思?什么又是变量呢?”不要急,我会在文章后面详细介绍的。 2特征码免杀 就目前看来,只要是针对木马的免杀工作,就一定少不了与特征码打交道。特别是对于针对传统杀毒软件的免杀更是显得尤为重要。 下面我们回到特征码的问题,由于脚本木马里出现的一切字符都会在原文件里出现,所以第一步要做的就是更改版权,将木马“个人化”从而达到
8、一定的免杀效果。由于现在我们用的 ASP 脚本牧马大多数都是中文的,所以各位不懂脚本的朋友可以暂时不用考虑语法与程序逻辑问题,见到中文尽管改就可以。但是怎么改呢?其实简单的很,我们在脚本文件上单击右键,再弹出的菜单里选择“属性”,然后在对话框中的“常规”选项卡里单击“ 更改”按钮,在弹出的新窗口中选择“文本文档”,最后点击“ 确定 ”即可(如图 5) 。 设置完毕后图标会变成类似于文本文档的图标(如图 6) ,以后我们只要双击脚本文件就会自动用文本文档打开。因此可以使得我们的免杀工作更加便捷。 但是杀毒软件总不能只将特征码定义在中文里呀,所以我们还要考虑有针对性的更改特征码,从而真正达到免杀的
9、目的。 (1)针对性免杀 对于我们脚本木马免杀,找特征码算是一件比较令人头痛的事,这里我简单给大家介绍一下思路。叫做“切割” 法。 我们拿到一个脚本木马后需要先将他“切割”,也就是将里面的代码分成几部分,然后分别保存在文本文档里,并将后缀名改为“.asp”,最后用杀毒软件查杀即可。 如果哪个文件被杀,就说明它里面含有特征码。那么我们就将这个被杀的文件进行再次分割后查杀,如果还有被杀的文件,那么就在次重复这一过程,直到我们发现里面的特征码为止。 这里给大家举个例子以方便理解。如果我们要为一个木马做免杀,那么就先把木马文件的代码平均分成十份,并分别命名为 1.asp、2.asp10.asp(如图
10、7) 。 假如查杀后我们发现 2.asp 被杀,那么我们删除其他的,再将 2.asp 分成21.asp、22.asp、23.sap20.sap(如图 8) ,又发现 23.asp 被杀,下面我们在将 23.asp 分成十份,然后重复上面的步骤直到我们最后找出目标足够小的文件,然后有选择的将一些代码进行大小写替换,那么就可以确定究竟哪里是特征码了。 这种方法虽然麻烦,但是特征码收集多了以后我们就能在其中找到一定的规律,对我们以后的免杀有利。 (2)宽泛性免杀 对于木马的免杀,除了找特征码外,其实还可以无目的替换代码的大小写,以达到免杀目的。大家都知道 Windows 操作系统对大小写不敏感,而杀
11、毒软件对大小写是非常敏感的,然而值得庆幸的是,运行于 Windows 操作系统的脚本同样对大小写不敏感。还记得我们上面讲的那个什么都能加密得软件吗?其实他利用的原理就是这种大小写替换的方法。但是虽然都是大小写的替换,然而这款加密程序利用的是宽泛性免杀方法。 那么究竟什么是宽泛性免杀呢?其实宽泛性免杀就是指无目的随意替换脚本文件里代码的大小写、在对象中在、插入空变量,从而起到免杀的效果。虽然理论上 Windows 对大小写不敏感,但是由于一般的脚本木马逻辑性比较强,过分更改代码的大小写还是会导致程序运行异常。另外需要大家注意的就是,不一定经过宽泛性面杀的脚本木马就一定能起到免杀的效果。其实宽泛性
12、免杀要与针对性免杀结合起来效果才够好。那么究竟怎样进行宽泛性面杀呢? 宽泛性面杀进行的第一步就是选择操作方法,你可以选择将全部字母替换成大写或只替换一部分字母的大小写,也可以专门替换一些声明的变量或对象。当然我们一般会同时应用这两种方法。 关于前一种方法由于操作简便,只是替换的问题,相信大家都会,所以下面我们主要介绍一下关于变量与对象替换方法。 要想对其进行替换,自然要知道什么是变量与对象。我们先看看下面一段代码。 “ then /先过滤变量 syfdpath 两边的空格,并判断变量内容是否为空。 Fildata = request(“cyfddata“) /将取得变量 cyfddata 的值
13、去掉两边的空格后赋值给变量Fildata Set CountFil=FSOFIL.CreateTextFile(request(“syfdpath“),True) CountFil.Write Fildata if err =0 then response.write “save Success!“ else response.write “Save UnSuccess!“ end if err.clear end if % /脚本结束标记 这就是著名小马“day.asp”的部分源码,大家看的时候主要注意里面的变量与对象。对于不懂脚本的朋友,我们可以初步的认为凡是关键字 dim 后面跟着的就是
14、变量(注意前三行代码) ,而且关键字 dim 后面可以跟一个变量,也可以跟多个变量。当后面跟多个变量时要用“,”隔开,例如:dim FSOFIL, Fildata, CountFil 这句代码与上面的前三句是等价的。 那么我们又怎样区分对象呢?我们可以找他的关键字 Server.CreateObject(“xxxx.xxx“),关键字括号中的“xxxx.xxx”就是要调用的对象。例如我们上面的Server.CreateObject(“Scripting.FileSystemObject“)所调用的就是 Scripting.FileSystemObject 这个对象。通过以上的讲解大家应该能看得
15、出来,其实如果能记住脚本的关键字,那么就能看懂简单的脚本代码,所以希望刚入门的朋友能学会脚本的基础知识知道这些后我们就可以试着改这些变量与对象了。 关于变量我们可以随便改,因为这些变量都是程序员自定义的,例如我们看着 FSOFIL这个变量不爽,那么我们就可以将它改成 HackerXFiles 或 A1Pass,替换完毕后如果不出意外都是可以正常运行的,关于替换大小写的问题就更不用说了。 而对象我们就不能随便改了,因为它引用的是系统组件,与关键字有些相近。那我们就只能对他进行大小写替换了吗?当然不是!除此之外还有一种方法,就是我们可以往对象里插入空变量,例如我们想在”ABCD”这个组建中插入空变
16、量 123,那么插入完毕后就是”AB”&”1234”&”CD”,就是说在空变量两边加上 ”&”,然后将其插入到变量里,但是当程序运行到这里时,由于 1234 是空变量,也就是代表什么都没有,所以真正的执行结果还是”ABCD”。下面我们就对 Set FSOFIL = Server.CreateObject(“Scripting.FileSystemObject“)这句代码进行更改为例,演示一下具体的更改方法。 通过上面的知识可以知道 Server.CreateObject(“xxxx.xxxx“)是关键字,那么里面的Scripting.FileSystemObject 自然就是对象了,下面我们就
17、可以往里面插入诸如“A1Pass”等未声明的变量,并用连接符“&”或“+” 号连接连起来,而且这样改过后的意义不变。改完后就是 Set FSOFIL = Server.CreateObject(“Scri”& “A1Pass”&”pting.FileSyste”& “A1Pass”&”mObject“),说白了就是随便插入诸如”& “A1Pass”&” 这样的字符。这样的话虽然意义不变,但是杀毒软件就识别不出来了,所以就能起到免杀的效果了(如图 9) 。 有的朋友可能会想到插连接符的方法,我们可以直接在对象里直接插入连接符“&”或“+”,同样可以打乱顺序,而且比较省事。但是不幸的是已经有杀毒软
18、件可以识别这种无效的连接符了,并且可以直接将其替换,所以还是费点事比较好。因为免杀就是体力活,你省事,杀毒软件更省事 3其他方法免杀 以上两种免杀方法都是比较传统的,但是作为一个合格的黑客,就要做到不走寻常路!要知道最好的方法永远都还未出现!所以要学会怀疑,学会探索。下面我就为大家介绍一下其它的免杀方法。 (1)数据库合并法 根据题目就可以看得出来,我们是通过将 asp 木马与数据库合并到一起来达到免杀的目的。但是为什么与数据库合并到一起就能起到免杀的作用呢?我们都知道现在的病毒木马多的不计其数,种类也是多种多样,就拿我们大家所熟悉的木马来说,就分为脚本木马与可执行文件木马这两种。大家有兴趣的
19、话可以试试,我们就算将木马的后缀名改掉依然会被查杀!有的朋友要问了,改完后缀名连 Windows 都认不出来了,可杀毒软件为什么依然认得出来?这是因为杀毒软件是靠文件头来确认文件性质的,其实这也不是多复杂的功能,例如我们的 CMD 就有这个功能,只是没杀毒软件强大而以。 而一般的杀毒软件为了提高扫描速度会给病毒归类,例如如果扫到一个脚本,就会用脚本类病毒库里的特征码进行扫描,扫倒可执行文件时就用可执行文件病毒库里的特征码进行扫描。看到这大家也许都明白了,如果我们把 asp 木马与数据库合并到一起的话,那么杀毒软件就会将这个文件当作数据库文件来扫描,从而调用针数据库文件的病毒库,所以达到免杀的目的。明白原理后操作就简单了。这里我给大家推荐一个叫做“数据库木马合并器”的工具,它使得我们的免杀操作更加简便,而且省去了新建数据库的烦恼。 “数据库木马合并器” 的使用方法很简单,只要选择我们的木马程序,然后点击“合并”按钮(如图 10) 。 然后选择保存路径即可完成工作(如图 11) 。是不是简单的很?
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。