离线破解Navicat密码
- 2020 年 3 月 8 日
- 筆記
目录
0x01 介绍
0x02 提取密码
0x03 离线破解
注:文中使用的是Navicat Premium 12.x,Navicat 11.x与12.x的加密方式有一些不同,实际上按照11.x的方式解密就可以了
0x01 介绍
Navicat是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。
balabala,反正是挺常用的一个数据库连接工具了,如果在实际环境中碰到了,那将是一大幸事,里面肯定会保存着很多服务器数据库的连接密码,这个时候如何将其提取出来就是一个至关重要的事情了
0x02 提取密码
首先需要明确一下,Navicat针对不同的数据库,它所存放的地点是不一样的
MySQL HKEY_CURRENT_USERSoftwarePremiumSoftNavicatServers MariaDB HKEY_CURRENT_USERSoftwarePremiumSoftNavicatMARIADBServers MicrosoftSQL HKEY_CURRENT_USERSoftwarePremiumSoftNavicatMSSQLServers Oracle HKEY_CURRENT_USERSoftwarePremiumSoftNavicatOraServers PostgreSQL HKEY_CURRENT_USERSoftwarePremiumSoftNavicatPGServers SQLite HKEY_CURRENT_USERSoftwarePremiumSoftNavicatSQLiteServers
这里还是拿MySQL进行举例吧
我们先在注册表中访问一下

既然是在注册表中,我们直接导出其内容就可以了
IP reg query HKEY_CURRENT_USERSOFTWAREPremiumSoftNavicatServers /s /v host用户名 reg query HKEY_CURRENT_USERSOFTWAREPremiumSoftNavicatServers /s /v UserName密码 reg query HKEY_CURRENT_USERSOFTWAREPremiumSoftNavicatServers /s /v pwd

同理也可以提取其他数据库的IP、账号和密码hash
当拿到这些内容的时候,我们接下来就是进行离线破解
0x03 离线破解
至于如何逆向navicat保存密码的加密算法,作者已经写的很清楚了,有兴趣的可以自己去看看
https://github.com/DoubleLabyrinth/how-does-navicat-encrypt-password
我们直接拿来使用就行了,我们使用其中的python3脚本
首先先安装依赖pycryptodome
用法作者也已经给出了


可以看到已经成功解密出数据库的密码了,至于之后的提权等内容之后再慢慢说。
推荐阅读
- php-fpm在nginx特定环境下的任意代码执行漏洞(CVE-2019-11043)
- SQL server手工注入入门
- Linux权限详解
- Linux文件查找命令详解
- Linux重定向及反弹shell详解
如果对你有帮助,请点击在看或者转发
都是对我的一种支持