Metasploit基礎
認識Metaspliot框架
Metaspliot(MSF)滲透測試框架,提供眾多的接口、選項、變量、模塊以供滲透工作人員使用它完成一系列的滲透攻擊。
滲透攻擊(Exploit)
滲透攻擊是指攻擊者利用一個系統、應用或服務件的安全漏洞,進行攻擊行為;往往會造成開發者所沒有預期到的一種特殊結果。常見的滲透攻擊技術包括緩沖區溢出、Web應用程序漏洞攻擊(SQL注入、XSS、文件漏洞等)以及服務件的配置錯誤。
攻擊載荷(Payload)
攻擊載荷是我們期望目標在被攻擊后去執行的代碼。在Metaspliot框架中可以自由的選擇、傳送和植入。例如反彈式Shell是一種從目標主機到攻擊主機之間創建一個網絡連接,並提供命令行Shell的攻擊載荷,而bind shell攻擊載荷則在目標主機上將命令行shell綁定到一個打開的監聽端口,攻擊者可以麗娜姐這些端口來取得shell交互;攻擊載荷可以是簡單的在目標操作系統上簡單的執行一些命令,如添加用戶。
Shell Code
shell code是在攻擊時作為攻擊載荷運行的一組機器指令;shellcode通常用匯編語言編寫,在大多數的情況下,目標系統執行了shell code這一組指令之后,才會提供一個命令行shell或者Meterpreter Shell。
模塊(Module)
模塊指的是Metasploit框架中使用的一段軟件代碼組件;在某些時候可能會使用到一個滲透攻擊模塊(Exploit Module),也就是用於實際發起滲透測試的攻擊的軟件代碼組件,而在其它時候,則可能使用一個輔助模塊,用來執行一些類似掃描或系統端點的攻擊動作;模塊的健全是Metasploit框架強大的核心。
監聽器(Listener)
監聽器是Metasploit框架中用來等待接入網絡連接的組件,舉例來說,在目標主機被滲透測試攻擊之后,它會通過互聯網回連攻擊主機上,而監聽器組件則在攻擊主機上等待被滲透攻擊的系統來連接,並負責處理這些網絡連接。
Metasploit用戶接口
Metasploit框架,有很多的用戶接口,包括終端、命令行、圖形化界面等;除此之外,功能程序則提供了對Metasploit框架中內部功能的直接訪問。
MSF 終端
MSF終端(msfconsole)是目前Metasploit框架中最流行的用戶接口(打開方式),MSF終端提供了最為靈活的的操作方式。
-
啟動MSF終端: 直接使用msfconsole命令是最快啟動msf終端的方法
root > msfconsole
上圖則是在Kali下啟動MSF終端后的界面內容
使用help則可以查看msf的幫助文檔,而help connect命令則可以通過搜索的方式查看幫助文檔。
msf5 > help connect
MSF命令行
MSF命令行是MSF終端為Metasploit框架訪問提供了兩種截然不同的途徑,終端以一種友好的模式提供交互方式,用於訪問呢框架的所有功能,而命令行(msfcli)則是主要考慮腳本處理和與其他命令行工具的互操作性。
root > msfcli
root > msfcli -h
- 但是在新的msf3之后的4和5,不在使用msfcli命令了;但是並沒有拋棄命令行模式,而可以使用“-x”標志來實現msfcli之前支持的操作。我們采用msfconsole -x來實現 使用 MS08_067模塊。參考:https://blog.csdn.net/zesicus/article/details/49952279
root > msfconsole -x
Armitage界面
MSF圖形界面交互式接口
root > armitage
Metaspoit功能程序
MSF攻擊載荷生成器
MSF攻擊載荷生成器可以生成shell code、可執行代碼和其他更多的內容。ShellCode可以生成包括C、JavaScript、甚至Web應用中VB腳本在內的多種格式,每種輸出格式在不同的場景中使用。比如,Python編寫的的一個攻擊驗證代碼【漏洞利用方法】(POC),那么C語言格式輸出是最好的;如果編寫一個瀏覽器攻擊代碼,那么JavaScript語言方式輸出的ShellCode是最合適的,在選擇輸出的格式之后,可以簡單的將這個攻擊載荷直接加入到一個HTML文件中來觸發滲透攻擊。
2015年之后msfpayload命令也被移除了,所以被整合在msfvenom中了(msfpayload+msfencode = msfvenom)
root > msfvenom -h
MSF編碼器
MSF攻擊載荷生成器的shellcode完全是可以獨立運行的,但是包含了一些NULL空字符,在進行解析的時候會出現一些小問題,空字符會認為是字符串的結束標志,從而使代碼在完整的運行之前被截斷而終止運行。
同時在網絡中明文傳輸shellcode會被查殺或識別攔截,為此MSF體系下支持自主的編碼器對shellcode內容進行編碼,防止被查殺或識別攔截。
Msfvenom的使用:http://www.zerokeeper.com/tools/use-of-msfvenom.html
Msfvenom 在 2015 年 6 月 8 日已經替代了 msfpayload 與 msfenocde 命令,它是這兩個命令的結合體。