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