首页 > 未分类 > MSSQL下sa权限不足

MSSQL下sa权限不足

Sep 24th,2009 发表评论

      最近搞个SA注入点,实在是拿不到系统权限。可以执行部分命令,也有回显,也可以列目录,WEB与DATA服务器并不分离。这种情况起码拿到shell是比较容易的事情,组件没有删除的话。NBSI检测,显示权限的确为SA,执行命令有回显。本以为加个用户不就得了,但问题没有想象中的这么简单!执行net user命令显示出了所有用户,但是执行net user hackest hackest /add 的时候提示拒绝访问!net1 user hackest hackest /add同样提示拒绝访问!情况似乎的确比较复杂……开始我以为是net.exe、net1.exe这两个文件的权限做过权限设置,用cacls.exe更改net.exe和net1.exe的文件访问属性也提示拒绝访问!所以打算上传一个本地的net.exe再执行添加用户的操作。但是用VBS文件下载不了,加密了依然下载不了……服务器用的是瑞星!要传文件的话还是先老老实实的拿到webshell再说吧,列目录确定WEB路径,啊D上传了一个海阳eval版一句话ASP马。有个一句话就已经很足够了嘛,嘿嘿。有了webshell就查看存在注入漏洞的文件,找到数据库连接文件,得到MSSQL的有SA权限的用户名和密码,因为目标服务器的MSSQL不允许外连,所以弄了个sqlrootkit.asp上去,用得到的用户名和密码成功连接,并且可以执行部分命令。先来看看net.exe文件的访问属性,据此显示是正常的默认权限,看来权限没有做过更改!

 

利用xp_cmdshell扩展执行cacls.exe C:\\windows\\system32\\net.exe
C:\\windows\\system32\\net.exe NT AUTHORITY\\INTERACTIVE:R
NT AUTHORITY\\SERVICE:R
NT AUTHORITY\\BATCH:R
BUILTIN\\Administrators:F
NT AUTHORITY\\SYSTEM:F
BUILTIN\\Administrators:F
      可以看出权限很正常的,没有做过什么变态的设置,跳到c:\\windows\\system32目录下查看net.exe文件的大小也正常,没有替换成别的什么嘛。net1.exe的情况和net.exe情况一样,无论是文件的大小还是文件的访问权限都很正常,但是为什么SA注入点却没有权限加上用户呢!然后我又把net.exe上传到everyone完全控制的目录,再在sqlrootkit.asp里执行添加用户的命令,但是依然提示“拒绝访问”(如果把net.exe删掉,让系统自动恢复net.exe,就会把net.exe 这个文件的属性都还原成默认状态的了,这个可以解决部分net.exe做过权限设置的服务器)!

      其实最主要的问题是我根本无法利用这个注入点来执行任意我上传的exe文件!要是能执行mt.exe,克隆一下再用pspasswd.exe更改一下密码就行了。不过以上所说的克隆和改密码都需要足够的权限!但在此文中遇到的这个注入点,我们可以慢慢确定注入点根本就不具有system权限!根据EST朋友的跟帖,我总算明白了为什么SA下依然无法拿到服务器权限了!

首先执行whoami,返回:

利用xp_cmdshell扩展执行whoami
cms\sqlserver

       意思是问问系统“我是谁”,系统回答到“我是sqlserver呀”得知当前MSSQL运行的用户为sqlserver,一看这样子都不像是有system权限的用户!所以我们来继续确定下sqlserver的身份,执行net user sqlserver返回如下信息:

net user sqlsqlsql

用户名                 sqlserver
全名                   sqlserver
注释                  
用户的注释            
国家(地区)代码         000 (系统默认值)
帐户启用               Yes
帐户到期               从不

上次设置密码           2009-8-28 10:35
密码到期               从不
密码可更改             2009-8-28 10:35
需要密码               Yes
用户可以更改密码       No

允许的工作站           All
登录脚本              
用户配置文件          
主目录                
上次登录               2009-9-17 10:49

可允许的登录小时数     All

本地组成员             *Users               
全局组成员             *None                
命令成功完成。

      情况现在似乎比较明朗了,MSSQL是以sqlserver这个用户的身份启动的,而sqlserver这个只是个普通用户,属于Users组的。换句话说就是MSSQL下的SA最高境界也只能是Users组成员的权限,也就是一个普通用户的权限而已。普通用户自然不具有添加系统用户的权限,所以之前遇到的问题基本上都可以 迎刃而解了!其实你在本地以普通用户的身份操作一下就容易理解很多的了,很多东西都不能干的,普通用户权限受限较多,起码有一点,就是它是无法实现添加系统用户的操作,除非溢出提权!

声明: 本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: MSSQL下sa权限不足
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.