离线破解Navicat密码

目录

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

用法作者也已经给出了

可以看到已经成功解密出数据库的密码了,至于之后的提权等内容之后再慢慢说。

推荐阅读

  1. php-fpm在nginx特定环境下的任意代码执行漏洞(CVE-2019-11043)
  2. SQL server手工注入入门
  3. Linux权限详解
  4. Linux文件查找命令详解
  5. Linux重定向及反弹shell详解

如果对你有帮助,请点击在看或者转发

都是对我的一种支持