Metasploit 基础知识,第 3 部分:Payloads

原文链接:Metasploit Basics, Part 3: Payloads (hackers-arise.com)

欢迎回来,我的嫩脚黑客!

如您所知,Metasploit是一个利用框架,每个黑客都应该了解并擅长。它是我最喜欢的黑客工具之一。

Metasploit使我们能够使用预先编写的漏洞来攻击操作系统,浏览器和其他应用程序中的已知漏洞,并在目标系统上放置rootkit/listener/payload。这些有效载荷使我们能够连接到受害者系统,并在我们利用其系统中的漏洞后将其用作我们自己的系统。在本教程中,我们将专门研究Metasploit中内置的有效负载。

Metasploit有许多类型的有效载荷,我们可以将其留在目标系统上。我们最熟悉的是通用/shell/reverse_tcp和windows/meterpreter/reverse_tcp有效载荷,之前曾在多次黑客中使用过这些有效载荷。

在本指南中,我们将介绍有效负载的工作原理,Metasploit如何对有效载荷进行分类以及有效载荷的类型。我希望这种理解将帮助您更好地为您的黑客选择合适的有效载荷。

让我们仔细看看Metasploit中的这些有效载荷。

第1步:启动 Kali Linux和Open Metasploit

当我们在Kali Linux中打开Metasploit控制台时,我们立即看到Metasploit列出了exploits, auxiliary模块,post exploitation模块,payload模块,encoders和nops的数量。

kali> msfconsole

在下面的屏幕截图中,请注意当前版本的Metasploit中有455个 payloads(根据您的Metasploit版本,您的有效负载可能略有不同)。这是一个巨大的有效载荷,可用于多种情况。

现在,当我们键入:

msf >show payloads

Metasploit列出了所有455个有效载荷,如下所示。

步骤 2:Payloads 的类型

在Metasploit的这455个有效载荷中,有8种类型。

Inline

这些有效负载是 exploit payload 的单个包。它们本质上更稳定,但由于它们的大小,它们不能总是在小的易受攻击的内存区域使用。

Staged

这些有效载荷基本上能够适应非常小的空间,并在系统上建立立足点,然后拉动有效载荷的其余部分。

Meterpreter

是我们最常在受害者系统上想要的全能有效载荷。它通过.dll注入工作,并完全驻留在内存中,不会在硬盘驱动器或文件系统上留下任何存在的痕迹。它为它开发了许多特定的命令脚本,使我们能够在很大程度上在受害者系统上执行我们的意志。

PassiveX

此负载用于防火墙规则限制出站流量时使用。从本质上讲,它通过Internet Explorer使用ActiveX来隐藏其出站流量,并通过使用HTTP请求来逃避防火墙,并像任何浏览器一样响应。

NoNX

在某些 CPU 中,有一个称为 DEP(数据执行保护)的内置安全功能。在Windows中,它被称为No eXecute或NX。此安全功能背后的想法是保持数据进入CPU并正在执行(一种常见的漏洞利用技术)。NoNX有效负载旨在规避现代CPU的这一安全功能。

Ord

这些类型的有效负载几乎适用于所有 Windows 操作系统。这些非常小,但有些不稳定。它们依赖于将.dll(动态链接库)加载到被利用的进程中。

IPv6

这些有效负载(如其所暗示)旨在在 IPv6 网络上工作。

Reflective DLL Injection(反射式 DLL 注入)

当目标进程在内存中运行时,这些有效载荷模块直接注入目标进程,因此永远不会将任何内容写入硬盘驱动器,也不会留下很少或根本没有证据。

步骤 3:Payload 模块

如果我们在 Kali 中的 Linux 终端的 Metasploit 目录中查看,我们可以看到 Metasploit 将其有效负载分为三种不同的类型。显然,上面的八种类型在Metasploit中合并到这三个目录中。

让我们看一下有效负载目录内部。

kali > cd /usr/share/metasploit-framework/modules/payloads

kali > ls -l

如您所见,Rapid7将有效载荷模块分为三(3)种类型。

Stages

Stage有效载荷使用微小的stagers(见下文)来适应小的开发空间。换句话说,如果受害者的系统利用缓冲区或其他内存区域非常小,并且只允许执行少量代码,则首先在内存区域中放置一个小的 stager。然后,在受害者系统上建立此立足点后,stager“拉动”有效载荷的其余部分。

这些较大的分阶段有效负载包括 Meterpreter 和 VNC 注入等复杂有效负载,这两者都包括大型和复杂的代码。通常,暂存有效负载会将有效负载的名称拆分为“/”,例如在有效负载windows/shell/tcp_bind中。“tcp_bind”是stager(见下文),“shell”是staged。

不幸的是,这个约定在Metasploit中并不一致,所以通常必须转到有效负载的“信息”部分或找到它所在的目录,以确定它是否是暂存有效负载。

Stagers

Stagers是小的有效载荷,其唯一的工作是适应小的内存区域,然后“拉”较大的分阶段有效载荷。他们把旗帜“插在受害者身上”,然后加载更大的有效载荷。

Singles

singles 通常被称为“内联有效载荷”,是不需要分级器的独立单元。它们通常更稳定和首选,但很多时候,代码对于受害者系统上易受攻击的内存区域来说太大了。

现在让我们来看看那个singles目录。

kali> cd singles

kali > ls -l

正如我们所看到的,单身人士被脆弱的平台打破了。如果我们想查看可用于Windows平台的单曲,我们只需键入:

kali > cd windows

kali > ls -l

在此目录中,我们可以看到可用于Windows的所有单打有效负载。这些单个有效负载包括诸如adduser,format_all_drives,某些meterpreter有效负载和powershell_bind等单一任务有效负载。

总结

有效负载是Metasploit基础设施的关键部分,一旦漏洞利用完成,它就可以为我们提供访问权限。我们越了解他们,我们作为黑客就越好。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部