2011年3月25日

xp_cmdshell關閉開啟語法與已封鎖元件 'Ad Hoc Distributed Queries'

        昨天去上m$的dba課程有提到其中一個xp_cmd_shell,這個萬惡的sp已經是駭客最愛用的sp,很好用喔之前上課有老師直接demo可以在command mode,下執行任何程式....Orz ,後來m$乾脆SQL2005 以上 default 關掉,但是還是有人要用,幫大家紀錄在這邊,請大家要打開前注意安全建議不要開拉,最好打開xp_cmdshell當阿呆


以上

SQL Server 已封鎖元件 'Ad Hoc Distributed Queries' 

OpenRowset/OpenDatasource

訊息 15281,層級 16,狀態 1,行 4
SQL Server 已封鎖元件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 之存取,因為此元件已經由此伺服器的安全性組態關閉。系統管理員可以使用 sp_configure 來啟用 'Ad Hoc Distributed Queries' 的使用。如需有關啟用 'Ad Hoc Distributed Queries' 的詳細資訊,請參閱《SQL Server 線上叢書》中的<介面區組態>(Surface Area Configuration)。

解法:
 
--開啟OpenRowSet
EXEC sp_configure 'show advanced options',1
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries',1
RECONFIGURE;

--關閉OpenRowSet ( 最後的 1 改成 0 )
EXEC sp_configure 'show advanced options',1
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries',0
RECONFIGURE;

M$官方網站請參考
REF:http://msdn.microsoft.com/en-us/library/ms187569.aspx

xp_cmdshell錯誤訊息

訊息 15281,層級 16,狀態 1,程序 xp_cmdshell,行 1
SQL Server 已封鎖元件 'xp_cmdshell' 的 程序 'sys.xp_cmdshell' 之存取,因為此元件已經由此伺服器的安全性組態關閉。系統管理員可以使用 sp_configure 來啟用 'xp_cmdshell' 的使用。如需有關啟用 'xp_cmdshell' 的詳細資訊,請參閱《SQL Server 線上叢書》中的<介面區組態>(Surface Area Configuration)。



解法:

-- 開啟 xp_cmdshell
    EXEC sp_configure 'show advanced options', 1;
    RECONFIGURE;
    EXEC sp_configure 'xp_cmdshell', 1;
    RECONFIGURE;
   
-- 關閉 xp_cmdshell
    EXEC sp_configure 'show advanced options', 1;
    RECONFIGURE;
    EXEC sp_configure 'xp_cmdshell', 0;
    RECONFIGURE;
---------------我是SQL 2000分隔線---------------


將有安全考量問題的SQL SP 刪除安全是回家唯一的路
刪除了呼叫shell、regtree、COM+

PS.安全警語,服用請注意是否使用com+ 元件,以免無法使用

刪除xp_cmdshell:

Use Master
Exec sp_dropextendedproc N'xp_cmdshell'
Go

安裝xp_cmdsehll:

Use Master
EXEC sp_addextendedproc xp_cmdshell,'xplog70.dll'
Go


use master
EXEC sp_dropextendedproc 'xp_cmdshell'
EXEC sp_dropextendedproc 'Sp_OACreate'
EXEC sp_dropextendedproc 'Sp_OADestroy'
EXEC sp_dropextendedproc 'Sp_OAGetErrorInfo'
EXEC sp_dropextendedproc 'Sp_OAGetProperty'
EXEC sp_dropextendedproc 'Sp_OAMethod'
EXEC sp_dropextendedproc 'Sp_OASetProperty'
EXEC sp_dropextendedproc 'Sp_OAStop'
EXEC sp_dropextendedproc 'Xp_regaddmultistring'
EXEC sp_dropextendedproc 'Xp_regdeletekey'
EXEC sp_dropextendedproc 'Xp_regdeletevalue'
EXEC sp_dropextendedproc 'Xp_regenumvalues'
EXEC sp_dropextendedproc 'Xp_regread'
EXEC sp_dropextendedproc 'Xp_regremovemultistring'
EXEC sp_dropextendedproc 'Xp_regwrite'
drop procedure sp_makewebtask


隨機好文:
Powered by Stuff-a-Blog

沒有留言:

張貼留言