利用Nmap對(duì)MS-SQLSERVER進(jìn)行滲透
如今Nmap的腳本引擎從一個(gè)普通的端口掃描器轉(zhuǎn)變?yōu)榫哂泄粜缘臐B透測(cè)試工具。隨著nmap各種腳本的存在。到目前為止,我們甚至可以進(jìn)行完整的SQL數(shù)據(jù)庫(kù)滲透而不需要任何其他的工具。
在本教程中,我們將看到在這些腳本中有些什么樣的信息,以及如何通過(guò)Nmap從數(shù)據(jù)庫(kù)中提取,還可以利用SQLServer來(lái)執(zhí)行系統(tǒng)命令。
默認(rèn)MS-SQL數(shù)據(jù)庫(kù)上運(yùn)行的端口為1433,為了及時(shí)發(fā)現(xiàn)有關(guān)數(shù)據(jù)庫(kù),我們需要執(zhí)行以下腳本:
(獲取SQL信息)
已經(jīng)獲取了數(shù)據(jù)庫(kù)的版本和實(shí)例的信息。下一步檢查是否有弱口令和數(shù)據(jù)庫(kù)身份驗(yàn)證,需要運(yùn)行以下nmap的腳本,它會(huì)執(zhí)行暴力破解。
(nmap暴力破解MS-SQL賬戶)
可以看到,沒(méi)有發(fā)現(xiàn)任何數(shù)據(jù)。在這種情況下可以利用這個(gè)腳本來(lái)使用我們自己的用戶名和密碼字典,以便及時(shí)發(fā)現(xiàn)有效的數(shù)據(jù)庫(kù)帳戶。使用這個(gè)命令:
nmap -p1433 –script ms-sql-brute –script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt
還可以嘗試另一種腳本,來(lái)檢查Microsoft SQLServers是否存在空密碼。
(檢查SA賬戶是否為空密碼)
現(xiàn)在我們知道sa帳戶沒(méi)有密碼。我們可以使用這個(gè)信息來(lái)連接數(shù)據(jù)庫(kù)直接執(zhí)行腳本,需要進(jìn)一步Nmap有效身份認(rèn)證。如果我們想知道在哪個(gè)數(shù)據(jù)庫(kù)sa帳戶訪問(wèn)或任何其他賬戶,可以運(yùn)行ms-sql-hasdbaccess腳本與下列參數(shù):
(查看某用戶訪問(wèn)了哪些DB)
通過(guò)Nmap查詢Microsoft SQL Server來(lái)獲取數(shù)據(jù)庫(kù)表。
SQL Server 2000 的xp_cmdshell 默認(rèn)情況下是啟用的,因此我們甚至可以執(zhí)行操作系統(tǒng)命令。通過(guò)Nmap腳本中可以看到下面的圖片:
(通過(guò)xp_cmdshell 來(lái)運(yùn)行OS命令)
(通過(guò)xp_cmdshell來(lái)運(yùn)行’net users’)
最后還可以運(yùn)行一個(gè)腳本來(lái)提取數(shù)據(jù)庫(kù),利用哈希值破解密碼。工具:john the ripper
因?yàn)橹挥幸粋€(gè)空口令的sa數(shù)據(jù)庫(kù)帳戶,所以沒(méi)有任何的哈希值。