中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

怎么利用IIS本身的一些特性建立后門

1970-01-01    來源:

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

  首先簡單介紹一下IIS的配置文件MetaBase.bin。這個文件位于%SystemRoot%system32inetsrvMetaBase.bin,包含了幾乎所有IIS的配置信息,是非常重要的系統(tǒng)文件。簡單的說,我們在“intenet服務管理器”中所作的一切設置最終都會被保存在MetaBase.bin中。在日常的系統(tǒng)管理中除了通過“intenet服務管理器”來對MetaBase.bin進行操作外,Windows還提供了一個腳本adsutil.vbs可以對MetaBase.bin進行操作。?

  MetaBase的結(jié)構(gòu)類似于注冊表,也是樹形結(jié)構(gòu),有類似鍵、值、項的概念。事實上在IIS3和PWS中,MetaBase的內(nèi)容就是存儲在注冊表中的。MetaBase有兩個主鍵:LM和Schema。其中,Schema保存了系統(tǒng)默認的一些配置,通常不需要修改,一旦改錯也非常危險,所以無論是“intenet服務管理器”還是adsutil.vbs都沒有提供修改Schema的機制。LM中包含了IIS的HTTP服務,F(xiàn)TP服務,SMTP服務等的配置信息。其中,LM/W3SVC/下是我們要用到的HTTP服務的配置信息。?

幾個下面會提到的值:?

  LM/W3SVC/InProcessIsapiApps,進程內(nèi)啟動ISAPI。這是一個數(shù)組,里面包含的是一組指向一些ISAPI的路徑。在這個數(shù)組里面的ISAPI運行的時候都是由inetinfo.exe直接啟動的,繼承inetinfo.exe的local?system權限;而不在其中的ISAPI則是由svchost.exe派生的dllhost.exe進程啟動的,運行的身份是IWAM_NAME,當然,這是IIS默認的安全級別“中”的情況下,如果設為低,那么所有ISAPI都會由inetinfo.exe直接派生。另外,如果設定的時候不指定路徑,而是僅指定一個擴展名,那么任何路徑下的同名ISAPI在被調(diào)用的時候都會以system權限執(zhí)行。?

  ScriptMaps,腳本映射。在某個目錄下設定該值后,則向該目錄請求的特定擴展名的文件會交給指定的ISAPI執(zhí)行。需要強調(diào)的是,設定ScriptMaps的目錄并不一定要真實存在的,只要在MetaBase中某個HTTP實例的root鍵下建了一個子鍵,對該字鍵同名目錄的HTTP請求IIS會認為是合法的,并會交由映射的ISAPI處理。這也算是IIS的一個問題吧。?

  CreateProcessAsUser,在某個目錄下指定改值為0,則該目錄下的應用程序會繼承inetinfo.exe的local?system權限。?

  AccessWrite,決定某個目錄是否允許寫入,也就是WEBDAV的PUT方法。?

  AccessExecute,決定某個目錄是否允許執(zhí)行應用程序。?

后門思路:?

  創(chuàng)建一個特定擴展名的腳本映射,指向我們的ISAPI,并把該ISAPI添加到InProcessIsapiApps列表中。那么我們向服務器請求該擴展名類型文件時就會在服務器上以local?system權限執(zhí)行該ISAPI,且所請求的文件并不需要是真實存在的。?

技巧:?

  1、既然并不需要真的建一個目錄來設定ScriptMaps,那么就可以只寫一個鍵,并給這個鍵加上ScriptMaps。這樣,從“intenet服務管理器”里是看不出這個目錄的,更看不到這個ScriptMaps。?

  2、雖然“intenet服務管理器”里面看不出來,但是有經(jīng)驗的管理員可能習慣于偶爾用adsutil.vbs?enum?/p來看一下:?

#?adsutil.vbs?enum?/p?/w3svc/1/root?

Microsoft?(R)?Windows?Script?Host?Version?5.6?

版權所有(C)?Microsoft?Corporation?1996-2001。保留所有權利。?

[/w3svc/1/root/_vti_bin]?

[/w3svc/1/root/evildir]?

  這樣就暴露了。因為我們設的那個鍵并不是真實存在的虛擬目錄,只是配置文件中的一個字符串,所以可以使用0x08這樣的字符來做鍵值。0x08是Backspace鍵對應的16進制值,控制臺上顯示的效果是向左邊刪除一個字符,其實就是把“/”給刪了:?

#?adsutil.vbs?enum?/p?/w3svc/1/root?

Microsoft?(R)?Windows?Script?Host?Version?5.6?

版權所有(C)?Microsoft?Corporation?1996-2001。保留所有權利。?

[/w3svc/1/root/_vti_bin]?

[/w3svc/1/root]?

  面對這種輸出,一般人是不會留意的。?

  當然也可以設為類似_vti_script,_vti_bin這樣的名字,只要不設KeyType,在“intenet服務管理器”中是看不見的。?

  因為系統(tǒng)中本身InProcessIsapiApps中有一個WINNTSystem32msw3prt.dll,是.printer的映射,一般用不上。我們可以刪掉D:WINNTSystem32msw3prt.dll的值,換上WINNTSystem32inetsrvmsw3prt.dll。?

  美中不足的是HTTP請求會留下痕跡,但是HTTP也有好處,那就是可以隨便用一個代理服務器做跳板。另外,也可以用插入0x0D?0x0A來偽造日志的方法,(詳見《Apache,IIS等多種http服務器允許通過發(fā)送回車符偽造日志》一文)這就是構(gòu)造目錄的技巧了。?

具體實現(xiàn):?

  當然可以用adsutil.vbs手工來加。不過需要注意,adsutil.vbs只能設,不能改,所以用adsutil.vbs的時候一定要把原先的也加上,否則原先的就會丟失。不同條目之間用空格分開。?

  先用下面命令取得當前的InProcessIsapiApps列表:?adsutil.vbs?get?/W3SVC/InProcessIsapiApps?

  取到之后把自己的ISAPI路徑也加進去。?adsutil.vbs?set?/W3SVC/InProcessIsapiApps?"C:WINNTSystem32idq.dll"?"C:WINNTSystem32inetsrvhttpext.dll"?………………?

  ScriptMaps的設定同InProcessIsapiApps。?

  當然這樣比較麻煩,也無法寫入0x08這樣的鍵值,所以我干脆自己寫個VBS一次性搞定。至于那個做后門的ISAPI,能實現(xiàn)的功能就完全取決于想象力了。這里是一個簡單例子的屏幕拷貝:?

#?nc?10.11.0.26?80?

POST?/%08/anything.tom?

Microsoft?Windows?2000?[Version?5.00.2195]?

(C)?版權所有?1985-1998?Microsoft?Corp.?

C:WINNTsystem32>whoami?

NT?AUTHORITYSYSTEM?

C:WINNTsystem32>exit?

HTTP/1.1?200?OK?

Server:?Microsoft-IIS/5.0?

Date:?Wed,?08?Jan?2003?06:49:37?GMT?

  更隱蔽的方法是寫一個特殊的ISAPI,并注冊為解析asp的。通常情況下,該程序把收到的請求轉(zhuǎn)給系統(tǒng)原來的asp.dll,并把結(jié)果返回,當收到一個特殊POST請求時就啟動自己的后門代碼,這樣日志里面也不會有什么顯示。審核時也很難發(fā)現(xiàn)。?

  除了上面所述利用腳本映射的方法外,還可以賦予某個虛擬目錄AccessWrite和AccessExecute權限。需要運行后門的時候利用WEBDAV上載ISAPI,然后運行,使用完了再刪除。(是否能刪除?還是需要restart?W3SVC??我沒有試驗。)如果上載的不是DLL而是EXE文件,那么把該目錄下的CreateProcessAsUser設為0也可以獲得local?system權限,這個方法早有人撰文論述。但AccessWrite和AccessExecute的改變都可以在“intenet服務管理器”中看出來,隱蔽性就差了。

標簽: http服務器 安全 代理服務器 代碼 服務器 腳本 權限 問題

版權申明:本站文章部分自網(wǎng)絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:路由器的幾個基本命令

下一篇:從五個方面來提升Web站點性能