【譯】Metasploit:Metasploit module 的正確打開(kāi)方式



Metasploit 將一些難以理解或者難以設(shè)計(jì)出來(lái)的技術(shù)轉(zhuǎn)換成了非常容易使用的東西。不夸張的說(shuō),只需要點(diǎn)擊幾下即可讓你看起來(lái)像《黑客帝國(guó)》中的 Neo 一樣狂拽酷炫吊炸天。

這樣 Hacking 變得非常簡(jiǎn)單。然而,如果你以前沒(méi)有接觸過(guò) Metasploit,那么你需要知道的是:沒(méi)人能一次成功(譯者注:原文為 Nobody makes their first jump,來(lái)自《黑客帝國(guó)》)。你會(huì)犯錯(cuò)誤,有時(shí)很小,有時(shí)可能會(huì)是災(zāi)難性的......但愿不會(huì)。

在第一次進(jìn)行利用的時(shí)候你很可能會(huì)面對(duì)失敗,就像《黑客帝國(guó)》中的 Neo 一樣。當(dāng)然,要想達(dá)到你的目標(biāo),你必須學(xué)會(huì)適當(dāng)?shù)厥褂眠@些模塊,我們會(huì)教你如何做。

在本篇文檔中,我們不要求讀者有 Exploit 開(kāi)發(fā)的知識(shí)。當(dāng)然如果有一些 Exploit 開(kāi)發(fā)的經(jīng)驗(yàn),那當(dāng)然再好不過(guò)了。
總的來(lái)說(shuō),在漏洞利用之前,實(shí)際上有一些“功課”需要做。

加載一個(gè) Metasploit 模塊

每一個(gè) Metasploit 模塊都會(huì)攜帶一些元數(shù)據(jù)來(lái)解釋這個(gè)模塊的用途,首先你需要加載目標(biāo)模塊。例如:

msf > use exploit/windows/smb/ms08_067_netapi

閱讀一個(gè)模塊的描述和參考文獻(xiàn)

可能聽(tīng)起來(lái)讓人驚訝,但是有時(shí)候我們?nèi)匀粫?huì)被問(wèn)道一些已經(jīng)在文檔中解釋過(guò)的問(wèn)題。所以,在你決定究竟一個(gè)模塊是不是應(yīng)該被使用的時(shí)候,你應(yīng)該先在模塊提供的文檔和參考文獻(xiàn)中尋找如下問(wèn)題的答案:

  • 哪個(gè)具體產(chǎn)品和哪個(gè)具體版本是存在漏洞的:關(guān)于一個(gè)具體漏洞,這是你應(yīng)該明確的最基礎(chǔ)的問(wèn)題

  • 漏洞的類(lèi)型是什么?漏洞是如何被利用的?基本上來(lái)說(shuō),你正在學(xué)習(xí)的是漏洞利用的副作用。例如:如果你正在嘗試?yán)靡粋€(gè)內(nèi)存破壞(譯者注:原文 memory corruption)漏洞,如果因?yàn)槟承┰颍檬×?,你可能?huì)讓目標(biāo)服務(wù)器直接崩潰掉。就算利用成功,得到了一個(gè) Shell,當(dāng)你已經(jīng)完成了你想要在目標(biāo)系統(tǒng)上做的事情,并在 Shell 中輸入 exit 退出的時(shí)候,目標(biāo)服務(wù)器也會(huì)崩潰掉。高層(譯者注:原文 High level,個(gè)人理解相對(duì)于底層漏洞,一個(gè)不小心系統(tǒng)可能會(huì)直接 crash,但是如果高層的漏洞利用,如果只是一個(gè) WEB 漏洞,那么肯定對(duì)操作系統(tǒng)造成不了什么影響)的漏洞一般來(lái)說(shuō)比較安全,但是也不是百分之百安全。例如:某一個(gè)漏洞利用程序可能需要修改配置文件或安裝可能導(dǎo)致應(yīng)用程序中斷的內(nèi)容,這些可能成為對(duì)目標(biāo)系統(tǒng)的永久性破壞。

  • 哪些目標(biāo)環(huán)境是通過(guò)漏洞利用測(cè)試的? 當(dāng)一個(gè)漏洞利用程序開(kāi)發(fā)完成的時(shí)候,如果目標(biāo)操作系統(tǒng)種類(lèi)太多,通常情況下很難去在每一個(gè)可能的目標(biāo)系統(tǒng)上進(jìn)行測(cè)試。通常開(kāi)發(fā)者僅會(huì)在他們手頭現(xiàn)有的目標(biāo)系統(tǒng)上進(jìn)行測(cè)試。所以,如果你的目標(biāo)系統(tǒng)不在支持的目標(biāo)系統(tǒng)列表中的時(shí)候,請(qǐng)了解我們并不能保證漏洞利用程序會(huì)百分之百利用成功。最安全的做法是你可以先重新搭建一個(gè)和目標(biāo)系統(tǒng)一模一樣的靶場(chǎng)環(huán)境進(jìn)行漏洞利用測(cè)試,測(cè)試通過(guò)后在進(jìn)行實(shí)際的對(duì)目標(biāo)系統(tǒng)的測(cè)試。

  • 服務(wù)器必須滿足什么條件才可以被利用?通常,一個(gè)漏洞利用需要很多條件同時(shí)滿足才可以成功。有些情況下,你可以使用 Metasploit 的 check 命令 來(lái)檢查目標(biāo)系統(tǒng)是否可以被利用,因?yàn)?Metasploit 將某一個(gè)事物標(biāo)記為存在漏洞的時(shí)候,事實(shí)上是利用了目標(biāo)的 BUG。對(duì)于使用 BrowserExploitServer mixin 的瀏覽器攻擊程序,會(huì)在加載漏洞利用之前檢查可利用的條件是否滿足。但是自動(dòng)化的檢查并不是每個(gè)模塊都有的,所以你應(yīng)該在執(zhí)行 exploit 命令之前先嘗試搜集這些信息,這應(yīng)該是一個(gè)攻擊者的常識(shí)。例如:一個(gè) WEB 應(yīng)用的文件上傳功能就很容易被濫用,被用來(lái)上傳一個(gè)基于 WEB 的后門(mén)程序,但是這個(gè)漏洞要成功利用的條件是用戶必須有對(duì)上傳文件夾的訪問(wèn)權(quán)限。如果你的目標(biāo)系統(tǒng)不滿足這些必要條件,那就沒(méi)有必要再進(jìn)行嘗試了。

你可以通過(guò)輸入如下命令來(lái)查看模塊的描述信息:

msf exploit(ms08_067_netapi) > info

目標(biāo)列表(譯者注:Target List,具體目標(biāo)操作系統(tǒng)列表,包括版本等)

每一個(gè) Metasploit 漏洞利用都有一個(gè)(可用)目標(biāo)列表。
開(kāi)發(fā)人員在公開(kāi)發(fā)布漏洞利用程序之前,會(huì)進(jìn)行一系列的測(cè)試。
如果目標(biāo)系統(tǒng)不在這個(gè)列表中,最好假設(shè)該漏洞利用程序從未在該特定的設(shè)置上進(jìn)行過(guò)測(cè)試。

如果漏洞利用程序支持自動(dòng)選擇目標(biāo)系統(tǒng),那么列表中的第一項(xiàng)就會(huì)是 “自動(dòng)選擇目標(biāo)系統(tǒng)”(Automatic Targeting)(也就是索引為 0 的一項(xiàng))。第一項(xiàng)總是會(huì)被默認(rèn)選中,這意味著如果你以前并沒(méi)有使用過(guò)這個(gè)漏洞利用程序那么你就永遠(yuǎn)不應(yīng)該假設(shè)漏洞利用程序會(huì)為你自動(dòng)選擇目標(biāo)系統(tǒng),并且這個(gè)默認(rèn)值并不一定是你正在測(cè)試的目標(biāo)所使用的操作系統(tǒng)

"show options" 命令可以告訴我們哪些目標(biāo)系統(tǒng)已經(jīng)被選擇,例如:

msf exploit(ms08_067_netapi) > show options

“show targets” 命令會(huì)列出所有該漏洞利用程序支持的目標(biāo)操作系統(tǒng)列表

msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(windows/smb/ms08_067_netapi) > show targets 

Exploit targets:

   Id  Name
   --  ----
   0   Automatic Targeting
   1   Windows 2000 Universal
   2   Windows XP SP0/SP1 Universal
   3   Windows 2003 SP0 Universal
   4   Windows XP SP2 English (AlwaysOn NX)
   5   Windows XP SP2 English (NX)
   6   Windows XP SP3 English (AlwaysOn NX)
   7   Windows XP SP3 English (NX)
   8   Windows XP SP2 Arabic (NX)
   9   Windows XP SP2 Chinese - Traditional / Taiwan (NX)
   ...

檢查所有選項(xiàng)

所有的 Metasploit 模塊都預(yù)先配置了大部分的數(shù)據(jù)存儲(chǔ)的選項(xiàng)。然而,它們可能并不適合于你正在測(cè)試的目標(biāo)系統(tǒng)。你可以使用 “show options” 命令來(lái)進(jìn)行一次快速檢查:

msf exploit(ms08_067_netapi) > show options

然而,“show options” 僅為你顯示所有的基礎(chǔ)選項(xiàng),一些逃避(譯者注:原文 evasion,該選項(xiàng)主要用于逃避反病毒軟件或者攻擊檢測(cè)系統(tǒng)的審查,例如在 WEB 漏洞的利用中可以通過(guò)隨機(jī) HTTP User-Agent 字段來(lái)逃避某些審查,例如 Pull Request 5872)和高級(jí)選項(xiàng)并不會(huì)被顯示出來(lái)(使用 "show evasive" 和 “show advanced”),可以使用 set 命令來(lái)對(duì)數(shù)據(jù)存儲(chǔ)選項(xiàng)進(jìn)行配置:

msf exploit(ms08_067_netapi) > set

尋找模塊對(duì)應(yīng)的 Pull Request

Metasploit 倉(cāng)庫(kù)是托管在 GitHub 上的(嗯,其實(shí)就是你正在瀏覽的網(wǎng)站),開(kāi)發(fā)者和貢獻(xiàn)者在開(kāi)發(fā)中嚴(yán)重依賴 GitHub。在一個(gè)模塊被公開(kāi)之前,它將會(huì)被作為一個(gè) Pull Request 提交到 Metasploit 倉(cāng)庫(kù),之后該 Pull Request 將會(huì)被測(cè)試以及被 Review。在一個(gè)模塊的 Pull Request 頁(yè)面,你將會(huì)找到你需要知道的關(guān)于該模塊的 所有信息 ,你或許還能得到一些從模塊描述或者一些別的博客文章中沒(méi)有的信息。這些信息是非常有價(jià)值的!

你可以從 Pull Request 中學(xué)到的有:

  • 搭建漏洞環(huán)境的步驟
  • 哪些目標(biāo)環(huán)境已經(jīng)被測(cè)試過(guò)
  • 該模塊應(yīng)該如何使用
  • 模塊如何被檢驗(yàn)并通過(guò)審核
  • 哪些問(wèn)題是已經(jīng)被確定的,其中可能就有你想要知道的
  • Demo
  • 其他的驚喜

有兩種主要的方法可以找到一個(gè)指定模塊的 Pull Request

  • 通過(guò) Pull Request 的序號(hào):如果你已經(jīng)知道了具體的 Pull Request 序號(hào),那么就很簡(jiǎn)單了,只需要訪問(wèn)如下連接
https://github.com/rapid7/metasploit-framework/pull/[PULL REQUEST NUMBER HERE]
  • 通過(guò)搜索(過(guò)濾器) 這個(gè)方法更加通用。首先你應(yīng)該先訪問(wèn):https://github.com/rapid7/metasploit-framework/pulls。在頁(yè)面頂部,你將看到一個(gè)搜索輸入框和一個(gè)默認(rèn)的過(guò)濾器:is:pr is:open,這些默認(rèn)值意味著你正在查看 Pull Request,并且你正在查看那些待定的 Pull Request (等待被合并到 Metasploit 中的 Pull Request)。因?yàn)槟阏趯ふ乙呀?jīng)被合并到 Metasploit 的模塊,所以你需要按照如下操作:
  1. 選擇已經(jīng)關(guān)閉的 Pull Request
  2. 選擇 “模塊” 標(biāo)簽
  3. 在搜索框中,輸入其他和你要搜索的模塊相關(guān)的關(guān)鍵字。一般來(lái)說(shuō),模塊的標(biāo)題即可。

注意:如果你想要找的模塊是 2011 年寫(xiě)的,那么將不會(huì)有關(guān)于這個(gè)模塊 Pull Request (譯者注:可能是因?yàn)?2011 年才開(kāi)始在 GitHub 上托管?或者 GitHub 2011 年才上線 Pull Request 功能?)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,347評(píng)論 25 708
  • 裸奔第193天。
    全國(guó)糖人閱讀 288評(píng)論 0 0
  • 懶螞蟻效應(yīng)是指,企業(yè)里通常有一群人,懶于雜務(wù),但勤于動(dòng)腦。要善用這群人,他們?cè)陉P(guān)鍵時(shí)刻,會(huì)發(fā)揮重要價(jià)值,比如戰(zhàn)略領(lǐng)...
    念美美閱讀 373評(píng)論 3 1
  • 《本草綱目》中直接把蓮藕譽(yù)為“靈根”,《神農(nóng)本草經(jīng)疏》則認(rèn)為藕“實(shí)得天地清芳之氣,稟士中沖和之味,故味甘氣平?!?...
    享受幸福1閱讀 1,204評(píng)論 0 1

友情鏈接更多精彩內(nèi)容