Skip to main content
The Krkn Client can be used to interface with the Krkn Server

Global Flags

Krkn Flags

First Time Setup

To utilize the Krkn Client (krknc) you will need to store the token received in your email in the environment variables. This can optionally be set by using the krknc install command.
In powershellset KRKN_API_TOKEN=<token>
Dynamically determine the shell in use and append token entry

Add Configuration Settings

Set the Server, Tailscale (optional), hostname (tailscale hostname if on tailscale otherwise IP or resolvable hostname by Server) and Webhook Type/Port.

Configuration

  • username: Your username for authentication
  • server: Server address (e.g., localhost:8443 or tailscale_hostname-krkn:8443)
  • tailscale: Use Tailscale (true/false)
  • quic: Use QUIC protocol (true/false)
  • insecure: Skip TLS verification (true/false)
  • debug: Enable debug mode (true/false)
  • webhook-port: Webhook listener port (number)
  • hostname: Tailscale hostname (string)
Configs are used to set and persist settings across executions. The username is a required configuration along with the token however the token must be set in your environment variable.

Config

Required Permissions: N/A
The get command can be used to view your current settings.Config Get C
Required Permissions: N/A
The set command can be used to set a configuration valueKrkn 34
Required Permissions: N/A
The unset command can be used to remove a value from a single keyKrkn 33
Required Permissions: N/A
The clear command can be used to clear all entries in the configuration.

Dumps

Dump can be used to facilitate the parsing and analyzing of dump files. This includes:
  • Parsing hash information from NTDS.dit and the SYSTEM hive
  • Parsing hash information from an LSASS Minidump
  • Parsing hash information from a previous SecretsDump (Supports History and Status)
Required Privileges: N/A
Image
Required Privileges: N/A
A
The impacket subcommand can be used to parse a SecretsDump fileImage
The minidump subcommand can be used to parse hashes from an lsass minidump file.Image
The ntds subcommand can be used to parse hashes from an NTDS.dit file and its corresponding SYSTEM file.Image

Logs

Logs can be queried to facilitate troubleshooting and debugging both remotely on the Krkn Server and locally.
Required Privileges: Admin
Required Privileges: N/A
Image

Users

Users are the primary driver behind the Krkn Server. To access the Krkn Server a user needs to have their Username saved to their config and their token saved as an environment variable. Users fall into three different roles:
  • Admin - Unfettered access to all gRPC commands
  • User - Access to Job Creation, querying and status’
  • Reader - Query access only
Required Privileges: Admin
Users can be listed by using the list commandUser ListUser List 2
Required Privileges: Admin
A new user can be created by an admin user using the user create command. A token will be sent to their email address.Create UserValidate Token
Required Privileges: Admin
The delete subcommand can be used to delete a user from the Krkn Server.User Delete
Required Privileges: Admin
Required Privileges: Admin

Files

The files subcommand can be used to upload, download, delete, head, tail and perform checksums for Rules, Wordlists and Mask files.

File Types

The masks are standard mask files supported by hashcat Masks are structured brute-force attack patterns

Mask Tokens

Sample Masks

Example Command

krknc job create hashes.txt -T 1000 -A 3 -M ?u?l?l?l?l?l?d?d`
The rules are standard rule files supported by hashcat Rules are transformations typically applied to wordlists

Example Rules

c # capitalize 1 # append 1 ! # append !applied to: summer
  • Summer1!

Example Command

krknc job create hashes.txt -T 1000 -A 0 -W wordlist.txt -R best64.rule
The wordlists are wordlist files for use by hashcat

Sub-Commands

Required Privileges: Admin
The upload subcommand can be used to upload a file from your host to the Krkn Server.Krkn 44
Required Privileges: Admin
The download subcommand can be used to prompt the Krkn Server to download a file from a given url.Krkn 53
Required Privileges: Admin, User
The list subcommand can be used to list files of the specified type on the Krkn Server.Krkn 52
Required Privileges: Admin
The head subcommand can be used to read the first N lines in the specified file.Krkn 49
Required Privileges: Admin
The tail subcommand can be used to read the last N lines in the specified file.Krkn 49
Required Privileges: Admin
The sum subcommand can be used to determine if the Sha256 sum of the downloaded or uploaded file matches what is expected.Krkn 8
Required Privileges: Admin
Krkn 50The delete subcommand can be used to delete the specified file from the Krkn Server.

Hashes

The hashes subcommand can be used to query or upload hashes to the Krkn Server.

Sub-Commands

Required Privileges: Admin, User, Reader
The query subcommand can be used to query the Krkn Server for previously cracked hashesKrkn 71
Required Privileges: Admin
The recount subcommand can be used to order the Krkn Server to perform a hash recount. This will force the Krkn Database to perform a recount of all cracked hashes and adjust its counters.Image
Required Privileges: **Admin**
The stats subcommand can be used to query the hash stats from the Krkn Server. The hashcat mode is optional. If not supplied the entire hash count will be returned.ImageImage
Required Privileges: Admin
The upload subcommand can be used to upload previously cracked hashes to the Krkn Server. These hashes are then added to the database.Krkn 72
Required Privileges: N/A
The id subcommand to identify potential hashcat types for a given hash.Image
Required Privileges: N/A
The defang subcommand can be used to remove client data from a given hash including:
  • Domain
  • Username Image

Jobs

The jobs subcommand encompasses the distributed KCat hash cracking system incorporated into the Krkn Service.
Required Privileges: User, Admin

Args

Flags

Attack Modes

  •   0 - Straight/Dictionary: Uses wordlist (-w required)
  •   1 - Combination: Combines words from wordlist (-w required)
  •   3 - Brute-force/Mask: Uses mask patterns (-m required)
  •   6 - Hybrid Wordlist+Mask: Appends mask to wordlist words (-w and -m required)
  •   7 - Hybrid Mask+Wordlist: Prepends mask to wordlist words (-w and -m required)

Examples

  • Dictionary attack with rules
    • krknc job create hashes.txt -T 1000 -A 0 -W rockyou -R best64
  • Mask attack with increment
    • krknc job create hashes.txt -T 1000 -A 3 -M "?a?a?a?a?a?a" --increment --increment-min 4 --increment-max 8
  • Hybrid attack
    • krknc job create hashes.txt -T 1000 -A 6 -W rockyou -M "?d?d?d"
  • Full suite attack (runs multiple attack strategies)
    • krknc job create hashes.txt -T 1000 --full-suite
The create subcommand can be used to create a new job and place it into the queue on the Krkn Server.Krkn 16
Required Privileges: Job Owner, Admin
The delete subcommand can be used to delete an enqueued job.Krkn 20
Required Privileges: Job Owner, Admin
The download subcommand can be used to retrieve all cracked hashes from a completed job.Krkn 18
Required Privileges: Job Owner, Admin
The get subcommand can be used to get the status and configuration of a specific job by its id .The table always includes the persisted fields:

Live Hashcat Fields

When a Tentacle worker is currently running the batch for this job, the table also appends live hashcat snapshot fields forwarded by the worker every 5 seconds (see krkns → Live Job Status). These rows are absent for jobs that haven’t started yet or have already finished:
Because the snapshot is cached in-memory on krkns, the overhead of get remains a single RPC — no extra round-trips to the worker. Running krknc job get <id> repeatedly against a job in progress will show the progress advance every few seconds.
Job Get
Required Privileges: Job Owner, Admin
The list subcommand can be used to list jobs and their status’.
For any job in the list that is currently being cracked by a Tentacle worker, the response includes the same live hashcat snapshot fields as job get (progress, recovered count, time started, time remaining, total speed, …). The snapshot comes from the krkns in-memory cache so listing all jobs still takes one round-trip regardless of how many are running.
Job List
The cancel subcommand can be used to cancel a running job.

Webhooks

Krkn Clients can create webhooks to manage jobs and updates. For the client to register for Webhooks when using tailscale, a new node will need to be added to the Tailscale network. Krkn Webhook Rt

Webhook Types

Webhooks can be configured to alert in one of three ways
All cracked passwords will be sent back to your host
When the job is completed, a notification will be sent back to your host
Both real-time and completion updates will be sent back to your host

Sub-Commands

The listen subcommand can be used to register and listen in realtime for job updates.
The service subcommand can be used to register/deregister a webhook service for listening on the host system.
The install subcommand can be used to install the webhook service on the host system.
The uninstall subcommand can be used to uninstall the webhook service on the host system.
The status subcommand can be used to query the webhook service on the host system.

Toast

Webhooks can be configured to use OS Specific Toast messages, which appear on a graphical desktop interface for user alerts. Toasts can also be queried using the toast subcommand if they are missed.
To utilize the toasts messages, they must be enabled in the config krknc config set toasts true
The list subcommand can be used to display all toast messages received via webhooks.Toast List
The read subcommand can be used to mark all toast messages as read.Toast Read
The clear subcommand can be used to clear all toast messages from the cache.Toast Clear
Toast Notification

Server

The server subcommand can be used to query active workers for the conductor
The workers subcommand can be used to query the Krkn Server for worker information
The list subcommand can be used to query tentacle workers and their status.Krkn 7
The sender subcommand can be used to query the Krkn Server to manage the email sender.
  • Confirm a new email sender
  • Get the current email sender
  • Set a new email sender
  • Send a test email
The get subcommand can be used to query the active email sender.Image
The list subcommand lists all available email senders.Image
The activate subcommand activates an available email sender.Image
The test subcommand can be used to send a test email from the active email sender.Image
The set subcommand can be used to set a new email sender.ImageImage

Args

Flags

The outlook subcommand can be used to create a new Outlook email sender.To obtain an app password, you can use the following link.

Args

Flags

The gmail subcommand can be used to create a new Outlook email sender.To obtain an app password, you can use the following link.

Args

Flags

The mailgun subcommand can be used to create a new Mailgun email sender.

Args

Flags

The mailgun subcommand can be used to create a new Mailgun email sender.

Args

Flags

The smtp subcommand can be used to create a new standard SMTP email sender.
The confirmsubcommand can be used to confirm the new email sender.Image
The delete subcommand deletes an email sender by idImage
You cannot delete an active sender, you must first activate an inactive one
Image

Tailscale

When connecting over Tailscale, you must supply the Tailscale <hostname>-krkn of the destination server. You may supply just the hostname and the -krkn will be appended to the end. The client will also have to be registered separately on Tailscale as its own node. The client will use the existing Tailscale connection and will host the hostname value supplied in the config otherwise the systems default hostname will be used.

Auto-Completion

Autocompletion scripts can be added to your profile to allow tab completion and other features of the Krkn Client application.

Bash Sample

Krkn 35