Skip to main content

Reverse-shell handler & post-exploitation console — the eights to wraith's aces.

Project description

hickok

A reverse-shell handler and post-exploitation console. Catch shells on multiple listeners, run commands, upgrade to a full PTY, and generate reverse-shell one-liners — from one dependency-free CLI.

It's the other half of a hand: wraith holds the aces — it does the recon and proves the way in; hickok brings the eights — it acts on what wraith caught. Aces and eights, the dead man's hand.

CI Python 3.10+ MIT

Install

pipx install hickok

Or from a clone: pip install -e . — or run it with no install at all: PYTHONPATH=src python3 -m hickok.

Usage

The listener is the default command, so a bare hickok starts catching shells:

hickok                                   # listen on :9001, drop into the console
hickok -l 9001,9002 --lhost 10.10.14.7   # multiple listeners, fixed LHOST
hickok payloads 10.10.14.7 9001          # print reverse-shell one-liners
hickok hand                              # act on wraith's latest run (found on its own)
hickok hand path/to/findings.json        # ...or a specific one
hickok sql -u 'http://host/p?id=1' -p id # walk a SQL-injectable parameter

Inside the console:

hickok>
  sessions          list connected shells
  payloads          reverse-shell one-liners for your LHOST
  cmd 1 id          run a command on session 1
  upgrade 1         turn a dumb shell into a PTY
  interact 1        attach (detach with Ctrl-])
  kill 1            drop a session

SQL injection — hickok sql

Walk a database through a boolean-blind injection — a small sqlmap. hickok calibrates a TRUE/FALSE oracle, fingerprints the DBMS (SQLite / MySQL / MSSQL / PostgreSQL), then reads anything out one bit at a time:

hickok sql -u 'http://host/db?id=1' -p id   # or just `hickok sql` to read it
                                            # from wraith's latest SQLi finding
hickok(sql)>
  banner            DBMS version             user / db    current user / database
  tables            list tables              columns <t>  a table's columns
  dump <table>      dump its rows            query "<SELECT>"   extract one value
hickok(sql)> dump users
  id | username | password
  ---+----------+-----------
  1  | admin    | s3cr3t!
  2  | alice    | wonderland

Boolean-blind is slow by nature (each character is binary-searched over many requests) — it prints the request count as it goes.

Evasion / OPSEC:

hickok sql -u '...' -p id \
  --random-agent \                 # a random real browser User-Agent
  --tor \                          # route via Tor, verified (see below)
  --cookie 'sid=…' -H 'X-Api: …' \ # authenticated injection
  --delay 0.3 -v 2 \               # throttle; print every payload
  --dump users                     # non-interactive: run one action and exit

--tor is fail-closed and leak-aware: it uses socks5h so the target hostname is resolved by Tor (no DNS leak to your resolver), and it verifies the exit is a Tor node before sending any attack traffic — if it can't confirm, hickok aborts rather than deanonymising you. SOCKS needs PySocks (pip install hickok[tor]); for a zero-dependency route, run the whole process with torsocks hickok sql …. --proxy http://host:port works with no extras.

The bridge — hickok hand

hickok hand picks up wraith's latest run on its own — wraith writes to a fixed per-user dir (~/.local/share/wraith/runs/, or wherever WRAITH_RUNS points) that both tools agree on, so it works from any directory. It reads the table, lists what wraith found, and flags every finding that means code execution (command injection, SSTI, …) — those are the doors to a shell.

hickok hand                          # wraith's latest run, wherever you are
hickok hand path/to/findings.json    # ...or a specific one
  [Critical] Command Injection in 'host'   http://target/ping   ⮕ shell
  [High]     SSTI in 'name'                http://target/render ⮕ shell
  [High]     Reflected XSS in 'q'          http://target/search

      ┌─────┐   ┌─────┐   ┌─────┐   ┌─────┐
      │ A♠  │   │ A♣  │   │ 8♠  │   │ 8♣  │
      └─────┘   └─────┘   └─────┘   └─────┘

  aces and eights — the dead man's hand.

wraith deals the aces; hickok brings the eights. The hand is complete.

Disclaimer

Built for authorized security testing and research — point it where you're meant to. What anyone does with it from there is theirs alone; the author takes no responsibility for misuse.

License

MIT.


in memory of J.B. Hickok — shot holding aces and eights, Deadwood, 1876.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hickok-0.4.1.tar.gz (23.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hickok-0.4.1-py3-none-any.whl (23.8 kB view details)

Uploaded Python 3

File details

Details for the file hickok-0.4.1.tar.gz.

File metadata

  • Download URL: hickok-0.4.1.tar.gz
  • Upload date:
  • Size: 23.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hickok-0.4.1.tar.gz
Algorithm Hash digest
SHA256 8125613096a13093d8f5555b70a8a279f657539b34c6cd8f1daf411d4fa36e49
MD5 d3a314c8184ec0096c1c226f17105685
BLAKE2b-256 b6598d75d8a573882195fb0d67e07094a452969a3729a2a2950644bc085f403c

See more details on using hashes here.

Provenance

The following attestation bundles were made for hickok-0.4.1.tar.gz:

Publisher: release.yml on gusta-ve/hickok

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hickok-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: hickok-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 23.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hickok-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 54eb21c05235e905c5ffe4cd949cb3423a687bed15f5a35dd834c808564ec6a3
MD5 5acff201b25e207209d1e245d61547d1
BLAKE2b-256 f12002828d133ae79b8677bbc8faa5050503fce037ff8f424e3ec6697a40fa11

See more details on using hashes here.

Provenance

The following attestation bundles were made for hickok-0.4.1-py3-none-any.whl:

Publisher: release.yml on gusta-ve/hickok

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page