SQL Server資料庫超級管理員賬號防護知識

iSQlServer發表於2009-03-16
提到sa弱口令,我們首先就會想到,許多資料庫都有1個類似的超級管理員賬號,比如:Oracle是"system"和"sys",Sybase也是"sa",MySQL裡有"root"(不是UNIX系統賬號的那個root)。如果沒有設定相對應的密碼或者你設的密碼強度太低過於簡單,那麼入侵者就能直接登陸並攻擊資料庫伺服器,他們甚至可以獲得你作業系統的最高階別的許可權。說到這裡,有的人也許不相信,曾經有人和我說:"資料庫被攻破最多你的那些表啊什麼的被人家拿走,對方怎麼可能獲得作業系統最高許可權呢?"其實,我並不是在危言聳聽,下面我就假設某臺SQL Server 2000的資料庫的SA密碼被破解為例,來看看黑客在取得了資料庫許可權後如何進1步把自己變成系統的管理員。

目前,網路上有不少此類工具,可以方便那些不熟悉SQL的人用,其實完全不用去下載那種工具,只要用微軟自己的SQL Server裡自帶客戶端程式連上去就馬上可以輕鬆的把自己變成整個作業系統的超級管理員了。具體的過程,我就為大家講解1遍,這裡先假設黑客已經通過其他工具暴力破解了你設定的強度教低的sa帳號的弱口令,或者你根本就沒有為sa賬號設定口令。首先黑客開啟SQL Server查詢分析器,以sa身份和他剛暴力破解的密碼登陸進你的SQL Server資料庫,然後他執行以下語句:

xp_cmdshell "net user zxc nopassword /add" go xp_cmdshell "net localgroup /add administrators zxc" go

這時候,你如果開啟你的計算機管理-----本地使用者和組-----使用者,這時候你會發現裡面已經多出了1個叫zxc的新賬號,檢視一下此帳號的屬性,你更會發現他竟然隸屬於administrators組。

說到這裡大家肯定都明白了,對,黑客通過呼叫SQL Server的系統資料庫master裡的xp_cmdshell這個擴充套件儲存過程輕鬆的將他自己變成了你伺服器上的超級管理員,那麼以後他還有什麼事情會幹不了呢。

因此,如果大家在平時不需要呼叫此儲存過程的話,可以考慮將它刪除,當然不管你平時是不是要呼叫此儲存過程,你都應該為你的sa賬號設定1個十分健壯的密碼,這是最根本、最重要的,你可以開啟SQL Server的企業管理器,然後選擇安全性-----登陸,右擊sa賬號,選擇屬性,然後在屬性對話方塊裡修改您的sa帳號所對應的密碼,這裡我建議你要儘可能的設定的複雜些,可以用英文字母結合數字結合特殊符號等,這樣就可以防止黑客對此帳號的暴力破解,當然最好是在安裝您的SQL Server的時候就已經完成此項工作,以免日後因人為遺忘等原因帶來安全隱患。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-567497/,如需轉載,請註明出處,否則將追究法律責任。

相關文章