「效率源技術實戰」如何對有訪問密碼的MySQL資料庫進行取證?

「效率源技術實戰」如何對有訪問密碼的MySQL數據庫進行取證?

數據庫取證

眾所周知,數據庫是信息系統中不可或缺的部分,隨著大數據時代的到來,數據庫已經成為犯罪分子的目標,大量數據庫被用於存放網絡盜竊和網絡詐騙中產生的數據;將數據庫的數據提取出來,成為了打擊犯罪的重要手段之一。

MySQL數據庫

MySQL是一種開放源代碼的關係型數據庫管理系統。從目前的數據庫市場佔有率來看,Oracle、MySQL、SQL Server三大數據庫產品遙遙領先,呈三足鼎立局面。而隨著互聯網行業的快速發展,MySQL因其開源免費易用等優勢,市場佔有率不斷攀升,成為互聯網公司最受歡迎的數據庫。而在不少的犯罪案件中我們也常常看到MySQL數據庫的身影。

今天,小編就要跟大家分享的是一種MySQL數據庫數據提取的方法。

案例背景

某案件需要對已扣押的本地服務器中MySQL數據庫存進行取證,辦案人員急需獲取鏡像中MySQL數據庫的數據記錄,但是卻無法找到MySQL數據庫的登錄密碼。

需求:獲取鏡像中MySQL數據庫的記錄

難題:如何對有訪問密碼的MySQL數據庫進行取證?

檢材:服務器鏡像文件一份

案例思路分析

因為沒有數據庫登錄密碼,無法獲取數據庫數據。為了保證數據庫數據的完整性,並且能夠通過SQL語句方便快捷查詢到用戶所需的數據,我們需模擬出與嫌疑人相同的數據庫環境。針對上述案例,我們可以通過附加mysql數據庫並修改密碼的方法來獲取數據庫數據,具體操作思路和步驟如下:

◆提取案例服務器中數據庫文件;

◆將提取的數據庫文件附加到新的電腦;

◆附加完成後重置MySQL的密碼;

◆登錄MySQL查看導出數據庫記錄。

從上述案件中得知,已經獲取案件相關服務器鏡像,因此只需附加mysql數據庫並重置登錄密碼即可提取數據庫數據。下面將詳細講述這兩個步驟的具體操作方法。

具體操作步驟

附加MySQL數據庫

1)在目標電腦上安裝與嫌疑人使用的數據庫相同版本的數據庫,mysql安裝過程本文檔不詳細介紹,網上很多mysql的安裝教程;

2)MySQL安裝完畢後,斷開MySQL服務。‘C:\ProgramData\MySQL\MySQL Server 5.7\Data’文件夾為MySQL數據庫的數據目錄,將需要附加的數據庫數據文件複製拷貝到該文件夾中;

3)重新啟動MySQL,若能正常啟動,即附加成功。

PS:附加數據庫的注意事項

1)如何快速確定鏡像中MySQL的存放路徑?

mysql數據庫都具有ibdata1這個關鍵文件,可以通過檢索這個文件快速定位到mysql數據文件的存放路徑;

2)如何確定嫌疑人使用的MySQL數據庫具體版本號?

安裝在目標電腦上的MySQL版本號需要和鏡像中的MySQL數據庫版本相同, 確定mysql數據庫版本的方法:使用winhex打開任意一個提取到mysql數據庫中的.frm文件,如圖所示:

「效率源技術實戰」如何對有訪問密碼的MySQL數據庫進行取證?

3)重啟MySQL報錯怎麼解決?

在將數據文件複製完畢後,重啟數據庫時如若報錯,可在任務管理器中將mysqld.exe進程結束後把複製過來的日誌文件刪除或剪切到其他位置,再次啟動MySQL服務,此時MySQL服務可正常啟動,附加成功。如圖所示:

「效率源技術實戰」如何對有訪問密碼的MySQL數據庫進行取證?

2.重置MySQL數據庫登錄密碼

附加MySQL數據庫後,需要登錄密碼才能訪問數據庫數據,因為沒有登錄密碼,因此需要重置MySQL數據庫的登錄密碼到達訪問提取數據庫記錄數據的目的,具體步驟如下:

1)修改MySQL數據庫的C:\ProgramData\MySQL\MySQL Server 5.7中的my.ini配置文件,然後將修改好的my.ini複製到C:\Program Files\MySQL\MySQL Server 5.7中;如圖所示將配置文件中的basedir修改為MySQL數據庫應用程序所在路徑,datadir修改為MySQL數據庫數據文件存放路徑:

「效率源技術實戰」如何對有訪問密碼的MySQL數據庫進行取證?

2)在cmd命令行中切換至C:\Program Files\MySQL\MySQL Server 5.7\bin路徑,關閉mysql服務執行命令mysqld --skip-grant-tables,該命令的作用是跳過用戶驗證。注意在執行了該命令後此cmd命令行無法繼續操作了,需要重新打開一個cmd命令行切換到bin路徑下;

「效率源技術實戰」如何對有訪問密碼的MySQL數據庫進行取證?

3)在新打開的cmd命令行,直接輸入mysql,不需要帶任何登錄參數直接回車就可以登陸上數據庫;

「效率源技術實戰」如何對有訪問密碼的MySQL數據庫進行取證?

4)輸入show database;可以看到所有數據庫說明成功登錄;

「效率源技術實戰」如何對有訪問密碼的MySQL數據庫進行取證?

5)其中mysql庫就是保存用戶名的地方。輸入use mysql;選擇mysql數據庫;

「效率源技術實戰」如何對有訪問密碼的MySQL數據庫進行取證?

6)更改root密碼;MySQL版本高於5.7.1輸入update user set authentication_string=password("123456") where user="root";

「效率源技術實戰」如何對有訪問密碼的MySQL數據庫進行取證?

7)刷新數據庫mysql> flush privileges;之後退出MySQL: mysql>quit;此時MySQL密碼已經重置成功;

「效率源技術實戰」如何對有訪問密碼的MySQL數據庫進行取證?

PS:重置MySQL密碼的注意事項

1)針對‘重置MySQL步驟6’中更改root密碼,如若MySQL版本低於5.7,需輸入update user set password=password("123456") where user="root";

2)在重置密碼後重新啟動MySQL服務,若MySQL服務無法啟動;造成該錯誤的原因是日誌文件發生錯誤,採用之前同樣的解決方法:在任務管理中將mysqld.exe進程結束後把日誌文件刪除或者剪切到其他路徑。

「效率源技術實戰」如何對有訪問密碼的MySQL數據庫進行取證?

3.啟動MySQL服務

1)重置MySQL的登錄密碼,啟動MySQL服務,此時可以使用Navicat for MySQL管理器輸入賬號與修改後的密碼後即可連接到MySQL數據庫,訪問數據並提取相關記錄。

「效率源技術實戰」如何對有訪問密碼的MySQL數據庫進行取證?

2)打開數據表,查看數據。

「效率源技術實戰」如何對有訪問密碼的MySQL數據庫進行取證?

注意事項

在採用上述方法對MySQL數據庫進行取證時也要注意以下幾點:

1、確保從服務器中獲取到的數據庫的完整性,不然會導致附加失敗;

2、確保搭建環境附加數據庫的電腦具有足夠的空間,不然會因為空間不足導致附加失敗;

3、確保搭建環境中MySQL數據庫版本與服務器中的MySQL數據庫版本完全一致;

4、以上操作涉及到很多專業技能方面的,如有必要可找尋專業的公司協助完成。


分享到:


相關文章: