快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

CCL打造杀毒软件免杀的超级黑器(2)

图14这时可以打开监测功能了,因为CCL的“自动功能”是通过判断生成文件是否被杀毒软件删除来决定下一步的操作。打开“我的电脑”并进入目标文件夹,让它保持在前台,然后单击GO开始自动检测。你会发现文件夹中多了两个文件,随即会有一个被“司机”叔删除,因为它含有特征码,没有被删除的自然是特征码被0替换掉了。注意这里,司机大叔的反应比较迟钝,所以在生成文件时不会自动检测,我们必须在文件图标上单击右键,来刺激大叔一下。别的杀毒软件几乎不需要(如图15所示)。

  

 

  图15还记得刚才设置的“等待秒数”吗?一定要保证你机上的杀毒软件能在7秒内把含特征码的文件给删除掉,不然结果可是不准的!大约4分钟以后,自动检测完成,定位节果显示如下: -------------定位结果------------ 序号 起始偏移 大小 结束偏移 0001 0005E6FD 0000001A 0005E717 0002 000A4DB0 0000004E 000A4DFE 呵呵,已经完成一半了,特征码就在这2个段中,下面就是修改了,可2处都要改吗?我们随便修改一处即可,如果还能查出来,再修改另一处。柿子当然挑软的捏,我们找大小较小的第1段进行修改。 3.特征码修改铛铛铛,无敌的OllyDbg再次上场,它可是修改特征码的主力军!打开文件,来到0045E6FD处,让我们看看这里到底有些什么猫腻,代码如下:0045E700 . /EB 16 jmp short 111_.0045E7180045E702 .^|E9 5158FAFF jmp 111_.00403F580045E707 . |8B45 FC mov eax,dword ptr ss:[ebp-4]0045E70A . |33D2 xor edx,edx0045E70C . |8910 mov dword ptr ds:[eax],edx0045E70E . |E8 595BFAFF call 111_.0040426C0045E713 . |E8 A85BFAFF call 111_.004042C0原来是汇编指令,我们看看什么指令能改。Jmp和Call这种存在跳转的指令最好别碰,就选Mov和Xor那两句吧。还是用上面的两种修改方法:指令顺序变换法和跳转法。顺序变换法很容易,如果两条指令互不干扰,就可以将它们的顺序调换。0045E707和0045E70A正可以使用这种方法(我已试过,调换顺序后司机大叔愣是没查出来)。可更多的情况下是不能调换顺序的,这时就要用跳转法了,意思就是将原指令改为一个Jmp,跳到我们寻找的空隙处,在空隙处补上原指令,执行完以后再跳转回去。修改如下:0045E702 .^|E9 5158FAFF jmp 111.00403F580045E707 . |E9 14670400 jmp 111.004A4E200045E70C > |8910 mov dword ptr ds:[eax],edx0045E70E . |E8 595BFAFF call 111.0040426C0045E713 . |E8 A85BFAFF call 111.004042C0一个跳转指令需要5字节,而Mov和Xor加起来正好是5 个字节,爽!Jmp 111.004A4E20是我们修改过的指令(111是文件名),其中004A4E20就是我们寻找的空隙。空隙怎么找?呵呵,PE文件的代码段中存在很多空隙,你在OllyDbg的窗口中将滚动条向下拉到底就可以找到,至于存在空隙的原因就留给大家自已补课了。下面是空隙处的代码:004A4E02 . E8 3D99FBFF call 111.0045E744004A4E07 . E8 E8F8F5FF call 111.004046F4004A4E0C . 0000 add byte ptr ds:[eax],al004A4E0E . 0000 add byte ptr ds:[eax],al……004A4E1E . 0000 add byte ptr ds:[eax],al004A4E20 > 8B45 FC mov eax,dword ptr ss:[ebp-4]004A4E23 . 33D2 xor edx,edx004A4E25 .^ E9 E298FBFF jmp 111.0045E70C004A4E2A 00 db 00开始的两句Call就是原文件的最后两句代码了,下面都是00。我们随便挑了一处004A4E20,在这里把刚才的Mov和Xor补上,再加一句跳转回去的Jmp。OK,已经修改完了。在OllyDbg中单击右键,选“复制到可执行文件à全部复制”,然后在弹出的D(dump)窗口中按右键选择“保存”,修改结果就被保存到原文件中了(如图16所示)。

  

 

  图16我们再让司机大叔查一下,一向严格把关的司机大叔这次却无话可说了,免杀的目标终于达到了。可是不要高兴得太早,脱壳过的文件怎么这么大呀!原来只有511KB,脱了就变成1.02MB,足足胖了一倍!那我们就来替它减减肥,来个二次加壳。 4.二次加壳用Notepad.exe(记事本)作一下实验可以发现,ASPack加壳过的程序会多出“.aspack”和“.adata”两个段,那是不是二次加壳前先把原脱壳文件中这两个段删除呢?我也是这样想的,可删除了以后文件大小并没有减多少,反而出现了错误,因此我们直接对脱壳文件进行二次加壳。用什么壳?呵呵,以其人之道还治其人之身,就用ASPack2.12。打开文件时提示“已经被ASPack压缩过了”,不管它,我们继续。完成以后大小减了一半,和没脱壳时差不多(如图17所示)。

  

 

  图17 好了,完成了大部分工作,可是在传到安全之前,我们先得测试一下能不能用。怎么测试呢?这可是后门程序呀!没关系,我们用虚拟机来进行单机测试。刘流:什么是虚拟机?其实就是虚拟出一套环境,而在里面运行的程序就像是在真实的电脑中运行一样。流行的虚拟机程序有两个,微软的Virtual PC和VMware,个人感觉前者资源占用少一点,因此就用VPC吧!VPC了方便的地方是可以硬盘恢复,无论你在里面做了什么,甚至系统崩溃,只要你选择回复过去的硬盘状态,一切都像新的一样。呵呵,这次不用怕脱壳时一不小心程序跑飞了!

  .用虚拟机实现单机调试后门程序在VPC中新建计算机,安装一个系统(我装了Windows2000)。要想让VPC和我们的本机通过网卡互通,关键是IP的设置,要将两者都设为同一工作组(比如默认的WORKGROUP),IP地址设在同一段(我设的为本机26.28.248.100,虚拟机26.28.248.99)。相信各位大多数是在家上网吧?ADSL的猫自然人手一个(HUB也行),打开ADSL猫的电源(不用连上Iinter网),这时你会发现虚拟机里的2000已经显示接通网络了。我们在本机Ping一下,结果显示本机和虚拟机的网络已经连通,搞定!如图18所示。

  

 

  Ping正常虚拟机的网络已接通

  图18我们把压缩过的文件传到虚拟机里去,可以通过网络邻居共享或者菜单里设置共享文件夹,然后运行。只是一闪,被控制端文件就从桌面消失了。在本机运行控制端,连接26.28.248.99,显示连接成功。呵呵,我们来试试查看远程电脑的屏幕。点击后,屏幕中出现了虚拟机的屏幕!如图19所示。

  

 

  图19我没有继续试验别的功能了,因为本本的CPU忙不过来,如果你的机子够劲,你可以在虚拟机里装WindowsXP+SP2,再测试一下远程操作的功能! 结语用CCL定位特征码时,手动替换和自动替换应该互补使用,没有一个方法是全能的。通常为用手动确定大范围,用自动精确定位小范围。定位成功后,看特征码的类型。如果是汇编指令,用“指令顺序调换法”或“万能跳转法”进行修改;如果是字符串等,在不影响原程序运行的情况下,替换掉既可。操作方法也很重要,操作过程中注意和杀毒软件的配合,多试几次,掌握不同杀毒软件的特点,合理设置等待时间和最小定位精度等参数。更重要的是,确保自动检测过程中,杀毒软件对生成文件进行了检测,适当加上点“刺激”(比如我的鼠标右键刺激大法)。说了这么多,再菜的鸟儿也知道怎么飞了吧?提醒你一句,各个杀毒软件的特征码定义是不同的,最好每一种都装上检测一下。什么?太危险?没让你在自已机上装啊,我有虚拟机我怕谁呀!行文仓促,如有BUG请指出。

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论