不得不說Metasploit 目前是世界領(lǐng)先的黑客框架。它在某種程度上被幾乎每個黑客/滲透者使用。因此,如果您想進入網(wǎng)絡(luò)安全/滲透測試行業(yè)并有所成就,您就必須要需要熟悉它。 Metasploit可用于web滲透 pc滲透 安卓滲透
一:什么是 Metasploit?
Metasploit 是用于攻擊性安全或滲透測試的標(biāo)準(zhǔn)化框架。在 Metasploit 之前,漏洞利用和 shellcode 將由各種開發(fā)人員以各種語言為各種系統(tǒng)開發(fā)。滲透測試人員必須依靠開發(fā)人員的工作性質(zhì),即它沒有充滿惡意代碼,并了解開發(fā)人員打算如何利用漏洞/shellcode/工具工作。借助 Metasploit,滲透測試人員擁有一個標(biāo)準(zhǔn)化的框架,可以在這些工具的工作方式相似的地方工作,并且所有工具都使用相同的語言編寫,從而使事情變得更加簡單。
最初由 HD Moore 作為開源項目開發(fā),現(xiàn)在歸安全公司 Rapid7 所有(Rapid7 還擁有漏洞掃描程序 Nexpose)。盡管最初是作為一個開源項目開發(fā)的,Rapid7 現(xiàn)在已經(jīng)開發(fā)了 Metasploit 的 Pro 版本,免費版的在 開源社區(qū)版仍然可供我們其他人使用,而無需花費數(shù)萬美元購買 Pro 版(如果您是專業(yè)的測試人員,使用 Pro 版可以提高效率和節(jié)省時間)我目前使用就是Pro版,并且效率得到很大的提升。
最初的 Metasploit 是用 Python 編寫的,然后移植到 Ruby。這意味著所有模塊都必須編寫或移植到 Ruby(Python 是最常見的漏洞利用腳本語言),F(xiàn)在,隨著 Metasploit 6 的開發(fā)和發(fā)布,Metasploit 現(xiàn)在支持用 Python 或 GO 編寫的模塊。
二:Metasploit 接口
Metasploit 有多個接口,包括;
msfconsole
msfcli
Armitage
msfweb
使用 Metasploit 最常見的方法是通過 Metasploit 自己的交互式 shell,msfconsole。在關(guān)于 Metasploit 的這個系列中,我們將主要使用這個 msfconsole,
近年來,Metasploit 集成了其他工具,使其不僅僅是一個開發(fā)框架。nmap、Nessus、Nexpose等工具現(xiàn)已集成到Metasploit中,使得從端口掃描、漏洞掃描、利用到后期利用的整個過程都可以在一個工具上完成。此外,Metasploit 現(xiàn)在已經(jīng)集成了一個postgresql數(shù)據(jù)庫來存儲從您的掃描和漏洞利用中收集的數(shù)據(jù)。
入門:
在我們啟動 Metasploit 之前,我們應(yīng)該啟動 postgresql 數(shù)據(jù)庫。Metasploit 可以在沒有postgresql 的情況下工作,但該數(shù)據(jù)庫使 Metasploit 能夠運行更快的搜索并存儲您在掃描和利用時收集的信息。
打開Kali 并且在終端內(nèi)輸入以下命令 來激活metasploit 自帶數(shù)據(jù)庫postgresql 。如果你使用的不是root終端命令前必須添加“sudo”
sudo systemctl start postgresql (start=開始)
由于我們是第一次使用Metasploit ,第一件事情要做的就是初始化(init)數(shù)據(jù)庫,命令如下:
sudo msfdb init
數(shù)據(jù)庫初始化完成后我們就可以通過終端輸入名字:Metasploit 進入Metasploit Framework控制中心 (過程很長需要30秒等待時間)
最新版 Metasploit 提供數(shù)據(jù) 漏洞 版本 如下圖:
這樣我們就成功的完成了使用Metasploit 第一步。激活并且初始化數(shù)據(jù)庫。
如果你對命令行有點看不懂暫時沒有記住Metasploit ,你可以選擇GUI界面轉(zhuǎn)到Metasploit 如圖:
Metasploit 關(guān)鍵字
盡管 Metasploit 是一個非常強大的漏洞利用框架,但只需幾個關(guān)鍵字就可以讓您開始入侵幾乎任何系統(tǒng)。當(dāng)然是沒有設(shè)置更高端防火墻的系統(tǒng)。
Metasploit 多種類型的模塊;
exploits
payloads
auxiliary
nops
post
encoders
evasion
我們先的說下Metasploit使用術(shù)語,exploits是利用系統(tǒng)或者應(yīng)用程序漏洞模塊。它通常會嘗試在系統(tǒng)上放置payloads,這個payloads可以是見的命令行外殼或者全有的Meterpreter。在其他環(huán)境中你可以稱它為“監(jiān)聽器” rootkit。具體的我會在后面簡單的給大家做一個介紹。
接下里我們需要使用“幫助命令(help)”來查看下msf的命令列表。
help
如果你的目標(biāo)是專業(yè)的滲透測試人員,那么這里的內(nèi)容不說讓你背下來,最低要求是全部知道意思并且熟記于心。在社區(qū)深度計劃中滲透環(huán)節(jié)非Metasploit 莫屬。
關(guān)鍵命令“USE”使用。
如下列我們需要加載一個隨機模塊,假設(shè)我們已經(jīng)發(fā)現(xiàn)對方系統(tǒng)上出現(xiàn)了Flas相關(guān)漏洞。就可以使用命令:
use exploit/windows/browser/adobe_flash_avm2
如果你輸入無誤就模塊就會加載成功,模塊類型是:exploit,模塊相應(yīng)是在紅色字體區(qū)域。
關(guān)鍵命令“show”顯示
加載模塊后,show命令對于收集有關(guān)模塊的更多信息非常有用。最常使用的三個“顯示"show options", "show payloads"、“show targets”和“show payloads”。我們先來看看“show options”。
show options
輸入數(shù)顯示命令 show后添加:options 就是顯示options 命令如下:
show options
命令:show targets
show targets
此命令在運行漏洞利用時也非常有用。它將顯示在運行模塊之前需要設(shè)置的所有選項。這些選項包括 IP 地址、URI 路徑、端口等。
一個不太常用的命令是“show targers”。每個漏洞利用都有一個它將針對的目標(biāo)列表。通過使用“show targets”命令,我們可以獲得它們的列表。在這種情況下,目標(biāo)是自動的,但一些漏洞利用有多達 100 個不同的目標(biāo)(不同的操
作系統(tǒng)、服務(wù)包、語言等),成功通常取決于選擇合適的目標(biāo)。這些目標(biāo)可以通過操作系統(tǒng)、服務(wù)包和語言等來定義。
顯示模塊信息命令:info
info
該信息的命令很簡單。當(dāng)您在選擇一個模塊后鍵入它時,它會顯示有關(guān)該模塊的關(guān)鍵信息,包括需要設(shè)置的選項、有效負載(在有效負載部分中有更多相關(guān)信息)以及模塊描述. 。
新手“搜索”
Metasploit在初學(xué)的時候,最困難的就是尋找自己需要的模塊,畢竟Metasploit現(xiàn)在大概有著3-5K的模塊。幾百個漏洞。如果不懂得如何搜索會嚴(yán)重影響效率。
使用搜索命令的時候一定要添加“:”然后在輸入搜索內(nèi)容。
search type:exploit
搜索系統(tǒng)指定漏洞
指定搜索 windows下的 flash漏洞 (我們要輸入的是平臺:windows 漏洞類型:flash)
search type:exploit platform:windows flash
我們搜索到的會在命令行反饋出來,并且添加了標(biāo)注。添加背影顏色就是。
set
此命令用于在您選擇的模塊內(nèi)設(shè)置選項。例如,如果我們查看上面的show options命令,我們可以看到許多必須設(shè)置的選項,例如 URIPATH、SVRHOST和SVRPORT。我們可以使用 set 命令設(shè)置其中的任何一個,例如;
set SRVPORT 80
這會將默認 SVRPORT(服務(wù)器端口)從 8080 更改為 80。
如果我們在發(fā)現(xiàn)自己操作出問題了 需要取消上一步操作,我們使用使用取消設(shè)置命令。