# Graphcat | Generate Graphs And Charts Based On Password Cracking Result

**URL:** <https://onehack.st/t/graphcat-generate-graphs-and-charts-based-on-password-cracking-result/242853>\
**Category:** Tools & Scripts\
**Tags:** tools, cracking, freebies\
**Created:** [June 4, 2023, 8:48pm UTC](https://onehack.st/t/graphcat-generate-graphs-and-charts-based-on-password-cracking-result/242853 "2023-06-04T20:48:29Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Astrid](https://onehack.st/user_avatar/onehack.st/astrid/32/174869_2.png) [@Astrid](https://onehack.st/u/Astrid)\
**Post date:** [June 4, 2023, 8:48pm UTC](https://onehack.st/t/graphcat-generate-graphs-and-charts-based-on-password-cracking-result/242853/1 "2023-06-04T20:48:29Z")

</div>

![image](https://onehack.st/uploads/default/original/3X/3/a/3a15d36f3a579aa0b52852843f17fb084e918a51.png)

# Graphcat.py

Simple script to generate graphs and charts on hashcat (and john) potfile and ntds.

## Table of Content

- [graphcat.py](https://github.com/Orange-Cyberdefense/graphcat#graphcatpy)
  - [Table of Content](https://github.com/Orange-Cyberdefense/graphcat#table-of-content)
  - [Install](https://github.com/Orange-Cyberdefense/graphcat#install)
  - [Helper](https://github.com/Orange-Cyberdefense/graphcat#helper)
  - [Usage](https://github.com/Orange-Cyberdefense/graphcat#usage)
  - [Format](https://github.com/Orange-Cyberdefense/graphcat#formats)
  - [Charts example](https://github.com/Orange-Cyberdefense/graphcat#charts-example)

## Install

```auto
git clone https://github.com/Orange-Cyberdefense/graphcat
cd graphcat
pip install .

```

## Helper

```auto
$ graphcat.py -h
usage: graphcat.py [-h] -potfile hashcat.potfile -hashfile hashfile.txt [-john] [-format FORMAT] [-export-charts] [-output-dir OUTPUT_DIR] [-debug]

Password Cracking Graph Reporting

options:
  -h, --help show this help message and exit
  -potfile hashcat.potfile
                        Hashcat Potfile
  -hashfile hashfile.txt
                        File containing hashes (one per line)
  -john John potfile
  -format FORMAT hashfile format (default 3): 1 for hash; 2 for username:hash; 3 for secretsdump (username:uid:lm:ntlm)
  -export-charts Output also charts in png
  -output-dir OUTPUT_DIR
                        Output directory
  -debug Turn DEBUG output ON

```

## Usage

Graphcat just need a potfile with `-potfile` (default is hashcat, but you can use `-john` to submit a john potfile) and a hashfile with `-hashfile`. The hashfile should be in a specific format from the [3 availables formats](https://github.com/Orange-Cyberdefense/graphcat#formats) with `-format` flag. Default is **Secretsdump**.

The tool will generate a report with multiple password cracking charts. You can get charts in png with the `-export-charts` flag.

```auto
$ graphcat.py -hashfile entreprise.local.ntds -potfile hashcat.pot
[-] Parsing potfile
[-] 164 entries in potfile
[-] Parsing hashfile
[-] 1600 entries in hashfile
[-] Generating graphs...
[-] Generating report...
[-] Report available at graphcat_1672941324.pdf

```

### Formats

1: Only Hash

```auto
aad3b435b51404eeaad3b435b51404ee
aad3b435b51404eeaad3b435b51404ee
aad3b435b51404eeaad3b435b51404ee

```

2: Username + Hash

```auto
test1:aad3b435b51404eeaad3b435b51404ee
test2:aad3b435b51404eeaad3b435b51404ee
test3:aad3b435b51404eeaad3b435b51404ee

```

3: Secretsdump

```auto
waza.local\test1:4268:aad3b435b51404eeaad3b435b51404ee:aad3b435b51404eeaad3b435b51404ee:::
waza.local\test2:4269:aad3b435b51404eeaad3b435b51404ee:aad3b435b51404eeaad3b435b51404ee:::
waza.local\test3:4270:aad3b435b51404eeaad3b435b51404ee:aad3b435b51404eeaad3b435b51404ee:::

```

If a hash occurs more than once in the hash file, it will be counted that many times.

Moreover, if you submit secretsdump with password history (`-history` in secretsdump command), it will analyze similarity in password history

## Charts example

[![](https://github.com/Orange-Cyberdefense/graphcat/raw/main/assets/cracked.png "Cracked")](https://github.com/Orange-Cyberdefense/graphcat/blob/main/assets/cracked.png)

[![](https://github.com/Orange-Cyberdefense/graphcat/raw/main/assets/format.png "Format repartition")](https://github.com/Orange-Cyberdefense/graphcat/blob/main/assets/format.png)

[![](https://github.com/Orange-Cyberdefense/graphcat/raw/main/assets/length.png "Length repartition")](https://github.com/Orange-Cyberdefense/graphcat/blob/main/assets/length.png)

[![](https://github.com/Orange-Cyberdefense/graphcat/raw/main/assets/most.png "Top10 most cracked")](https://github.com/Orange-Cyberdefense/graphcat/blob/main/assets/most.png)

[![](https://github.com/Orange-Cyberdefense/graphcat/raw/main/assets/basewords.png "Top10 basewords")](https://github.com/Orange-Cyberdefense/graphcat/blob/main/assets/basewords.png)

[![](https://github.com/Orange-Cyberdefense/graphcat/raw/main/assets/history.png "Similarity in password history")](https://github.com/Orange-Cyberdefense/graphcat/blob/main/assets/history.png)

## GitHub:

> **[GitHub - Orange-Cyberdefense/graphcat: Generate graphs and charts based on password...](https://github.com/Orange-Cyberdefense/graphcat)**
>
> Generate graphs and charts based on password cracking result
