存在Microsoft SQL Server SA弱口令漏洞的計(jì)算機(jī)一直是網(wǎng)絡(luò)攻擊者青睞的對象之一,通過這個(gè)漏洞,可以輕易的得到服務(wù)器的管理權(quán)限,從而威脅網(wǎng)絡(luò)及數(shù)據(jù)的安全。作為網(wǎng)絡(luò)管理員,我們可不能不聞不問,一定要弄清楚這其中的起因、經(jīng)過和結(jié)果,才能有的放矢,做到更為有效的防范,下面我就詳細(xì)的向大家介紹一下。
Microsoft SQLServer是一個(gè)c/s模式的強(qiáng)大的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),應(yīng)用領(lǐng)域十分廣泛,從網(wǎng)站后臺數(shù)據(jù)庫到一些MIS(管理信息系統(tǒng))到處都可以看到它的身影。網(wǎng)絡(luò)中利用Microsoft SQLServer SA弱口令入侵的核心內(nèi)容就是利用Microsoft SQLServer中的存儲過程獲得系統(tǒng)管理員權(quán)限,那到底什么是存儲過程?
存儲過程是存儲在SQLServer中的預(yù)先寫好的SQL語句集合,其中危險(xiǎn)性最高的擴(kuò)展存儲過程就是xp_cmdshell了,它可以執(zhí)行操作系統(tǒng)的任何指令,而SA是Microsoft SQLServer的管理員帳號,擁有最高權(quán)限,它可以執(zhí)行擴(kuò)展存儲過程,并獲得返回值,比如執(zhí)行:exec master..xp_cmdshell 'net user test 1234 /add'和exec master..xp_cmdshell 'net localgroup administrators test /add'這樣對方的系統(tǒng)就被添加了一個(gè)用戶名為test,密碼為1234,有管理員權(quán)限的用戶,如圖一所示。
圖一(點(diǎn)擊看原圖)
現(xiàn)在你應(yīng)該明白為什么得到SA密碼,就可以得到系統(tǒng)的最高權(quán)限了吧。而往往不少網(wǎng)絡(luò)管理員不清楚這個(gè)情況,為自己的SA用戶起了一些諸如1234,4321等簡單的密碼,甚至根本就不設(shè)置密碼,這樣網(wǎng)絡(luò)入侵者就可以利用一些黑客工具很輕松的掃描到SA的密碼,進(jìn)而控制計(jì)算機(jī)。
除了xp_cmdshell,還有一些存儲過程也有可能會被入侵者利用到:
1、xp_regread(這個(gè)擴(kuò)展存儲過程可以讀取注冊表指定的鍵里指定的值),使用方法(得到機(jī)器名):
|
2、xp_regwrite(這個(gè)擴(kuò)展存儲過程可以寫入注冊表指定的鍵里指定的值),使用方法(在鍵HKEY_LOCAL_MACHINESOFTWAREaaaaaaValue寫入bbb):
|
如果被入侵的計(jì)算機(jī)的administrator用戶可以瀏覽注冊表中的HKEY_LOCAL_MACHINESAMSAM信息,那使用xp_regread、xp_regwrite這兩個(gè)存儲過程可以實(shí)現(xiàn)克隆administrator用戶,得到管理員權(quán)限。xp_regdeletekey、xp_regdeletevalue也會對系統(tǒng)帶來安全隱患。
3、OLE相關(guān)的一系列存儲過程,這系列的存儲過程有sp_OACreate,sp_OADestroy,sp_OAGetErrorInfo,sp_OAGetProperty,sp_OAMethod,sp_OASetProperty,sp_OAStop,使用方法:
|
這樣對方系統(tǒng)增加了一個(gè)用戶名為test,密碼為1234的用戶,再執(zhí)行:
|
用戶test,被加入管理員組。
解決辦法:給SA起個(gè)足夠復(fù)雜的密碼,使網(wǎng)絡(luò)攻擊者很難破解出來。為了保險(xiǎn),我們還要到在SQLServer的查詢分析器中使用存儲過程sp_dropextendedproc刪除xp_cmdshell等存儲過程,需要時(shí)再使用sp_addextendedproc恢復(fù)即可,具體操作可以在SQLServer中查詢sp_dropextendedproc和sp_addextendedproc的使用幫助,需要注意一點(diǎn)的是刪除OLE相關(guān)系列的存儲過程,可能會造成企業(yè)管理器中的某些功能無法使用,這里筆者不建議刪除。
既然我們知道了SP_OACREATE的使用方法,那我們就可以到WINNTsystem32下找到cmd.exe,net.exe和net1.exe這三個(gè)文件,在“屬性”—“安全”中把可以對他們訪問的用戶全部刪除掉,這樣就無法使用SP_OACREATE來增加系統(tǒng)用戶了,在我們需要訪問這些文件的時(shí)候再加上訪問用戶就可以了。