
我正在運行 Ubuntu 20.04 LEMP(Linux、Nginx、MariaDb、PHP)網頁伺服器。我還在我的 MacOS 用戶端電腦上進行一些 nmap 漏洞測試。在 MacOS 上,我正在使用噢,我的茲什!啟用插件後nmap
。為了從 MacOS 用戶端電腦上對 Ubuntu 伺服器進行一些漏洞測試,我發出了以下命令:
nmap_check_for_vulns my.server.ip.address
這是一個別名命令
nmap --script=vuln
使用我的伺服器的 IP 位址發出命令後,nmap 會報告以下內容:
| http-vuln-cve2011-3192:
| VULNERABLE:
| Apache byterange filter DoS
| State: VULNERABLE
| IDs: CVE:CVE-2011-3192 BID:49303
| The Apache web server is vulnerable to a denial of service attack when numerous
| overlapping byte ranges are requested.
| Disclosure date: 2011-08-19
| References:
| https://www.tenable.com/plugins/nessus/55976
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3192
| https://www.securityfocus.com/bid/49303
|_ https://seclists.org/fulldisclosure/2011/Aug/175
在 Ubuntu 伺服器上,輸出為ss -lnpt
:
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 100 0.0.0.0:25 0.0.0.0:*
LISTEN 0 511 0.0.0.0:443 0.0.0.0:*
LISTEN 0 4096 127.0.0.1:8125 0.0.0.0:*
LISTEN 0 100 0.0.0.0:4190 0.0.0.0:*
LISTEN 0 4096 127.0.0.1:19999 0.0.0.0:*
LISTEN 0 100 0.0.0.0:993 0.0.0.0:*
LISTEN 0 4096 127.0.0.1:10023 0.0.0.0:*
LISTEN 0 4096 127.0.0.1:10024 0.0.0.0:*
LISTEN 0 100 127.0.0.1:10025 0.0.0.0:*
LISTEN 0 4096 127.0.0.1:10026 0.0.0.0:*
LISTEN 0 80 127.0.0.1:3306 0.0.0.0:*
LISTEN 0 100 0.0.0.0:587 0.0.0.0:*
LISTEN 0 128 0.0.0.0:43211 0.0.0.0:*
LISTEN 0 511 127.0.0.1:6379 0.0.0.0:*
LISTEN 0 4096 127.0.0.1:783 0.0.0.0:*
LISTEN 0 100 0.0.0.0:143 0.0.0.0:*
LISTEN 0 511 0.0.0.0:80 0.0.0.0:*
LISTEN 0 4096 0.0.0.0:10000 0.0.0.0:*
LISTEN 0 100 0.0.0.0:465 0.0.0.0:*
LISTEN 0 128 0.0.0.0:43219 0.0.0.0:*
LISTEN 0 256 0.0.0.0:53 0.0.0.0:*
我正在嘗試在伺服器上關閉此漏洞,但是,我的伺服器上沒有安裝apache,所以我不知道為什麼會出現此漏洞!
我的問題是,如何找到存在漏洞的程序,然後如何關閉伺服器上的漏洞?
答案1
檢查ss -lnpt
哪個進程正在偵聽連接埠 80 或 443,這很可能是目標。
答案2
這古老的 查看並非特定於 apache2,它僅特定於緩解 apache2 上此類 DoS 表面的特定方法。 Nginx 不使用它:它預設滿足大量單獨範圍的請求,僅受標頭大小限制。從理論上講,它(或按原樣轉發標頭的任何內容)可能容易受到奇怪請求的過度資源使用的影響。
max_ranges number; Default: — Context: http, server, location
該指令出現在版本 1.1.2 中。
限製位元組範圍請求中允許的最大範圍數。超出限制的請求將被處理,就像沒有指定位元組範圍一樣。預設情況下,範圍的數量不受限制。零值完全禁用字節範圍支援。
沒有什麼比可以用來讓 Apache 伺服器超載的特殊技巧更嚴重的問題了。只要您的 nginx 不在其他地方進行代理(或取決於從快取而不是代理中提供大多數請求),您可能不需要執行任何操作,即使您沒有使用該設定專門添加限制。
如今,Web 伺服器(2011 年後接受維護)只需漠視請求大小總和超過總內容長度的範圍- 幾乎沒有實際應用的東西,因此比限制更好的緩解措施數位範圍。
無論如何..您可以從命令行手工製作這樣煩人的請求。整個漏洞是發送一個帶有標頭的請求,其中標頭的數量約為數百個重疊範圍,等等Range: bytes=1-1337,1-1338,1-1339
。觀察回應(狀態為 206;如果您看到 200 nginx 剛剛忽略了您的標頭並返回了所有內容)是否明顯變慢,那麼您就可以確定了。