/HashtopoCLI

CLI interface for Hashtopolis API

Primary LanguagePythonMIT LicenseMIT

HashtopoCLI

CLite for Hashtopolis™

Getting Started

CLI tool for Hashtopolis incorporating some of the API functionality into a dynamic Python wrapper. Input is accepted via the -i flag and stdin and accepts strings and files. Output is neatly printed to the CLI in a minimalistic format.

Usage

Only a few API calls are implemented:

  • getHash → Search if a hash is found on the server.
  • getCracked → Retrieve all cracked hashes of a given hashlist or task.
  • exportLeft → Gets remaining hashes of a given hashlist.
  • listHashlists & getHashlist → Lists all the hashlists with information.
  • importSupertask → Create a supertask configuration with a given list of masks.
usage: hashtopocli.py [-h] [-i INPUT] [-q] [-l] [-c CRACKED] [-r REMAINING] [-t TASK] [-m MASKS]

CLite for Hashtopolis

options:
  -h, --help            show this help message and exit
  -i INPUT, --input INPUT
                        Input list of hashes or single hash
  -q, --quiet           Hides titles
  -l, --list            Lists available hashlists
  -c CRACKED, --cracked CRACKED
                        Gets cracks from a hashlistId
  -r REMAINING, --remaining REMAINING
                        Get remaining hashes from a hashlistId
  -t TASK, --task TASK  Gets cracks from a taskId
  -m MASKS, --masks MASKS
                        Imports a list of Hashcat masks to a new super task

Fill in the configuration file:

---
url: "http://127.0.0.1"
key: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcd"

Provide input (all inputs can be either stdin or file) for an API call:

$ hashtopocli.py -i 8846F7EAEE8FB117AD06BDD830B7586C
8846F7EAEE8FB117AD06BDD830B7586C:password

echo 8846F7EAEE8FB117AD06BDD830B7586C | python3 hashtopocli.py
8846F7EAEE8FB117AD06BDD830B7586C:password

$ cat test.txt | python3 hashtopocli.py
8846F7EAEE8FB117AD06BDD830B7586C:password
8846F7EAEE8FB117AD06BDD830B7586C:password

$ python3 hashtopocli.py -i test.txt
8846F7EAEE8FB117AD06BDD830B7586C:password
8846F7EAEE8FB117AD06BDD830B7586C:password

Listing hashlists:

$ python3 hashtopocli.py -l
[12:45:09] Requesting listHashlists...
List[11] Type[1000] -> hibp-v7-top-7m-3.ntlm cracked 997374/1000000
List[12] Type[1000] -> hibp-v7-top-7m-4.ntlm cracked 997336/1000000
List[13] Type[1000] -> hibp-v7-top-7m-5.ntlm cracked 997321/1000000
...

Requesting cracked hashes:

$ python3 hashtopocli.py -c 325
5334ee031654e0d3d0b6e993fff2307b:/1Thisisstupid

Importing Masks:

$ python3 hashtopocli.py -m masks.txt
[12:52:43] Creating SuperTask: masks.txt:
?d?d?d
?s?s?s
?l?l?l?l?l?l?l?l?s?d?d?d?d
?l?l?l?l?l?l?l?l?s?d?d?d?d
?l?l?l?l?l?l?l?l?s?d?d?d?d
?l?l?l?l?l?l?l?l?s?d?d?d
[12:52:43] Requesting importSupertask...
OK

*Use PwdStat or maskcat to get a list of masks quickly from cracked hashes.

Install

Hashtopocli just requires Python.

git clone 
pip install -r requirements.txt

Recommended to use Docker to store your configuration file.

docker build . -t hashtopocli
docker run --rm -it hashtopocli