Metasploit簡單使用——payload(攻擊載荷)


一、模塊路徑

payload模塊路徑:/usr/share/metasploit-framework/modules/payload

 

Payload中包含攻擊進入目標主機后需要在遠程系統中運行的惡意代碼,而在Metasploit中Payload是一種特殊模塊,它們能夠以漏洞利用模塊運行,並能夠利用目標系統中的安全漏洞實施攻擊。簡而言之,這種漏洞利用模塊可以訪問目標系統,而其中的代碼定義了Payload在目標系統中的行為。

二、payload模塊的三種類型

payload 模塊主要有以下三種類型:Single、Stager、Stage。

  • Single是一種完全獨立的Payload,而且使用起來就像運行 calc.exe 一樣簡單,例如添加一個系統用戶或刪除一份文件。由於Single Payload是完全獨立的,因此它們有可能會被類似 netcat 這樣的非metasploit處理工具所捕捉到。

  • Stager這種Payload負責建立目標用戶與攻擊者之間的網絡連接,並下載額外的組件或應用程序。一種常見的Stager Payload就是reverse_tcp,它可以讓目標系統與攻擊者建立一條tcp連接,讓目標系統主動連接我們的端口(反向連接)。另一種常見的是bind_tcp,它可以讓目標系統開啟一個tcp監聽器,而攻擊者隨時可以與目標系統進行通信(正向連接)。

  • Stage是Stager Payload下的一種Payload組件,這種Payload可以提供更加高級的功能,而且沒有大小限制。

在 Metasploit 中,我們可以通過Payload的名稱和使用格式來推斷它的類型:

Single Payload的格式為:<target>/ <single>  如:windows/powershell_bind_tcp
Stager/Stage Payload的格式為:<target>/ <stage> / <stager>  如:windows/meterpreter/reverse_tcp

三、Stager中幾種常見的payload

windows/meterpreter/bind_tcp       #正向連接
windows/meterpreter/reverse_tcp    #反向連接,常用
windows/meterpreter/reverse_http   #通過監聽80端口反向連接
windows/meterpreter/reverse_https  #通過監聽443端口反向連接
 
正向連接使用場景:我們的攻擊機在內網環境,被攻擊機是外網環境,由於被攻擊機無法主動連接到我們的主機,所以就必須我們主動連接被攻擊機了。但是這里經常遇到的問題是,被攻擊機上開了防火牆,只允許訪問指定的端口,比如被攻擊機只對外開放了80端口。那么,我們就只能設置正向連接80端口了,這里很有可能失敗,因為80端口上的流量太多了
 
反向連接使用場景:我們的主機和被攻擊機都是在外網或者都是在內網,這樣被攻擊機就能主動連接到我們的主機了。如果是這樣的情況,建議使用反向連接,因為反向連接的話,即使被攻擊機開了防火牆也沒事,防火牆只是阻止進入被攻擊機的流量,而不會阻止被攻擊機主動向外連接的流量。
 
反向連接80和443端口使用場景:被攻擊機能主動連接到我們的主機,還有就是被攻擊機的防火牆設置的特別嚴格,就連被攻擊機訪問外部網絡的流量也進行了嚴格的限制,只允許被攻擊機的80端口或443端口與外部通信

 四、Meterpreter

Meterpreter屬於stage payload,在Metasploit Framework中,Meterpreter是一種后滲透工具,它屬於一種在運行過程中可通過網絡進行功能擴展的動態可擴展型Payload。這種工具是基於“內存DLL注入”理念實現的,它能夠通過創建一個新進程並調用注入的DLL來讓目標系統運行注入的DLL文件。

 

Meterpreter是如何工作的?

首先目標先要執行初始的溢出漏洞會話連接,可能是 bind正向連接,或者反彈 reverse 連接。反射連接的時候加載dll鏈接文件,同時后台悄悄處理 dll 文件。其次Meterpreter核心代碼初始化,通過 socket套接字建立一個TLS/1.0加密隧道並發送GET請求給Metasploit服務端。Metasploit服務端收到這個GET請求后就配置相應客戶端。最后,Meterpreter加載擴展,所有的擴展被加載都通過TLS/1.0進行數據傳輸。

 

Meterpreter的特點:

1. Meterpreter完全駐留在內存,沒有寫入到磁盤

2. Meterpreter注入的時候不會產生新的進程,並可以很容易的移植到其它正在運行的進程

3. 默認情況下, Meterpreter的通信是加密的,所以很安全

4. 擴展性,許多新的特征模塊可以被加載。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM