Skip to content

Brutus: Praetorian's Zero-Dependency Credential Testing Tool Takes Aim at Hydra

Tool Spotlight Credential Testing Open Source Feb 14, 2026

Brutus: Praetorian's Zero-Dependency Credential Testing Tool Takes Aim at Hydra

A modern, single-binary alternative to THC Hydra and Medusa written in pure Go. Supports 23 protocols, embeds known-bad SSH keys, and pipes directly into fingerprintx/naabu reconnaissance workflows.

praetorian-inc / brutus

Fast, zero-dependency credential testing tool in Go. Brute force SSH, MySQL, PostgreSQL, Redis, MongoDB, SMB, and 20+ protocols. Hydra alternative with native fingerprintx/naabu pipeline integration.

Go ★ 10 stars 1 fork 75 commits 4 contributors Apache-2.0

Praetorian, the offensive security firm behind tools like fingerprintx, Gato-X, and the Chariot attack surface management platform, has open-sourced Brutus, a multi-protocol credential testing tool written in pure Go. The tool was authored by Adam Crosser, a Staff Security Engineer on Praetorian's red team, and was built to solve a problem every pentester knows: credential testing at scale is tedious with the current tooling.

Tools like THC Hydra and Medusa have been the go-to options for years, but they come with friction. Complex dependency chains that break across platforms, compilation headaches on jump boxes, inconsistent output formats, and zero native integration with modern JSON-based recon pipelines. Brutus addresses all of this by shipping as a single binary with no external dependencies.

// What Is Brutus?

Brutus is a credential testing tool that supports 23 protocols out of the box: SSH, MySQL, PostgreSQL, MSSQL, Redis, MongoDB, SMB, LDAP, WinRM, SNMP, HTTP Basic Auth, and more. It's designed around a library-first architecture, meaning you can import it directly into your own Go security tools without shelling out to external processes.

The core workflow is straightforward: you feed Brutus a target, a protocol, and credentials, and it tells you what works. Where it gets interesting is how it fits into modern offensive pipelines. Brutus natively consumes JSON output from Praetorian's fingerprintx (service identification) and naabu (port scanning) tools, allowing operators to chain an entire network credential audit into a single pipeline.

Discovery | naabu scans ports across target ranges
Identification | fingerprintx identifies services on open ports
Testing | Brutus tests credentials against identified services
Output | JSON results for integration with existing tooling

// Key Features

📦
Zero Dependencies
Single binary. No libssh-dev, no libmysqlclient-dev, no compilation. Download and run on Linux, macOS, or Windows.
🔗
Pipeline Native
JSON input/output. Pipes directly from naabu and fingerprintx. No format conversion or glue scripts needed.
🔑
Embedded Bad SSH Keys
Rapid7 ssh-badkeys and Vagrant key collections compiled into the binary. Automatic testing against every SSH target.
🤖
Experimental AI Integration
Uses Claude's vision API with headless Chrome to identify web admin panels and test default credentials automatically.
📚
Library-First Design
Import Brutus as a Go package directly into custom security tools. Build automation without shelling out to external processes.
🛡️
CVE Tracking
Each embedded bad key is paired with its default username and tracked by CVE where applicable, enabling compliance queries.

// Supported Protocols

CategoryProtocols
Remote AccessSSH, WinRM, Telnet, VNC
DatabasesMySQL, PostgreSQL, MSSQL, Redis, MongoDB, Cassandra, Oracle
Directory / AuthLDAP, SNMP, HTTP Basic Auth
File SharingSMB, FTP
WebHTTP Basic Auth, HTTP Form (experimental via AI)

RDP is notably absent. According to Praetorian, the team built an RDP implementation using Rust FFI but pulled it because it wasn't reliable enough to ship. They chose to maintain the core promise that everything in the tool works correctly rather than ship a broken protocol. RDP support with NLA detection and Sticky Keys backdoor testing remains the top priority on the roadmap.

// Embedded SSH Bad Keys

One of Brutus's most practical features is the embedded SSH bad key testing. The binary carries known-compromised SSH key collections from the Rapid7 ssh-badkeys repository and HashiCorp Vagrant, compiled directly in with no external key files to manage.

When Brutus encounters an SSH service, it automatically tests every embedded bad key against the target. Each key is paired with its expected default username: root for F5 BIG-IP, vagrant for Vagrant boxes, mateidu for Ceragon FibeAir, and so on. Vendor coverage includes F5 BIG-IP, ExaGrid, Barracuda, Ceragon, and Array Networks, among others.

🔑 Why This Matters
On internal assessments, operators know there are Vagrant boxes or appliances running factory keys somewhere in the environment, but testing for them comprehensively has always been tedious enough to get deprioritized. With Brutus, it happens automatically as part of the normal workflow. What used to be a half-day side project now comes for free.

// Experimental AI Features

Brutus includes two experimental AI-powered features that tackle a problem with no good automated solution: unidentified web admin panels.

LLM-based credential suggestion. When Brutus encounters an HTTP service, it captures the response data (headers, page content, server signatures) and sends it to an LLM for analysis. The model identifies the application (Grafana, Jenkins, Tomcat, a Cisco management interface, etc.) and suggests vendor-specific default credentials. These are tested first, with Brutus falling back to generic wordlists if they don't succeed.

Vision-based admin panel testing. Using Claude's vision capabilities paired with headless Chrome, Brutus renders login pages, uses AI vision to identify the appliance or application, researches likely default credentials, then controls the browser to fill in the login form and test them. This approach handles JavaScript-rendered forms, CSRF tokens, and multi-step logins, all the things that break traditional form-filling tools.

Both features are experimental and depend on external API services.

// Pipeline Usage

The core value proposition is how Brutus fits into existing offensive workflows. A full network credential audit can be expressed as a single pipeline:

naabu fingerprintx brutus JSON output

Installation is a single command via go install or a direct binary download for Linux, macOS (Intel and Apple Silicon), and Windows. No compilation required.

// About the Name

Praetorian typically names their tools after Roman emperors (Trajan, Augustus, etc.). Brutus breaks that convention because Marcus Junius Brutus was never an emperor. As Praetorian puts it: Brutus doesn't build empires; it tests whether the ones you've built will let a stranger walk right through the front door.

// Bottom Line

Brutus fills a real gap in the offensive security toolkit. Legacy credential testing tools have lagged behind the rest of the modern pentest workflow, and a zero-dependency, pipeline-native alternative from a team that uses it on real engagements is a welcome addition. The embedded SSH bad key testing alone makes it worth adding to your toolkit, and the experimental AI features hint at where credential testing is headed.

The tool is open source under the Apache-2.0 license. Praetorian is actively seeking community contributions, particularly additional SSH bad keys from appliances and vendor products encountered in the wild.

Latest