明 迦-WilliamChung

--孤傲的花之斗士--

  IT博客 :: 首页 :: 联系 :: 聚合  :: 管理
  3 Posts :: 0 Stories :: 10 Comments :: 0 Trackbacks

       这段时间服务器出了点问题,弄得很郁闷!进程里多了2个进程,一个ftp.exe,一个cmd.exe,手动清除不掉这2个进程,用了好几款杀毒软件如:卡巴斯基互联网安全套装7.0、瑞星2008、Mcafee8.5企业版等都无济于事!只有Mcafee查出在system32下发现两个病毒文件eq和tt,但清除掉后,过不了多久就又自动出现了!无发彻底清除,后来到安全模式下用冰刃强杀,彻底清查注册表,但是重启后病毒文件和进程将再次出现,而且出现时间还没有任何规律。  
        然后netstat -an查看网络状态,发现1433端口访问量非常大!1433是sqlserver的默认端口,难道有人在连接我的数据库(web服务用到收起来sql2000),同时还发现ftp.exe进程一直试图在访问网络,连接一个远程计算机的端口,好家伙!这明显是个坏消息!看来我的机器是被人监控了!这点可以从ftp.exe进程访问网络的时间没有规律看出来,有时很快就被打开调用,有时则很长时间才又会出现,应该是被别人手动的执行控制的,想了想最近服务器所做过的改动,查阅了下资料,看来问题是出在sqlserver 上了,经排查,果然不出所料,问题出在SQL的存储过程xp_cmdshell上!
        据资料介绍,xp_cmdshell 是操作系统命令外壳 ,这个过程是一个扩展存储过程,用于执行指定命令串,并作为文本行返回任何输出。一般来说,xp_cmdshell很容易被黑客利用,带来不安全的隐患,而且xp_cmdshell对管理员来说也是不要,xp_cmdshell的消除不会对服务器造成任何影响。来吧,让我们清除它吧! 
  


可以将xp_cmdshell消除: 
xp_cmdshell的删除和恢复 
 删除扩展存储过过程xp_cmdshell的语句::
           Use Master
           exec sp_dropextendedproc 'xp_cmdshell'
           Go 

恢复cmdshell的SQL语句: 
           EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'

 

然后再运行以下命令就可以去掉用户sa的xp_cmdshell权限:  
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[xp_cmdshell]') and OBJECTPROPERTY(id,N'IsExtendedProc'=1) exec sp_dropextendedproc N'[dbo].[xp_cmdshell]' 
GO

 

posted on 2007-10-19 15:00 WilliamChung 阅读(2789) 评论(8)  编辑 收藏 引用 所属分类: 网络安全

Feedback

# re: 关于SQL的安全问题(ftp.exe、cmd.exe的解决方法) 2007-10-19 19:34 网络CIO
好文啊!最近我的服务器也出现了这样的问题,看了你的文章,恍然大悟,现在问题已经解决,太谢谢啦  回复  更多评论
  

# re: 关于SQL的安全问题(ftp.exe、cmd.exe的解决方法) 2007-10-22 01:18 明迦
不用谢,这问题我也郁闷了好些日子,能帮到你就好:)  回复  更多评论
  

# re: 关于SQL的安全问题(ftp.exe、cmd.exe的解决方法) 2007-10-22 22:16 菜鸟
这行
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[xp_cmdshell]') and OBJECTPROPERTY(id,N'IsExtendedProc'=1) exec sp_dropextendedproc N'[dbo].[xp_cmdshell]'
GO
怎么提示


服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '=' 附近有语法错误。
  回复  更多评论
  

# re: 关于SQL的安全问题(ftp.exe、cmd.exe的解决方法) 2007-10-23 18:37 明迦
我刚刚又测试了一下,发现

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[xp_cmdshell]') and OBJECTPROPERTY(id,N'IsExtendedProc'=1) exec sp_dropextendedproc N'[dbo].[xp_cmdshell]'
GO

这段代码在2000server系统下的SQL2000是没有问题的,执行成功!

但是在xp系统下SQL2000执行的确会报这个语法错误,错误出在

OBJECTPROPERTY(id,N'IsExtendedProc'=1)这段代码里,但是不知具体原因是什么:(
  回复  更多评论
  

# re: 关于SQL的安全问题(ftp.exe、cmd.exe的解决方法) 2008-01-25 10:09 majun
exec sp_dropextendedproc N'[dbo].[xp_cmdshell]'

只要执行这句就行  回复  更多评论
  

# re: 关于SQL的安全问题(ftp.exe、cmd.exe的解决方法) 2010-11-23 09:55 jasonji
学习!  回复  更多评论
  

# re: 关于SQL的安全问题(ftp.exe、cmd.exe的解决方法) 2011-06-23 18:08 我晕
之前被入侵过,现在想按上面的方法试试,结果:
ODBC: 消息 0,级别 16,状态 1
无法装载 DLL Low-key~~~,低调就是最牛逼的炫耀,BY:Hack--JM QQ:569937501 或该 DLL 所引用的某一 DLL。原因: 126(找不到指定的模块。)。

我擦了,现在的黑客真是烦死人了,老娘现在没时间,否则一定要弄死他。  回复  更多评论
  

# re: 关于SQL的安全问题(ftp.exe、cmd.exe的解决方法) 2012-10-23 15:21 QQ972003093骗子,垃圾
无法装载 DLL 购买联系QQ:972003093 或该 DLL 所引用的某一 DLL。原因: 126(找不到指定的模块。)。

看来是被QQ:972003093这个垃圾入侵了。
请问博主,这个怎么解决呢?  回复  更多评论
  

只有注册用户登录后才能发表评论。