20145209刘一阳《网络对抗》实验三:免杀原理与实践
1.基础问题回答
(1)杀软是如何检测出恶意代码的?
根据特征来检测:恶意代码常常具有明显的特征码也就是一段数据,杀软检测到具有该特征码的程序就当作检测到了恶意代码。
根据行为来检测:如果一个程序的行为是带有恶意的行为,那么这个程序也会被认为是恶意代码,有时候不是恶意代码的程序也会把查杀,因为这些程序做了一些计算机认为不安全的事情,比较常见的就是各自破解补丁或者游戏外挂等。
(2)免杀是做什么?
免杀顾名思义就是免除计算机杀软的查杀。
通过一些手段来瞒过杀软的检测扫描。
(3)免杀的基本方法有哪些?
加花指令:就是加入一些花里胡哨的指令来迷惑杀软,让杀软检测不到特征码,比如+1,-1,*1,/1什么的,但是一些厉害的杀软还可以看破这些。
加壳:就是给含有恶意代码的程序加一个外包装,让杀软不知道里面装的是什么。但是这种方法逃不过内存查杀,一运行起来就会露出马脚。
修改特征码:就是在不影响程序功能的情况下,将杀软检测的那一段特征码改一下,从而瞒过杀软的检测。当然修改特征码不是一个容易的事情,但是却是唯一可以躲过内存查杀的办法。
2.实践总结与体会
感觉整个实验一步步的摸索很有意义,让自己了解到一个后门是如何做到免杀效果的,往往那些知名的软件生成的后门程序都不能免杀,因为他们的知名度在那里,杀软公司肯定要去防范它,相反自己半手工做的后门就有很强的免杀能力,尤其是在实验中,加壳的方式几乎是成功不了的,因为这些壳对杀软来说通常有备份,同类编码也是一样,最有效的还是对特征码的加工,换个位置或者加个密什么的都可以瞒过杀软。
当实验成功的时候,更多的还是惊讶,觉得杀软就这么被骗过去了,我的电脑就这么被装上后门了,看了自己的电脑的环境真的很不安全,想要防范外来攻击,单靠杀软是不够的。
3.离实战还缺些什么技术或步骤?
最明显的就是怎么让靶机得到这个后门程序,这就需要把这个后门程序绑定伪装到一些其他程序中的手段来让后门程序得以进入到靶机。
其次是主机也就是控制端需要一个稳定的ip地址来监听靶机。
还有就是靶机如果缺乏程序运行环境(如缺少一些库文件),所以还需要让后门程序可以不用依赖靶机内的库运行,这样会增加后
病毒检测
在上一次的实验中,我们在Kali环境下用msfvenom生成了一个后门程序,当时做的时候我们是将杀毒软件关闭了做的,而这一次我们来测一测看在打开杀毒软件的情况下能否发现我们的这个后门程序。这是我们电脑中腾讯电脑管家的检测结果:
毫不意外的是很多杀软都认定了我们的后门程序是木马程序,都建议我们将其删除。
这时,我们会试着先对这个后门程序进行编码,看是否还能被检测出来。
结果是无论我们编码一次还是两次还是很多很多次,都会被杀软检测出来。
使用Veil-Evasion
通过上述实践我们可以得出这样一个结论:改变编码什么的都太小儿科了,对于那些强大的杀毒软件根本不起一点作用。所以我们现在用Veil-Evasion来生成我们的程序试试。
首先直接打开Veil-Evasion
进入menu后输入一系列指令便可生成我们的可执行文件。
然后我们还是老套路拷贝到我们的主机上。
发现还是被电脑管家拦截掉了。
C语言调用shellcode
既然Veil-Evasion也会被我们的电脑管家拦截,那我们只好再换另外一种方法,即C语言编译一下。
在Kali中输入指令生成一个C语言格式的shellcode数组。
将其复制到主机上然后用codebolocks编译生成了一个可执行文件。
用我们电脑中的杀软指定杀毒
对于我们刚刚编译运行的可执行文件,我们用我们电脑上安装的电脑管家指定扫描一下,看会出现什么结果。
令我们开心的是,电脑管家并没有扫描出它存在风险。