<div class="codebody" id="code20109"> use master go --检查xp_cmdshell是否被篡改 select from master..syscomments where object_name(id)='xp_cmdshell' and text<>'xplog70.dll' go --检查其他存储过程是否被篡改 select object_name(id), from master..syscomments where object_name(id) in ('xp_getfiledetails','xp_availablemedia','xp_dirtree','xp_fixeddrives','xp_s ubdirs', 'xp_fileexist','xp_get_tape_devices','sp_MSgetversion','xp_enumdsn','xp_regr ead','xp_regwrite','xp_regdeletevalue', 'xp_regaddmultistring','xp_regremovemultistring','xp_regenumkeys','xp_regenu mvalues','xp_regdeletekey','xp_instance_regread', 'xp_instance_regwrite','xp_instance_regdeletevalue','xp_instance_regaddmulti string','xp_instance_regremovemultistring', 'xp_instance_regenumkeys','xp_instance_regenumvalues') and text <>N'xpstar.dll' go --发现xp_cmdshell被篡改,执行下面语句改回来 --drop procedure xp_cmdshell --go --exec sp_addextendedproc N'xp_cmdshell',N'xplog70.dll' --go --然后执行下面语句验证xp_cmdshell是否正确 --xp_cmdshell 'dir c:/' --如果该语句异常,还有可能sql server服务的启用账户(一般情况下是system)没有访问system32/cmd.exe文件的权限,加上权限即可 --发现其他存储过程被篡改,执行下面语句 --drop procedure 存储过程名称 --go --exec sp_addextendedproc N'存储过程名称',N'xpstar.dll'