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