昨天去上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
隨機好文: