目錄
0x01 介紹
0x02 提取密碼
0x03 離線破解
注:文中使用的是Navicat Premium 12.x,Navicat 11.x與12.x的加密方式有一些不同,實際上按照11.x的方式解密就可以了
0x01 介紹
Navicat是一套快速、可靠並價格相當便宜的數據庫管理工具,專為簡化數據庫的管理及降低系統管理成本而設。它的設計符合數據庫管理員、開發人員及中小企業的需要。Navicat 是以直覺化的圖形用戶界面而建的,讓你可以以安全並且簡單的方式創建、組織、訪問並共用信息。
balabala,反正是挺常用的一個數據庫連接工具了,如果在實際環境中碰到了,那將是一大幸事,里面肯定會保存着很多服務器數據庫的連接密碼,這個時候如何將其提取出來就是一個至關重要的事情了
0x02 提取密碼
首先需要明確一下,Navicat針對不同的數據庫,它所存放的地點是不一樣的
MySQL HKEY_CURRENT_USER\Software\PremiumSoft\Navicat\Servers\
MariaDB HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMARIADB\Servers\
MicrosoftSQL HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMSSQL\Servers\
Oracle HKEY_CURRENT_USER\Software\PremiumSoft\NavicatOra\Servers\
PostgreSQL HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPG\Servers\
SQLite HKEY_CURRENT_USER\Software\PremiumSoft\NavicatSQLite\Servers\
這里還是拿MySQL進行舉例吧
我們先在注冊表中訪問一下
既然是在注冊表中,我們直接導出其內容就可以了
IP reg query HKEY_CURRENT_USER\SOFTWARE\PremiumSoft\Navicat\Servers /s /v host
用戶名 reg query HKEY_CURRENT_USER\SOFTWARE\PremiumSoft\Navicat\Servers /s /v UserName
密碼 reg query HKEY_CURRENT_USER\SOFTWARE\PremiumSoft\Navicat\Servers /s /v pwd
同理也可以提取其他數據庫的IP、賬號和密碼hash
當拿到這些內容的時候,我們接下來就是進行離線破解
0x03 離線破解
至於如何逆向navicat保存密碼的加密算法,作者已經寫的很清楚了,有興趣的可以自己去看看
https://github.com/DoubleLabyrinth/how-does-navicat-encrypt-password
我們直接拿來使用就行了,我們使用其中的python3腳本
首先先安裝依賴pycryptodome
用法作者也已經給出了
可以看到已經成功解密出數據庫的密碼了,至於之后的提權等內容之后再慢慢說。
文章首發公眾號:無心的夢囈(wuxinmengyi)
這是一個記錄紅隊學習、信安筆記,個人成長的公眾號
掃碼關注即可