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