
herramienta automatizada de rociado de contraseñas
El proyecto Trident es una herramienta automatizada de rociado de contraseñas desarrollada para cumplir con los siguientes requisitos:
La capacidad de ser desplegado en varias plataformas en la nube/proveedores de ejecución
La capacidad de programar campañas de rociado de acuerdo con la política de bloqueo de cuentas de un objetivo
La capacidad de aumentar el grupo de direcciones IP desde las que se originan los intentos de autenticación por razones de seguridad operativa
La capacidad de extender rápidamente la funcionalidad para incluir plataformas de autenticación recién encontradas

Este diagrama fue generado usando Diagrams. El gopher de Go fue diseñado por Renee French y está licenciado bajo CC BY 3.0.
Desplegar trident requiere un proyecto de Google Cloud, un nombre de dominio (para la API del orquestador) y una configuración de Cloudflare Access para este dominio. Cloudflare Access se utiliza para autenticar las solicitudes a la API del orquestador.
brew install cloudflare/cloudflare/cloudflared
brew install terraform
cd terraform
cloudflared login
terraform init
terraform plan
terraform apply
Trident tiene una interfaz de línea de comandos disponible en la página de lanzamientos. Alternativamente, puedes descargar e instalar trident-client mediante go get:
GO111MODULE=on go get github.com/praetorian-inc/trident/cmd/trident-client
El binario trident-client envía solicitudes API al orquestador. Lee desde ~/.trident/config.yaml, que tiene el siguiente formato:
orchestrator-url: https://trident.example.org
providers:
okta:
subdomain: example
adfs:
domain: adfs.example.org
o365:
domain: login.microsoft.com
Con un config.yaml válido, trident-client se puede usar para crear campañas de rociado de contraseñas, como se muestra a continuación:
trident-client campaign -u usernames.txt -p passwords.txt --interval 5s --window 120s
La opción --interval permite al operador insertar demoras entre los intentos de credenciales. La opción --window permite al operador establecer una hora de finalización forzada para la campaña. Argumentos adicionales se documentan a continuación:
Usage:
trident-cli campaign [flags]
Flags:
-a, --auth-provider string this is the authentication platform you are attacking (default "okta")
-h, --help help for campaign
-i, --interval duration requests will happen with this interval between them (default 1s)
-b, --notbefore string requests will not start before this time (default "2020-09-09T22:31:38.643959-05:00")
-p, --passfile string file of passwords (newline separated)
-u, --userfile string file of usernames (newline separated)
-w, --window duration a duration that this campaign will be active (ex: 4w) (default 672h0m0s)
El subcomando results se puede utilizar para consultar la tabla de resultados. Este subcomando tiene varias opciones, pero por defecto muestra todas las credenciales válidas en todas las campañas.
$ trident-client results
+----+-------------------+------------+-------+
| ID | USERNAME | PASSWORD | VALID |
+----+-------------------+------------+-------+
| 1 | [email protected] | Password1! | true |
| 2 | [email protected] | Password2! | true |
| 3 | [email protected] | Password3! | true |
+----+-------------------+------------+-------+
Argumentos adicionales se documentan a continuación:
Usage:
trident-cli results [flags]
Flags:
-f, --filter string filter on db results (specified in JSON) (default '{"valid":true}')
-h, --help help for results
-o, --output-format string output format (table, csv, json) (default "table")
-r, --return string the list of fields you would like to see from the results (comma-separated string) (default "*")