• Stars
    star
    589
  • Rank 75,909 (Top 2 %)
  • Language
    C
  • License
    MIT License
  • Created over 7 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

How Does Navicat Encrypt Password?

This repo will tell you how Navicat encrypts password and offer a tool to reveal passwords encrypted by Navicat.

1. What is Navicat?

Navicat is a series of graphical database management and development software produced by PremiumSoft CyberTech Ltd. for MySQL, MariaDB, Oracle, SQLite, PostgreSQL and Microsoft SQL Server.

It has an Explorer-like graphical user interface and supports multiple database connections for local and remote databases. Its design is made to meet the needs of a variety of audiences, from database administrators and programmers to various businesses/companies that serve clients and share information with partners.

2. What does indicate that Navicat encrypts password?

If you use Navicat to manage one of your databases, the first thing you should do is to create a connection to the database. So that means you should fill textboxes on the window showed below with the database's information like Host name, User name, Password and so on.

If you check "Save Password", after you click "Ok" button, Navicat will encrypt the password and then save the connection configuration, containing encrypted password, in Windows Registry. The exact path is showed below:

Database Type Path
MySQL HKEY_CURRENT_USER\Software\PremiumSoft\Navicat\Servers\<your connection name>
MariaDB HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMARIADB\Servers\<your connection name>
MongoDB HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMONGODB\Servers\<your connection name>
Microsoft SQL HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMSSQL\Servers\<your connection name>
Oracle HKEY_CURRENT_USER\Software\PremiumSoft\NavicatOra\Servers\<your connection name>
PostgreSQL HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPG\Servers\<your connection name>
SQLite HKEY_CURRENT_USER\Software\PremiumSoft\NavicatSQLite\Servers\<your connection name>

The following is an example:

3. How does Navicat encrypt password?

See here.

4. How to use the sample code in python3 folder?

  • Please make sure that you have Python3.

  • Please make sure that you have pycryptodome module if you want to use NavicatCipher.py and NcxReader.py.

    You can install pycryptodome module by command:

    $ pip install pycryptodome
  • Please make sure that you have pypiwin32 module if you want to use ShowNavicat.py.

    You can install pypiwin32 module by command:

    $ pip install pypiwin32
  1. NavicatCipher.py

    Usage:
        NavicatCrypto.py <enc|dec> [-ncx] <plaintext|ciphertext>
    
        <enc|dec>                "enc" for encryption, "dec" for decryption.
                                 This parameter must be specified.
    
        [-ncx]                   Indicate that plaintext/ciphertext is
                                 prepared for/exported from NCX file.
                                 This parameter is optional.
    
        <plaintext|ciphertext>   Plaintext string or ciphertext string.
                                 NOTICE: Ciphertext string must be a hex string.
                                 This parameter must be specified.
    

    Example:

    $ ./NavicatCipher.py enc "This is a test"
    0EA71F51DD37BFB60CCBA219BE3A
    
    $ ./NavicatCipher.py dec 0EA71F51DD37BFB60CCBA219BE3A
    This is a test
    
    $ ./NavicatCipher.py enc -ncx "This is a test"
    B75D320B6211468D63EB3B67C9E85933
    
    $ ./NavicatCipher.py dec -ncx B75D320B6211468D63EB3B67C9E85933
    This is a test
    
    $ python3
    Python 3.6.7 (default, Oct 22 2018, 11:32:17)
    [GCC 8.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from NavicatCipher import *
    >>> cipher = Navicat12Crypto()
    >>> cipher.EncryptString('This is a test')
    '0EA71F51DD37BFB60CCBA219BE3A'
    
    >>> cipher.DecryptString('0EA71F51DD37BFB60CCBA219BE3A')
    'This is a test'
    
    >>> cipher.EncryptStringForNCX('This is a test')
    'B75D320B6211468D63EB3B67C9E85933'
    
    >>> cipher.DecryptStringForNCX('B75D320B6211468D63EB3B67C9E85933')
    'This is a test'
  2. NcxReader.py

    Show database servers' information inside *.ncx file.

    Usage:
        NcxReader.py <Path to ncx file>
    

    Example:

    $ ./NcxReader ~/connectioms.ncx
    -----------------xxxxxxxxxxxx--------------------
    Connection Type  = MYSQL
    Host             = localhost
    Port             = 3306
    UserName         = root
    Password         = 12345678
    
    ------------------yyyyyyyyyy---------------------
    Connection Type  = MYSQL
    Host             = example.com
    Port             = 3306
    UserName         = server
    Password         = 0000000000
    
    ...
    ...
    ...
  3. ShowNavicat.py

    Just run it in Windows. It will list all Navicat configurations inside Windows Registry.

    Example:

    >ShowNavicat.py
    +--------------------------------------------------+
    |                   MySQL Server                   |
    +--------------------------------------------------+
    
    Host:              example.com
    Port:              3306
    Username:          server
    Password:          0000000000
    
    ...
    ...
    
    +--------------------------------------------------+
    |                  MariaDB Server                  |
    +--------------------------------------------------+
    
    ...
    ...
    
    +--------------------------------------------------+
    |                  MongoDB Server                  |
    +--------------------------------------------------+
    
    ...
    ...
    
    ...
    ...

More Repositories

1

Windows10-CustomKernelSigners

Load self-signed drivers without TestSigning or disable DSE. Transferred from https://github.com/DoubleLabyrinth/Windows10-CustomKernelSigners
C++
659
star
2

forensic-qqtoken

QQๅฎ‰ๅ…จไธญๅฟƒ - ๅŠจๆ€ๅฃไปค็š„็”Ÿๆˆ็ฎ—ๆณ•
Python
333
star
3

how-does-MobaXterm-encrypt-password

This repo offers a tool to reveal password encrypted by MobaXterm.
Python
288
star
4

how-does-Xmanager-encrypt-password

This is a repo to tell you how Xmanager (XFtp, XShell) encrypt password. Transferred from https://github.com/DoubleLabyrinth/how-does-Xmanager-encrypt-password
Python
273
star
5

how-does-SecureCRT-encrypt-password

Transferred from https://github.com/DoubleLabyrinth/how-does-SecureCRT-encrypt-password
Python
267
star
6

SdoKeyCrypt-sys-local-privilege-elevation

CVE-2019-9729. Transferred from https://github.com/DoubleLabyrinth/SdoKeyCrypt-sys-local-privilege-elevation
C++
83
star
7

siren-hypervisor

C++
36
star
8

WindowsSudo

A linux-like su/sudo on Windows. Transferred from https://github.com/DoubleLabyrinth/WindowsSudo.
C
35
star
9

pwnable.tw

Write-ups about challenges in https://pwnable.tw. Transferred from https://github.com/DoubleLabyrinth/pwnable.tw
Python
24
star
10

mingw-w64-build

Scripts to build MinGW-w64 toolchain.
Shell
16
star
11

ZZMS

Source code for ZZMS. Transferred from https://github.com/DoubleLabyrinth/ZZMS
Java
15
star
12

ida-rpyc

An IDA plugin that allows you call IDA python APIs from remote.
Python
11
star
13

SecurityDescriptorHelper

Transferred from https://github.com/DoubleLabyrinth/SecurityDescriptorHelper
C++
10
star
14

how-does-RoyalTS-encrypt-password

This repo offers a tool to reveal password encrypted by Royal TS.
Python
10
star
15

accel-crypto

My personal cryptography library. Transferred from https://github.com/DoubleLabyrinth/accel-crypto
C++
9
star
16

ida-skin-default-hd

CSS
6
star
17

cmdchallenge.com

Solutions for challenges in https://cmdchallenge.com. Transferred from https://github.com/DoubleLabyrinth/cmdchallenge.com
3
star
18

my-certificate

This repo contains my GPG public key.
3
star
19

github-actions-builds

3
star
20

vmgs-utils

A python package that helps you edit Hyper-V's VMGS file.
C++
2
star
21

vpn-setup

2
star
22

pyllvm

A Python binding for LLVM.
C++
2
star
23

jbigkit-py

A Python binding library to jbigkit.
C++
1
star
24

ollvm-deobfuscate-preview

A preview of aarch64 ollvm deobfuscate. DO NOT START OR FORK THIS REPO!
1
star
25

lift-lockdown

C
1
star
26

scdemu-sys-local-privilege-elevation

Python
1
star