知道管理员密码,用管理员身份启动程序


 

    我们一直把拿到管理员密码和提升权限,完全控制该计算机看作是一回事,就连我以前写的NT/2000提升权限方法小结 都是一样,其实不是这样的。道理很简单,大家也明白,只是懒得计较,能获得administrator密码很不容易了,还理什么完全控制计算机? 不过有一个问题是很多人都遇到过的,就是你拿到管理员的密码了,但是没有办法用,你用unicode漏洞启动程序后身份只是IUSR_computer(guests组的),你的管理员密码用不上。就像你找到了库房的钥匙,可是找不到门,只能用竹竿从拿到钥匙的天窗向里窥探,或许可以拿到点东西,但总是不爽。这篇文章就对如何打开大门,开着卡车去拉东西做个讨论。

    首先,声明问题和目的:

问题:知道admin的密码,怎么用admin权限运行程序??

目的:把一个远程控制的服务端程序以管理员身份运行,然后我们用客户端连接上去就是管理员身份了。

假设:
1). 要执行的程序是ntshell.exe(没办法,做作广告吧),而且已经放在c:\下了。如果仅仅是ncx功能的工具,我建议你不要用,因为一旦以管理员权限运行后你就需要上传、下载很多文件,而使用ncx最令人头痛的就是文件的传输。使用ntshell还是很方便的。当然也有不便之处,就是还不够稳定,有时连接会没有响应,我会尽快解决。废话少说,下面

2). 你具有密码的那个管理员用户是admin,密码是admin_password,计算机ip是10.10.10.1

3). 你可以在对方服务器上执行ntshell程序,只是身份太低,比如guests,去,又是废话:) 

好啦,下面是方法总结:

事先声明:以下几种方法也可以做到,不过这里不作重点讨论

1. 当然使用木马的自动运行最普遍了,不过这要等对方重起后才起作用,而有些服务器是好长时间不重起的。我下面是指直接的方法。

2. 小榕的RunAsEx类程序,这种程序本来是最理想的,它们可以用其他用户的身份启动程序,你只需提供用户名和密码,不过执行这种程序本身需要很高的权限,起码是管理员。runasex可以在远程主机上用另外用户的身份启动程序,不过成功运行这个程序必须是管理员或者system身份。Windows 2000的runas服务也是一个,guests也可以使用,不过提供这个服务的恐怕... 而且使用IIS启动的进程(任何用户)不能使用这项服务。

3. GetAdmin(NT + sp3)、PipeupAdmin和,GetAdmin在NT4的sp3以下(含)和PipeupAdmin在没有打补丁的 Win2k 上可以成功将当前用户添加到管理员组。因为他们没有创建新进程,因此运行他们需要的权限不大,GetAdmin可以在iis启动的IUSR_computer权限下成功运行,而PipeupAdmin可以由guest成功运行,不过由IIS启动的进程好像只有管理员组用户才能成功运行它(初步实验结果,谁试验出不同,)。不过运行成功后好像得注销一下才能起作用(PipeupAdmin没有成功,而GetAdmin又没有环境)。

4. WIN2000的netdde漏洞攻击程序,这个程序和RunAsEx的性质类似,也是使用一个高权限的程序(netdde服务,系统)来启动新进程,不过他利用的是漏洞和第2种(任何时候都可以使用)不同。

 

进入重点

方法1. 计划任务

条件:当然这需要对方开放139端口,而且没有禁止计划任务服务。

步骤:这是最直接的方法,一切操作均在你自己的计算机上远程操作。首先要测试条件是否满足,输入:net use \\10.10.10.1 admin_password /user:admin, 如果出现“找不到网络路径”的错误,那么或者对方没有对你开放139端口,或者你的proxy不能转发netbios请求(你可以到你的proxy server那试试),那这个方法就不灵了。

如果连接已经建立,还要看看计划任务服务是否可以运行。使用 at \\10.10.10.1 ,如果出现计划任务的列表那么ok;如果出现“服务仍未启动”,那么还需要进一步确定是禁止了还是仅仅没有启动;如果... 还有如果吗?就这两种情况。

如果仅仅没有启动(没有禁止该服务),可以使用netsvc(NT/2000 resource kit带的远程查询和控制服务状态的工具)进行启动,如果成功ok。使用netsvc schedule \\10.10.10.1 /start启动计划任务服务,如果出现“Access denied”拒绝访问,那就白忙了,换别的方法吧。

好啦,计划任务服务启动了,先用net time \\10.10.10.1看看他的时间,是10:3分,然后用 at \\10.10.10.1 10:6 c:\ntshell.exe 来添加一个计划,然后就过3分钟就去连接好啦。

这种方法可能你还不止是admin,很可能是system呢。

问题:问题自不必说,上边两个条件不是总能满足,不然我也就可以去睡觉,而不用写这个了。

 

方法2:利用IIS创建管理员进程

步骤:大家可能见过访问有些站点时,会弹出一个密码验证的对话框吧。如果该站点或者虚拟目录启用了集成 windows 验证(windows NT challenge/ response)的话,当匿名访问禁止或者ntfs设置guests用户无权访问该文件时 IIS 就会使用nt/2000的用户验证机制,从而弹出一个对话框。我们就利用这个设置上的隐患,你是不是知道了.... :)

把ntshell.exe设置只有admin完全控制(其他也可以了,反正IUSR_computer无权执行就行了),cacls c:\ntshell /p admin:f 。

然后从web上执行它,这样如果他设置了集成 windows 验证的话,会让你输入用户名、密码和域,输入后,这个程序就是admin身份运行了。然后去连接你就是admin而不是guests了。

问题:不过大家也看出问题来了吧,就是如果对方没有设置虚拟目录集成 windows 验证的话,就不会弹出密码验证对话框,而是直接出现“HTTP 401.3 - ACL 禁止访问资源”的错误。还有就是要有一个可以执行的虚拟目录(这个好办些,可能就是你最初下手并执行一些上传文件、查看信息的地方)

解决:可执行的虚拟目录不止一个,这个不行你可以试试别的,缺省安装有的可执行目录有scripts、msadc和iisadmpwd 。

如果还找不到就只有修改虚拟目录的设置(当然需要权限)使他允许集成 windows 验证,IIS安装目录(%windir%\system32\inetsrv)下的metabase.bin就是存放IIS配置的。

于是我们可以修改这个文件来启动虚拟目录使他允许集成windows验证,怎么改?看下面:

Metabase 本质上就是 IIS 的注册表,它包含每个实际可用的配置参数,包括那些与安全相关的参数,是控制IIS行为的分层数据库。可以使用MetaEdit(Windows 2000 Resource Kit带的,图形界面)来查看该库的结构。

但是MetaEdit不能在对方那运行,于是我们需要一个命令行的:mdutil.exe  这是在 NT4 Option Pack CD-ROM 中附带的 IIS Metabase 处理工具。 mdutil 是将 IIS 的所有配置数据转储到命令提示符下的便捷工具(就像reg.exe转储注册表),可以查询和修改。

mdutil的用法可以看它的帮助,说明得很清楚,举个例子:修改虚拟目录msadc,使它启用集成 windows NT 验证:

C:\>mdutil enum w3svc/1/root/msadc ;看看他都有什么设置

AccessPerm : [IF] (DWORD) 0x207={Read Write Execute Script}
Authorization : [IF] (DWORD) 0x1={Anonymous}

......

AccessPerm 是允许的访问,现在是完全访问。
Authorization 就是身份验证的方式, 
    1-就是匿名,2-明文,4-集成windows NT验证

我们就把它改为5 - 匿名和集成windows NT验证两种方式(这些参数在不同的工具里叫法不一样)

C:\>mdutil set w3svc/1/root/cgi/Authorization 5

好啦,问题解决了。

不过要修改对方IIS的配置需要对metabase.bin的写权限,这个权限有没有就不知道了。

 

结束语:

如果以上方法均不能奏效,那就得试试本地溢出或者远程溢出了。

以上提到的程序可以在本站下载(绝对链接):

远程访问控制      ntshell.exe
其他身份运行程序  RunAsEx.exe
NT4+SP3的提升权限 GetAdmin.cab
Win2K提升权限     PipeupAdmin.exe
Win2K Netdde服务漏洞攻击程序  netddemsg.zip
远程服务查询和控制 netsvc.exe
IIS Metabase修改  mduti.exe

感谢 提供IIS Metabase资料

 

如果转载本文章,请保持文章的完整。

 

 


与我联系: , 欢迎到我的留言簿