top of page
作家相片Samuel

Nmap NSE Category vulns Script:http-shellshock 探測並利用 Web 應用程序的 Shellshock 漏洞

已更新:8月26日


Nmap Script指令摘要


這個指令用於探測和利用Web應用程序中的「Shellshock」漏洞(CVE-2014-6271和CVE-2014-7169);這個漏洞存在於一些Web應用程序中,可能允許攻擊者遠端執行任意命令。


要檢測這個漏洞,這個指令執行一個命令,該命令將產生一個隨機的字串(random string),然後它嘗試在Web應用程序的回應中找到這個隨機字串;如果能夠在回應內容中找到這個隨機字串,那麼這個Web應用程序可能受到Shellshock漏洞的影響。


需要注意的是,如果一個Web應用程序不會將訊息列出回應給攻擊者,那麼這種方法可能無法檢測到漏洞;此外,該指令預設情況下會將潛在的攻擊有效負載注入到HTTP請求的不同部分,包括「User-Agent」、「Cookie」和「Referer」等表頭;這個漏洞是由Stephane Chazelas發現的,並被廣泛關注和修補。


參考資料:


Nmap Script指令參數

http-shellshock.uri

用於指定要測試"Shellshock"漏洞的目標URI(Uniform Resource Identifier);預設值為 “ / ”,表示測試目標的根目錄;這個選項允許您指定應該受到Shellshock漏洞測試的網頁或應用程序的位置,通常,您會指定這個URI在您懷疑存在Shellshock漏洞的網頁,然後指令將嘗試利用漏洞來測試它是否受到影響。


例如,如果您懷疑目標網站的/cgi-bin目錄中的某個CGI指令存在Shellshock漏洞,您可以將http-shellshock.uri設定為/cgi-bin,以便指令在該目錄中查找Shellshock漏洞。

http-shellshock.header

用於指定要在HTTP請求中使用的表頭(Header);預設選項的值為 "User-Agent",即使用 "User-Agent" 表頭來執行 Shellshock 漏洞測試;HTTP 表頭是包含在 HTTP 請求和回應中的描述資料 (metadata),描述資料提供了有關 HTTP 存取的更多訊息;在Shellshock漏洞測試中,修改HTTP表頭可以用於注入Shellshock攻擊,以檢測目標是否受到漏洞的影響。


您可以根據需要更改 http-shellshock.header 的值,以使用不同的HTTP表頭來執行測試;例如,您可以將其設定為 "Referer" 或 "Cookie" 以測試不同的表頭。

http-shellshock.cmd

這個選項允許使用者指定要在攻擊負載中傳送的自訂命令,預設值是 "nil",表示未指定自訂命令。

slaxml.debug

參閱 slaxml 函式庫了解進一步資訊,其中包含了如何啟用或關閉 slaxml 函式庫的除錯模式,當除錯模式開啟時,slaxml 函式庫會產生額外的訊息或輸出,以幫助開發人員或使用者更容易地追蹤和解決問題;這些訊息包括錯誤訊息、變數的值、函數的執行步驟等。

http.host, http.max-body-size, http.max-cache-size, http.max-pipeline, http.pipeline, http.truncated-ok, http.useragent
  • http.host(主機): 用於網路通訊中,指定要存取的目標主機的位址;它可以是一個網網域名稱稱或IP位址,這個設定允許您明確指定要連接的主機。

  • http.max-body-size(最大主體大小): 用於限制HTTP請求或回應中主體(即內容)的最大大小,當您需要限制傳輸的資料大小時,可以使用這個設定。

  • http.max-cache-size(最大暫存大小): 用於限制HTTP暫存中儲存的內容的最大大小,它通常用於控制網路暫存的大小,以節省儲存空間。

  • http.max-pipeline(最大通道): 這是一個參數,用於指定允許的HTTP通道(Pipeline)請求的最大數量;通道請求是一種允許客戶端在不等待先前請求的回應之前發送多個請求的機制。

  • http.pipeline(通道): 用於啟用或禁用HTTP通道功能,當啟用時,客戶端可以在同一個TCP連接上發送多個請求,以提高性能。

  • http.truncated-ok(允許截斷的 OK 標誌): 用於指定是否允許接收到截斷的HTTP回應;如果啟用,則客戶端將接受部分資料而不報錯,這在某些情況下可能有用。

  • http.useragent(使用者代理): 用於指定HTTP請求中的使用者代理表頭,使用者代理標頭通常包含有關客戶端應用程序的訊息,例如瀏覽器或應用程序的名稱和版本,這可用於識別客戶端或自定義HTTP請求。

這些設定通常用於HTTP請求和回應的配置,以根據特定需求自定義通訊行為和性能;可至 http函示庫中了解更多資訊。

smbdomain, smbhash, smbnoguest, smbpassword, smbtype, smbusername
  • smbdomain(SMB 網域名稱): SMB(Server Message Block)網域名稱是一個用於存取共享資源的網路協定的網域、或工作群組的名稱;這個參數用於指定 SMB 通訊中使用的網域名稱。

  • smbhash(SMB 哈希): SMB 哈希 (Hash) 是一種將密碼轉換為哈希值 (Hash Value) 的過程,通常用於身份驗證。這個參數可能用於指定已經計算好的哈希值 (Hash Value),以進行身份驗證。

  • smbnoguest(禁止訪客): 這個參數用於指定是否禁止 SMB 通訊中的訪客存取,設定為 "true" 通常表示禁止訪客存取,而"false" 表示允許訪客存取。

  • smbpassword(SMB 密碼): SMB 密碼是用於身份驗證的密碼,這個參數通常用於指定 SMB 通訊中的密碼。

  • smbtype(SMB 類型): 這個參數用於指定 SMB 通訊的類型或協定版本,它可能指定使用的 SMB 版本,例如 SMBv1、SMBv2 等。

  • smbusername(SMB 使用者名稱): 這個參數用於指定 SMB 通訊中的使用者名稱,它是身份驗證的一部分,通常與密碼一起使用。

這些參數通常用於 SMB 通訊中,SMB 是一種用於在網路上存取共享文件和資源的協定;根據具體的需求和配置,您可以使用這些參數來進行身份驗證、存取共享資源等操作;查閱 smbauth函示庫瞭解如何使用這些參數進行設定。

vulns.short, vulns.showall
  • vulns.short(漏洞摘要): 這是一個用於漏洞訊息的簡短摘要;通常,當查詢漏洞訊息時,這個參數可能會提供有關漏洞的簡要描述,以便使用者快速了解漏洞的性質和影響。

  • vulns.showall(顯示所有漏洞): 這個參數用於指示系統顯示所有可用的漏洞訊息;當設定為"true"時,它將顯示所有漏洞的詳細訊息,包括其描述、威脅等級、修補建議等;這有助於使用者全面了解系統的安全狀態。


這些參數通常用於與漏洞掃描和安全評估相關的操作中;用於瞭解潛在的安全風險並採取必要的措施來保護系統免受可能的攻擊;建議參考相關的 vuln 函示庫深入了解如何使用這些參數和相關功能。


Nmap Script指令範例

nmap -sV -p- --script http-shellshock <target>
nmap -sV -p- --script http-shellshock --script-args uri=/cgi-bin/bin,cmd=ls <target>

Nmap Script指令輸出

PORT   STATE SERVICE REASON
80/tcp open  http    syn-ack
| http-shellshock:
|   VULNERABLE:
|   HTTP Shellshock vulnerability
|     State: VULNERABLE (Exploitable)
|     IDs:  CVE:CVE-2014-6271
|       This web application might be affected by the vulnerability known as Shellshock. It seems the server
|       is executing commands injected via malicious HTTP headers.
|
|     Disclosure date: 2014-09-24
|     References:

Nmap Script作者:

Paulino Calderon

License: Same as Nmap--See https://nmap.org/book/man-legal.html



Nmap
Nmap

 

延伸閱讀

10 次查看
bottom of page