lachlan2k

lachlan2k /phatcrack

Modern web-based distributed hashcracking solution, built on hashcat

141
12
GitHub
Public

Repository Statistics

Key metrics and engagement data

141
Stars
12
Forks
8
Open Issues
0
Releases
1.09
Engagement Rate
Default branch: main

Timeline

Repository has been active for N/A

Repository Created

Last Activity
Inactive for NaN months

README.md

Phatcrack

Phatcrack is a modern solution for distributed hash cracking, designed for hackers and other information security professionals.

Key features include:

  • Built on Hashcat, supporting most common Hashcat attacks and almost all hash types.
  • Excellent UX for managing projects, configuring attack settings, and viewing results.
  • Distributes attacks, allowing both dictionary-based and mask-based attacks to be split across multiple workers.
  • Automatically synchronises wordlists & rulefiles to all workers. Low-privileged users can be granted permission to upload wordlists & rulefiles.
  • Modern web-interface, with multi-user support and project-based access control.

image

Deployment

Server

Docker is the only supported deployment method for the server. The following instructions assume you already have Docker installed on your server, and are logged in as root (sudo su).

sh
1# Ideally the container processes should be run rootless, so we'll create an unprivileged user.
2useradd --system --create-home --home-dir /opt/phatcrack-server phatcrack-server
3
4cd /opt/phatcrack-server
5
6wget https://github.com/lachlan2k/phatcrack/releases/download/v0.7.0/docker-compose.yml
7
8# Update your hostname here:
9echo "HOST_NAME=phatcrack.lan" >> .env
10echo "DB_PASS=$(openssl rand -hex 16)" >> .env
11echo "PHATCRACK_USER=$(id -u phatcrack-server):$(id -g phatcrack-server)" >> .env
12chmod 600 .env
13
14# If you chose a hostname that is publicly accessible and expose this to the world (not recommended), Caddy will automatically deploy TLS.
15
16## Otherwise, use the following for self-signed TLS
17# echo "TLS_OPTS=tls internal" >> .env
18
19## If you want to supply custom certificates, place them in a directory called `certs`
20## And add ./certs:/etc/caddy/certs:ro as a mount in docker-compose.prod.yml for
21# echo "TLS_OPTS=tls /etc/caddy/certs/cert.pem /etc/caddy/certs/key.pem" >> .env
22
23# Make a directory to persist files in
24mkdir filerepo
25chown phatcrack-server:phatcrack-server filerepo
26
27docker compose up -d

You can then visit your local installation. The default credentials are admin:changeme.

Agents

To enroll an agent, visit the admin GUI, and click "Register Agent". The web interface will provide a script that you can run on the agent to enroll it.

However, if you want to set up an agent manually, you can do so with the following commands. You will need to replace REGISTRATION_KEY_FROM_SERVER_HERE with the key from the server.

sh
1# Create a user for the phatcrack agent
2useradd --system --create-home --home-dir /opt/phatcrack-agent phatcrack-agent
3
4# Depending on your distro, you may need to the phatcrack-agent to a group
5usermod -aG video phatcrack-agent
6
7cd /opt/phatcrack-agent
8
9# Download the phatcrack-agent program from the local server
10wget https://phatcrack.lan/agent-assets/phatcrack-agent
11# Or, you can download from https://github.com/lachlan2k/phatcrack/releases/download/v0.7.0/phatcrack-agent
12
13chmod +x ./phatcrack-agent
14# Optionally add -disable-tls-verification if you are using self-signed certs
15./phatcrack-agent install -defaults -api-endpoint https://phatcrack.lan/api/v1 -registration-key REGISTRATION_KEY_FROM_SERVER_HERE
16
17systemctl enable phatcrack-agent
18systemctl start phatcrack-agent