木马病毒免杀技术全揭秘.docx
- 文档编号:3651692
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:16
- 大小:26.97KB
木马病毒免杀技术全揭秘.docx
《木马病毒免杀技术全揭秘.docx》由会员分享,可在线阅读,更多相关《木马病毒免杀技术全揭秘.docx(16页珍藏版)》请在冰豆网上搜索。
木马病毒免杀技术全揭秘
随着互联网的发展,木马病毒更是有了前所未有的进展,而存在于杀软与木马病毒间的斗争也日益激烈。
这就使免杀技术也空前发展起来。
本文介绍了目前主流的木马病毒免杀技术。
一.关于免杀的来源
为了让我们的木马在各种杀毒软件的威胁下活的更久.
二.什么叫免杀和查杀
可分为二类:
1.文件免杀和查杀:
不运行程序用杀毒软件进行对该程序的扫描,所得结果。
2.内存的免杀和查杀:
判断的方法1>运行后,用杀毒软件的内存查杀功能.
2>用OD载入,用杀毒软件的内存查杀功能.
三.什么叫特征码
1.含意:
能识别一个程序是一个病毒的一段不大于64字节的特征串.
2.为了减少误报率,一般杀毒软件会提取多段特征串,这时,我们往往改一处就可达到
免杀效果,当然有些杀毒软件要同时改几处才能免杀.(这些方法以后详细介绍)
3.下面用一个示意图来具体来了解一下特征码的具体概念
四.特征码的定位与原理
1.特征码的查找方法:
文件中的特征码被我们填入的数据(比如0)替换了,那杀毒软
件就不会报警,以此确定特征码的位置
2.特征码定位器的工作原理:
原文件中部分字节替换为0,然后生成新文件,再根据杀
毒软件来检测这些文件的结果判断特征码的位置
五.认识特征码定位与修改的工具
1.CCL(特征码定位器)
2.OOydbg(特征码的修改)
3.OC用于计算从文件地址到内存地址的小工具.
4.UltaEdit-32(十六进制编辑器,用于特征码的手工准确定位或修改)
六.特征码修改方法
特征码修改包括文件特征码修改和内存特征码修改,因为这二种特征码的修改方法
是通用的。
所以就对目前流行的特征码修改方法作个总节。
方法一:
直接修改特征码的十六进制法
1.修改方法:
把特征码所对应的十六进制改成数字差1或差不多的十六进制.
2.适用范围:
一定要精确定位特征码所对应的十六进制,修改后一定要测试一下能
否正常使用.
方法二:
修改字符串大小写法
1.修改方法:
把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了.
2.适用范围:
特征码所对应的内容必需是字符串,否则不能成功.
方法三:
等价替换法
1.修改方法:
把特征码所对应的汇编指令命令中替换成功能类拟的指令.
2.适用范围:
特征码中必需有可以替换的汇编指令.比如JN,JNE换成JMP等.
如果和我一样对汇编不懂的可以去查查8080汇编手册.
方法四:
指令顺序调换法
1.修改方法:
把具有特征码的代码顺序互换一下.
2.适用范围:
具有一定的局限性,代码互换后要不能影响程序的正常执行
方法五:
通用跳转法
1.修改方法:
把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行.
2.适用范围:
没有什么条件,是通用的改法,强烈建议大家要掌握这种改法.
七.木马免杀的综合修改方法
文件免杀方法:
1.加冷门壳
2.加花指令
3.改程序入口点
4.改木马文件特征码的5种常用方法
5.还有其它的几种免杀修改技巧
内存免杀方法:
修改内存特征码:
方法1>直接修改特征码的十六进制法
方法2>修改字符串大小写法
方法3>等价替换法
方法4>指令顺序调换法
方法5>通用跳转法
木马的免杀[学用CLL定位文件和内存特怔码]
1.首先我们来看下什么叫文件特征码.
一般我们可以这样认为,一个木马程序在不运行的情况下,用杀毒软件查杀,若报警为病毒,说明存在该查毒软件的文件特征码的。
2.特征码的二种定位方法.
手动定位和自动定位
3.文件特征码的定位技巧.
通常用手动确定大范围,用自动精确定位小范围.
下面分别用瑞星和卡巴为例,实例演示并结合手动定位和自动定位二种方法来准确定位文件特征码。
要定位的对像以下载者为例。
用卡巴来定位文件特征码
⑴.手动定位:
1打开CLL
2选择设置中的总体参数,,,,,选中文件特征码手动定位,,,,以及路径
3选中设置中的手动参数,,,,,选择替换方式选中,,,总共生成规定个数的文件,,,生成个数为1000
4选择文件中的特征码检测,,文件特征码检测,,,打开程序(要定位特证码的程序)
5在弹出的PE窗口中直接点确定,之后弹出的窗口在点确定
6然后等CLL生成完毕之后用杀毒软件进行查杀
7在CLL中选操作,结果定位,选中刚刚用来存放检测结果的文件夹
8在CLL中选
文件免杀之加花指令法
一.花指令相关知识:
其实是一段垃圾代码,和一些乱跳转,但并不影响程序的正常运行。
加了花指令后,使一些杀毒软件无法正确识别木马程序,从而达到免杀的效果。
二.加花指令使木马免杀制作过程详解:
第一步:
配置一个不加壳的木马程序。
第二步:
用OD载入这个木马程序,同时记下入口点的内存地址。
第三步:
向下拉滚动条,找到零区域(也就是可以插入代码的都是0的空白地方)。
并记下零区域的起始内存地址。
第四步:
从这个零区域的起始地址开始一句一句的写入我们准备好的花指令代码。
第五步:
花指令写完后,在花指令的结束位置加一句:
JMP 刚才OD载入时的入口点内存地址。
第六步:
保存修改结果后,最后用PEditor这款工具打开这个改过后的木马程序。
在入口点处把原来的入口地址改成刚才记下的零区域的起始内存地址,并按应用更改。
使更改生效。
三.加花指令免杀技术总节:
1.优点:
通用性非常不错,一般一个木马程序加入花指令后,就可以躲大部分的杀毒软件,不像改特征码,只能躲过某一种杀毒软件。
2.缺点:
这种方法还是不能过具有内存查杀的杀毒软件,比如瑞星内存查杀等。
3.以后将加花指令与改入口点,加壳,改特征码这几种方法结合起来混合使用效果将非常不错。
四.加花指令免杀要点:
由于黑客网站公布的花指令过不了一段时间就会被杀软辨认出来,所以需要你自己去搜集一些不常用的花指令,另外目前还有几款软件可以自动帮你加花,方便一些不熟悉的朋友,例如花指令添加器等。
五.常见花指令代码
五.常见花指令代码
1。
VC++5.0
PUSHEBP
MOVEBP,ESP
PUSH-1
push515448
PUSH6021A8
MOVEAX,DWORDPTRFS:
[0]
PUSHEAX
MOVDWORDPTRFS:
[0],ESP
ADDESP,-6C
PUSHEBX
PUSHESI
PUSHEDI
jmp跳转到程序原来的入口点
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2。
c++
pushebp
movebp,esp
push-1
push111111
push222222
moveax,fs:
[0]
pusheax
movfs:
[0],esp
popeax
movfs:
[0],eax
popeax
popeax
popeax
popeax
movebp,eax
jmp跳转到程序原来的入口点
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3。
跳转
somewhere:
nop/\"胡乱\"跳转的开始...
jmp下一个jmp的地址/在附近随意跳
jmp.../...
jmp原入口的地址/跳到原始oep
--------------------------------------------------
新入口:
pushebp
movebp,esp
incecx
pushedx
nop
popedx
dececx
popebp
incecx
loopsomewhere/跳转到上面那段代码地址去!
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
4。
MicrosoftVisualC++6.0
pushebp
movebp,esp
PUSH-1
PUSH0
PUSH0
MOVEAX,DWORDPTRFS:
[0]
PUSHEAX
MOVDWORDPTRFS:
[0],ESP
SUBESP,68
PUSHEBX
PUSHESI
PUSHEDI
POPEAX
POPEAX
POPEAX
ADDESP,68
POPEAX
MOVDWORDPTRFS:
[0],EAX
POPEAX
POPEAX
POPEAX
POPEAX
MOVEBP,EAX
JMP原入口
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
5。
在movebp,eax
后面加上
PUSHEAX
POPEAX
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
6.
pushebp
movebp,esp
addesp,-0C
addesp,0C
moveax,403D7D
pusheax
retn
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
pushebp
movebp,esp
push-1
push00411222
push00411544
moveax,dwordptrfs:
[0]
pusheax
movdwordptrfs:
[0],esp
addesp,-6C
pushebx
pushesi
pushedi
addbyteptrds:
[eax],al
jo入口
jno入口
call下一地址
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
7.
pushebp
nop
nop
movebp,esp
incecx
nop
pushedx
nop
nop
popedx
nop
popebp
incecx
loop任意地址
nop
nop
———————————————
nop
nop
jmp下一个jmp的地址/在附近随意跳
nop
jmp下一个jmp的地址/在附近随意跳
nop
jmp下一个jmp的地址/在附近随意跳
jmp入口
文件免杀之加壳与改入口点法免杀技术全揭密(三)
一.壳的相关知识:
1.壳的分类:
压缩壳和加密壳
2.壳的作用:
保护和文件免杀
二.加壳免杀的几个弱点
1.不能躲过像瑞星这类具有内存查杀功能的杀毒软件。
2.一般不能躲过卡巴的查杀
因为卡巴采用了一种叫虚拟机技术。
首先把加了多层壳的木马程序在虚拟机环境下运行一下,这样木马程序就会现出本来面目,这样无论你加了多少层壳,在运行后程序还是要暴露自已的。
所以大家在加壳测试过程中也会发现,能过其它的多种杀毒软件,但卡巴始终很难过,其原因就是卡巴的虚拟技术在作怪。
三.是不是现在的加壳免杀已失去意义
每种免杀技术都有他的缺点和优点,比如加壳,首先要找到比较生僻的壳,而且可能以后很快被查杀.同时也不能过内存查杀,也很难过卡巴.但它操作方便,通用性好加一个壳,可能过好几个杀毒软件.又比如修改特征码.首先操作比较烦,要定位,要修改,改好后还要测试是否能正常使用.同时针对性非常强.只能针对某一种杀毒软件的免杀,各种杀毒软件的特征码都不一样,所以要躲过多种杀毒软件查杀,就要分别定位,修改每种杀毒软件的特征码.这样是相当麻烦的.但它可以通过修改特征码来躲过瑞星内存和卡巴的查杀.
所以以后免杀技术会把加壳,加花指令,改入口点,改特征码这几种方法结合起来使用.对付瑞星的内存查杀,我们可以修改内存特征码,对付卡巴的虚拟机技术.我们可以修改卡巴的特征码.在加上加冷门壳,加花指令,改入口点.综合这些方法就可以打造金钢不死之身!
五.改入口点免杀法:
1.改入口点免杀原理:
杀毒软件一般都检测病毒还原之后的代码,而且一般都把代码段开始的前40个字节作为特征值.入口点改变了,说明也就破坏了特征码,这样就达到免杀的效果.
2.改入口点免杀方法一:
入口地址加1法.
操作步骤:
第一步:
配置一个无壳的木马服务端.
第二步:
用PEditor打开木马程序服务端.在入口点处的地址加1.然后点应用更改就可以了.
评论:
该方法对不同木马程序,有不同的效果,其它杀毒软件一般都可以躲过,但有些程序改过后还是被卡巴查杀.同时也不能过内存查杀,但以后结合加花指令,加壳等等方法,效果将非常不错.
3.改入口点免杀方法二:
变换入口地址法.
操作步骤:
第一步:
用OD载入无壳木马程序服务端.
第二步:
把入口点的开始二句代码(大都为pushebpmovebp,esp).移到零区域也是就空白区域地方.并记下零区域的内存地址.同时在后面加一句跳转命令:
JMP到第三条指令的地址.
第三步:
然后修正并保存,最后用PEditor打开该程序.把入口点改成刚才在零区域记下的内存地址.
评论:
该方法效果比方法一要好.经测试,用方法一改过后被卡巴查出来,用方法二就查不出来.以后可以结合加花指令,加壳,改特征码,打造金钢不死之身!
采用以上的方法可以躲过不少杀毒软件的追杀,并且方便快速,又很简单,所以是免杀里非常主要的手段,但是一定要检查文件是不是能够正常运行。
免杀新技术[虚拟机加密免杀]和[壳中改籽]免杀技术全揭密(四)
一虚拟机加密免杀
最新免杀技术——虚拟机加密代码应用并非传统的修改特征码,也不是修改入口点+花指令,更不是
加壳压缩!
是最新的一种免杀技术!
借于这种技术你可以千变万化,是免杀对新手来说更为简单!
大家对虚拟机vmprotect是否有所了解,这个是最新的加密工具!
可以加密PE文件中任何一句或一段代码
自然可以给我们用来免杀了!
免杀工具:
vmprotect1.07或1.06PEIDUPX
免杀步骤:
原理说明:
加密区段代码使杀毒软件无法识别!
你可以找特征码,找到后加密特征码的代码!
用PEID查看入口点:
假如这里的入口点是0007DB74基址是00400000
3.用虚拟机vmprotect打开要免杀的文件,添加地址0047DB74=00400000+0007DB74基址+入口点
4.选代码区域->转存->F9保存
5.测试运行->可以成功运行
6.用UPX压缩一下,缩小体积,OK免杀成功
总结:
虚拟机加密代码是比较新的免杀技术,可以和其他免杀技术有机的集合在一起,让你的木马变成金刚不坏.大家要多多掌握。
二壳中改籽技术免杀
这种免杀很少有人用,所以免杀效果非常好,各大黑客网站也很少见到介绍,这里我把别人做黑洞免杀的文章发到这里,供大家研究.估计是浩天写的文章
先讲一下为什么这种技术叫“壳中改籽”。
配置一个黑洞的服务端,然后用PEiD.exe来查看它是用什么加的壳,查到是UPX加的变态壳,程序的区段都给隐藏了,那么先得给黑洞服务端脱壳。
用upxfix.exe打开它,然后在Decompressmethod里面选择5,点击fix,这样就修复了。
再用PEiD.exe查一下,看现在可以看到区段了吧。
为什么我一再提到这个区段呢?
其实它就是文章的重点,也就是壳里面的籽。
继续脱壳,用UPXShell打开修复好的黑洞服务端,点击解压缩,完成后我们可以看到程序由原来的201kb变成了506KB,大了一倍多。
有人可能要问为什么一定要给它脱壳呢?
直接修改不可以吗?
其实主要是因为黑洞的服务端里还有一个用做键盘记录的dll文件,它也要做免杀处理。
用Resscope1.92打开黑洞的服务端,这个可是绝好的exe资源编辑器啊,先选择dllfile里面的getkey,然后点击文件→导出资源,这样dll文件就导出来了。
它也是用upx加的变态壳,因为区段被加密了,所以我们也要给它脱壳,再加壳。
脱壳的过程和先前脱黑洞服务端一样先用upxfix.exe打开它,但是这里注意在Decompressmethod里面,不要选择5,而是选择2修复,不然的话就脱不了壳了。
接着用UPXShell解压缩,现在dll文件的大小由原来的11kb变成了18.5kb,然后再用UPXShell重新给它加上壳。
三、修改upx壳里面的籽
把UPX加过壳的dll文件,用PEiD.exe打开查看,这里有几个数据需要我们记录,等下和修改后的文件做比较用。
先分别把程序入口点:
000C220、文件偏移量:
00002620,记录下来,然后点击查看EP区段,在区段查看上面再点右键选择cave查找器,把upx壳区段upx1的RVA:
0000C3B5、偏移:
000027B5等参数也记录下来。
关键的时刻到了,reloc.exe闪亮登场。
因为reloc是一款命令下的工具,所以为了操作方便,我建议大家写一个bat文件和reloc放在同一目录。
我们开始记录的数据现在派上用场了,编辑bat文件格式如下:
reloc待修改程序$程序入口$文件偏移量$壳的区段入口$区段偏移参数
那么对应我们的黑洞键盘记录dll文件所记录的数据,这个bat就应该这样写:
reloc键盘记录.dll$C220$2620$C3B5$27B55
数据前面的零不要写到bat里面,另外最后面的这个参数大家注意,其实它是设置修改时的偏移量的,一般dll文件选择5,exe文件选择5-9之间的数,一般选择6就好了。
设置完了,我们运行这个bat文件,开始修改。
完毕之后我分别用国内和国外最强的杀毒软件江民、诺盾和卡巴斯基对键盘记录.dll进行扫描,它们均未发现病毒,我们的木马成功躲了过去。
用PEiD.exe重新打开,可以发现PEiD已经无法分别键盘记录.dll是什么壳了,把原来记录的几个数据和现在对比一下发现程序入口和文件偏移量没有,而壳区段入口和区段偏移却改变。
飘舞的风在上一期的文章里面说道:
“peidv0.92是通过每个程序的开头几十个字节来比较是那种壳。
”,看来不仅仅如此,peidv0.92还把壳的区段入口开头的几十个字节也作为了用来判断壳的类型的特征代码,杀毒软件也是如此,这样简单修改一下我们的木马就免杀了。
着把这个已经修改好的dll文件,导回到黑洞的服务端,方法和导出dll是一样的,我就不再讲述了,然后把它用UPXShell再次加壳,加壳后的大小为200kb。
现在可以开始我们的第二次免杀之旅了,同样用PEiD.exe把程序入口、文件偏移量、壳的区段入口、区段偏移,等数据记录下来,写入bat文件。
我的bat是这样写的:
reloc1.exe$88620$30A20$887A3$30BA36
我前面已经讲过了,修改exe文件的时候,参数选择5-9之间的数,一般选择6就好了。
现在运行bat文件,黑洞服务端的免杀就全部完成了。
用PEiD.exe查看,显示的是“Nothingfound”看来PEiD已经不认识它了,再用江民、诺盾和卡巴斯基查杀,均显示无病毒,呵呵,欺骗成功。
四、结语
经过这么简单的修改以后效果是非常好的,相信以后这样的免杀技术将会成为主流技术,因为它简单实用。
分析它实现免杀的原理,不难看出换一个角度思考问题的重要性,从壳的修改转到壳中籽的修改,不能不说这是一种创新,
它使木马的免杀之路变宽了。
最后谢谢“朋友的家”提供一款这样优秀的工具。
如果大家能够把这种技术和我前面提到的另外三种结合起来使用,相信它将是无懈可击的免杀技术全揭密(五)
四、结语
经过这么简单的修改以后效果是非常好的,相信以后这样的免杀技术将会成为主流技术,因为它简单实用。
分析它实现免杀的原理,不难看出换一个角度思考问题的重要性,从壳的修改转到壳中籽的修改,不能不说这是一种创新,
它使木马的免杀之路变宽了。
最后谢谢“朋友的家”提供一款这样优秀的工具。
如果大家能够把这种技术和我前面提到的另外三种结合起来使用,相信它将是无懈可击的
免杀新技术之OD一半定位法
不知道是那位牛人想出来把这方法用到木马免杀上,这个方法让很多不会用偏移定位特怔码的朋友也能够很容易掌握到特怔码的位置,实在是很高明又很简单的免杀好方法.这里我就根据他的方法详细介绍OD一半定位法
所谓OD一半定位法很简单,就是用OD载入需要做免杀处理的文件,用NOP填充一半的代码然后保存,接着用杀毒软件查毒,如果有毒就在把另外一半用NOP填充,如果没报毒就证明特怔码就在刚刚填充的那一半,然后又对那一半进行1/2的NOP填充,这样不断缩小范围,很容易就找到需要修改的代码部分。
如果是做内存免杀就把NOP填充好的文件用OD打开进行内存杀毒。
怎么样?
是不是很容易掌握的方法?
不过需要注意的是新手用这个方法最好每做一步都把NOP填充的开头和结局部分的地址用纪事本保存,免得一旦忘记又从头来.
如果特怔码不止一处,你就要大致定位到有特怔码这一大段,然后把这一段的一半用NOP填充并且保存,接着打开保存的文件对另外一半继续刚刚开始的步骤,这样很快就能够定位出几处特证码所在的位置.
还是那句话,熟练就好,另外需要注意填充后查出的病毒名字有没有改变,如果改变就证明你填充的那段存在特怔码,这样可以省掉不少时间。
文件免杀之文件特征码修改五大法宝
方法一:
修改字符串大小写法
1.修改方法:
把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了.
2.适用范围:
特征码所对应的内容必需是字符串,否则不能成功.
方法二:
直接修改特征码的十六进制法
1.修改方法:
把特征码所对应的十六进制改成数字差1或差不多的十六进制.
2.适用范围:
一定要精确定位特征码所对应的十六进制,修改后一定要测试一下能否正常使用.
方法三:
指令顺序调换法
1.修改方法:
把具有特征码的代码顺序互换一下.
2.适用范围:
具有一定的局限性,代码互换后要不能影响程序的正常执行。
方法四:
通用跳转法
1.修改方法:
把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行.
2.适用范围:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 木马病毒 技术 揭秘