做好MSSQL保卫战之xp_cmdshell

        最近我的机器很奇怪,总是莫名其妙的多了几个进程,并且卡巴疯狂的报告病毒。经我多次实验发现有几个进程是固定的ftp.exe cmd.exe这二个进程卡巴不杀(因为它是系统程序,是被“别人”调用的,至于是什么呆会再说)这二个进程会不定时的从网上下载病毒并执行,这也是卡巴疯狂报病毒并杀不尽的原因。查看网络状态发现1433端口访问量非常大!大家都知道1433是MSSQL的默认端口,难道有人在连接我的数据库?看来我的机器是被人监控了!这点可以从ftp.exe 进程访问网络的时间没有规律看出来,有时很快就被打开调用,有时则很长时间才又会出现,应该是被别人手动的执行控制的连接一个远程计算机端口;
        看来这病毒是跟SQL有关了.MSSQL也如WINDOWS一样东西好用人性化,但就是不安全。在具体清除这个病毒前我们先来了解一下MSSQL都能为入侵者带来跟些便利。
        xp_cmdshell用过MSSQL的朋友都知道它是操作系统命令外壳,这个过程是一个扩展存储过程,用于执行指定命令串,并作为文本行返回任何输出。通过它执行的命令字符串实际上是调用了cmd.exe来委托执行,这就解释了为什么总有二个进程是固定的(ftp.exe是被cmd.exe调用的用来与远程计算机通信),cmd.exe在入侵者手里可是个好东西,什么添加用户呀,删除文件呀甚至修改注册表都不在话下!可见它有多么可怕了吧。不过也不用害怕,也不是随便一个人都可以调用xp_cmdshell这个存储过程的,须要有一定的权限;在MSSQL中一共有8中权限分别是 sysadmin dbcreator diskadmin processadmin serveradmin setupadmin securityadmin bulkadmin 这8种 每一个都具有不同的权限,一般来说入侵者都是拿的sysadmin权限因为它最高。而SA用户正好有这个权限,很多从为了方便就把SA用户的密码设为空或者和用户名一样(我就是)从而给入侵者带来了可乖之机;下面来说说解救之法。

首先我们要删除存储过程(其实它的用处并不大,反而会带来安全隐患)
use master
exec sp_dropextendedproc 'xp_cmdshell'
go

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

这样就万无一失了,有些入侵者还会在你机器里留下后门,所以还要检查一下WINDOWS用户是否正常,因为通过net user命令可以添加一个用户,用卡巴杀掉其它病毒,重启,至此病毒就被清除了。

原文地址:https://www.cnblogs.com/mondol/p/1004922.html