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

Global Flags

FlagsDescription
-d —debugEnable debug mode
-n —hostnameTailscale hostname
-k —insecureSkip TLS Verification
-q —quicUse QUIC protocol
-s —serverKrkn Server Hostname/IP
-t —tailscaleUse Tailscale for connection
-w —webhook portPort to use for webhook int

Krkn Flags

CommandDescription
completionGenerates the autocompletion script for the specified shell
configManage the cache configuration
dumpsParse, and Analyze Dump Files
filesManage Rules, Wordlists and Mask FIles
hashesManage or query cracked hashes
jobsManage jobs
listenStart webhook listener
logsView local or server (remote) logs
serverManage the Krkn Server
serviceManage the webhook listener service
toastManage toast notifications
usersManage users
webhooksManage webhooks

First Time Setup

To utilize the Krkn Client (krknc) you will need to store the token received in your email in the environment variables.
In powershellset KRKN_API_TOKEN=<token>
Dynamically determine the shell in use and append token entry
TOKEN="REDACTED"

case "$SHELL" in
  */zsh)  PROFILE="$HOME/.zshrc" ;;
  */bash) PROFILE="$HOME/.bashrc" ;;
  */fish) PROFILE="$HOME/.config/fish/config.fish" ;;
  *) echo "Unsupported shell: $SHELL"; exit 1 ;;
esac

if echo "$PROFILE" | grep -q fish; then
  LINE="set -x KRKN_API_TOKEN \"$TOKEN\""
else
  LINE="export KRKN_API_TOKEN=\"$TOKEN\""
fi

mkdir -p "$(dirname "$PROFILE")"

grep -q 'KRKN_API_TOKEN' "$PROFILE" 2>/dev/null || echo "$LINE" >> "$PROFILE"

echo "Added KRKN_API_TOKEN to $PROFILE"
echo "Restart your shell or run: source $PROFILE"

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

Sub-CommandDescription
clearClear all configurations
getGet configuration value(s)
setSet configuration value
unsetUnset a configuration value
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)
Sub-CommandDescription
analyzePerform an analysis of a companies password policy and current hash landscape
parseParse hash information from given input(s)
Required Privileges: N/A
FlagDescriptionDefault
—dedupeDeduplicate credentiasl across all sourcesTrue
-f —formatOutput Format (xlsx, csv, json, yaml, xml)Auto-Detect from output file
-g —groupsGroup membership fileNil
—include-historyInclude password history entries in analysisFalse
—kerberoastKerberoast hash fileNil
-l —lsassLSASS Parsed output fileNil
—ntdsNTDS parsed output fileNil
-o —outputOutput file path (required)Nil
-p —policyPassword Policy FileNil
—potfilePotfile in hash:password formatNil
—secretsdumpSecrets dump output file(s)Nil
—strictFail on parse errors instead of skippingFalse
—timeoutAnalysis timeout duration30m0s
—workersNumber of parallel workers for parsing4
Image
Required Privileges: N/A
A
ArgsDescription
impacketParse an Impacket SecretsDump file
minidumpParse a minidump file
ntdsParse an NTDS.dit file with a SYSTEM file
FlagsDescription
-p —file-prefixPrefix for output file(s)
The impacket subcommand can be used to parse a SecretsDump fileImage
FlagsDescription
-p —file-prefixPrefix for output file(s)
The minidump subcommand can be used to parse hashes from an lsass minidump file.Image
FlagsDescription
-p —file-prefixPrefix for output file(s)
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.
Sub-CommandDescription
localView local client logs
remoteView Krkn Server logs
Required Privileges: Admin
FlagDescriptionType
-E —endEnd date for logs (defaults to ‘now’)string
-L —lastNumber of logs to show (default: 50)int
-T —no-truncateDo not truncate log detailsbool
-V —severityComma-delimited log severity to show (debug, info, warning, error, fatal)string
-S —startStart date for logs (e.g., ‘8 minutes ago’, ‘Jan 01, 2026’)string
-QQuery using a keyword valuestring
Required Privileges: N/A
FlagDescriptionType
-E —endEnd date for logs (defaults to ‘now’)string
-L —lastNumber of logs to show (default: 50)int
-T —no-truncateDo not truncate log detailsbool
-V —severityComma-delimited log severity to show (debug, info, warning, error, fatal)string
-S —startStart date for logs (e.g., ‘8 minutes ago’, ‘Jan 01, 2026’)string
-QQuery using a keyword valuestring
Image

Users

Sub-CommandDescription
listList all users
createCreate a new user
deleteDelete a user
set-roleSet a users role
reset-tokenReset the users token and send the ma new one in email
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
ArgsDescription
1username
2email address
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
ArgsDescription
1username
The delete subcommand can be used to delete a user from the Krkn Server.User Delete
Required Privileges: Admin
ArgsDescription
1Username
2Role (admin, user, reader)
Required Privileges: Admin
ArgsDecription
1Username

Files

Sub-CommandDescription
masksManage mask files
rulesManage rule files
wordlistsmanage wordlist 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

TokenMeaning
?llowercase letter (a-z)
?uuppercase letter (A-Z)
?ddigit (0-9)
?ssymbol
?aall of the above

Sample Masks

PatternMeaning
?u?l?l?l?l?d?dCapital + 4 lowercase + 2 digits
?l?l?l?l?l?l?d?d6 letters + 2 digits
Summer?d?d?d!“Summer###!”
?u?l?l?l?l?l?d!Capitalized word + digit + !

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
ArgsDescription
1the local file to upload to the Krkn Server
The upload subcommand can be used to upload a file from your host to the Krkn Server.Krkn 44
Required Privileges: Admin
ArgsDescription
1The url of the downloadable file. For github, ensure you are using the github raw file
2The name to save the file as on the Krkn Server
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
ArgsDescription
1The name of the file to read from
2The number of lines to read
The head subcommand can be used to read the first N lines in the specified file.Krkn 49
Required Privileges: Admin
ArgsDescription
1The name of the file to read from
2The number of lines to read
The tail subcommand can be used to read the last N lines in the specified file.Krkn 49
Required Privileges: Admin
ArgsDescription
1The name of the file to checksum
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
ArgsDescription
1The name of the file to delete
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-CommandsDescription
queryQuery the provided hashes
recountPerform a recount of all hash statistics
statsShow hash statistics
uploadUpload cracked hashes from file or stdin
idAttempt to identify the hashcat mode for a given hash
defangRemove client PII from a given hash

Sub-Commands

Required Privileges: Admin, User, Reader
FlagsDescription
-TThe hashcat mode of the provided hashes
-HProvide a comma delimited list of hashes
-FProvide a file of hashes
-OOutput file for results
-DDispaly results to stdout
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**
ArgsDescription
modeThe hashcat mode to query stats for
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
ArgsDescription
1Hashcat mode
2The local file to upload containing the hashes
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
ArgsDescription
hashThe hash to identify
The id subcommand to identify potential hashcat types for a given hash.Image
Required Privileges: N/A
ArgsDescription
hashThe hash to defang
modeThe hashcat mode of the hash
The defang subcommand can be used to remove client data from a given hash including:
  • Domain
  • Username Image

Jobs

Sub-CommandDescription
createCreate a new job
deleteDelete a job
downloadDownload job results
getGet a jobs details
listList all jobs
cancelCancel a running job
The jobs subcommand encompasses the distributed KCat hash cracking system incorporated into the Krkn Service.
Required Privileges: User, Admin

Args

ArgsDescription
1The local hashes file for the job

Flags

FlagDescription
-T —hashtypeThe hashcat mode to use for the job
-W —wordlistThe wordlist to use for the job
-M —masksName of masks file on server (required for modes 3, 6, 7)
-R —rulesName of rules file on server
-A —attack-modeThe attack mode to use for the job
-D —descriptionDescription of the job
—full-suiteRun full attack suite (ignores attack-mode, runs multiple strategies)
—incrementEnable mask increment mode (modes 3, 6, 7 only)
—increment-minStop mask incrementing at this length
—increment-maxStart mask incrementing at this length
—appendMask to append to each candidate
—prependMask to prepend to each candidate
-LListen after creation using the host, port and webhook type stored in the config

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
ArgsDescription
1The id of the job to delete
The delete subcommand can be used to delete an enqueued job.Krkn 20
Required Privileges: Job Owner, Admin
ArgsDescription
1The ID of the job to download
2The name of the output file
The download subcommand can be used to retrieve all cracked hashes from a completed job.Krkn 18
Required Privileges: Job Owner, Admin
ArgsDescription
1The id of the job to retrieve
The get subcommand can be used to get the status and configuration of a specific job by its id .Job Get
Required Privileges: Job Owner, Admin
The list subcommand can be used to list jobs and their status’.Job List
ArgsDescription
job-idThe id of the running job
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

-N, —notificationsenable OS notifications
-p, —portport to listen on (default 9090)
-S, —save-toastssave toast messages to file (default true)
—systemrun in system service mode
The listen subcommand can be used to register and listen in realtime for job updates.
Sub-CommandDescription
installInstall the webhook listener service
uninstallUninstall the webhook listener service
statusGet the status of the webhook listener service
The service subcommand can be used to register/deregister a webhook service for listening on the host system.
FlagDescription
-N, —notificationsEnable OS notifications (default true)
-p, —portPort to listen on (default 9090)
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

Sub-CommandDescription
listShow toast messages
readMark all toast messages as read
clearRemove all toast messages
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.
FlagDescription
-u —unreadOnly list unread toast messages
Toast List
The read subcommand can be used to mark all toast messages as read.Toast Read
FlagDescription
-r —readOnly clear read toast messages
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
FlagDescription
-a —allShow all columns
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
ArgsDescription
identifierThe ID or Email of the sender
The activate subcommand activates an available email sender.Image
ArgsDescription
emailThe recipient of the test email
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

ArgsDescription
emailThe recipient of the test email

Flags

FlagsDescription
-p —password.App password for the email account
-r —recipientThe recipient of the test email
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

ArgsDescription
emailThe recipient of the test email

Flags

FlagsDescription
-p —passwordApp password for the email account
-r —recipientThe recipient of the test email
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

ArgsDescription
from-emailThe email to send from

Flags

FlagsDescription
-r —recipientThe recipient of the test email
—base-urlMailgun base URL (for EU customers)
—domainThe Mailgun domain
—api-privateThe Mailgun private API Key
The mailgun subcommand can be used to create a new Mailgun email sender.

Args

ArgsDescription
from-emailThe email to send from

Flags

FlagsDescription
-r —recipientThe recipient of the test email
—api-keyThe Sendgrid API Key
The mailgun subcommand can be used to create a new Mailgun email sender.

Args

ArgsDescription
from-emailThe email to send from

Flags

FlagsDescription
-r —recipientThe recipient of the test email
—bounceBounce email address
—hostnameThe SMTP Server hostname
—passwordThe SMTP Server password
—portThe SMTP Server port
—tlsUse TLS
The smtp subcommand can be used to create a new standard SMTP email sender.
ArgsDescription
tokenThe token received in the email sent from the set command
The confirmsubcommand can be used to confirm the new email sender.Image
ArgsDescription
identifierThe ID or Email of the sender
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

Sub-CommandDescription
bashGenerate the autocompletion script for bash
fishGenerate the autocompletion script for fish
powershellGenerate the autocompletion script for powershell
zshGenerate the autcompletion script for zsh
Autocompletion scripts can be added to your profile to allow tab completion and other features of the Krkn Client application.

Bash Sample

Krkn 35