Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
threatest — CLI e framework Go para testes ponta a ponta de regras de detecção de ameaças. Detona técnicas de ataque e verifica alertas em plataformas de segurança como Datadog e Elastic Security. | Kitploit
Ferramentas/GitHubGitHub/datadog/threatest
Ferramentas DefensivasTestes de PenetraçãoRed Teaming
GitHubdatadog/threatest

threatest

CLI e framework Go para testes ponta a ponta de regras de detecção de ameaças. Detona técnicas de ataque e verifica alertas em plataformas de segurança como Datadog e Elastic Security.

Ver RepositórioSite
34527há 2 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Threatest

unit tests static analysis

Threatest

Threatest é uma CLI e framework Go para testar detecção de ameaças de ponta a ponta.

Threatest permite que você detone uma técnica de ataque e verifique se o alerta esperado foi gerado em sua plataforma de segurança favorita.

Leia o post do blog de anúncio: https://securitylabs.datadoghq.com/articles/threatest-end-to-end-testing-threat-detection/

Conceitos

Detonadores

Um detonador descreve como e onde uma técnica de ataque é executada.

Detonadores suportados:

  • Execução de comando local
  • Execução de comando SSH
  • Stratus Red Team
  • Detonador AWS CLI
  • Detonador AWS (apenas programático, não funciona com a CLI)

Correspondentes de alerta

Um correspondente de alerta é uma integração específica de plataforma que pode verificar se um alerta esperado foi acionado.

Correspondentes de alerta suportados:

  • Sinais de segurança Datadog
  • Sinais de segurança Elastic

Correlação de detonação e alerta

Cada detonação recebe um UUID. Esse UUID é refletido na detonação e usado para garantir que o alerta correspondente corresponda exatamente a esta detonação.

A forma como isso é feito depende do detonador; por exemplo, o Stratus Red Team e o Detonador AWS injetam-no no user-agent; o detonador SSH usa um processo pai contendo o UUID.

Uso

Através da CLI

Threatest vem com uma CLI que você pode usar para executar cenários de teste descritos como YAML, seguindo um esquema específico. Você pode configurar este esquema em seu editor para se beneficiar de linting e autocompletar na IDE (consulte a documentação para VSCode usando a extensão YAML).

Instale a CLI baixando uma versão binária ou com Homebrew:

root@kitploit:~
brew tap datadog/threatest https://github.com/datadog/threatest
brew install datadog/threatest/threatest

Exemplo de uso:

root@kitploit:~
$ threatest lint scenarios.threatest.yaml
All 6 scenarios are syntaxically valid

# Local detonation
$ threatest run local-scenarios.threatest.yaml

# Remote detonation over SSH
$ threatest run scenarios.threatest.yaml --ssh-host test-box --ssh-username vagrant

# Alternatively, specify SSH parameters from environment variables
$ export THREATEST_SSH_HOST=test-box
$ export THREATEST_SSH_USERNAME=vagrant
$ threatest run scenarios.threatest.yaml

Arquivos de definição de cenário de exemplo

  • Detonando via SSH
root@kitploit:~
scenarios:
  # Remote detonation over SSH
  # Note: SSH configuration is provided using the --ssh-host, --ssh-username and --ssh-keyfile CLI arguments
  - name: curl metadata service
    detonate:
      remoteDetonator:
        commands: ["curl http://169.254.169.254 --connect-timeout 1"]
    expectations:
      - timeout: 1m
        datadogSecuritySignal:
          name: "Network utility accessed cloud metadata service"
          severity: medium
  • Detonando usando Stratus Red Team
root@kitploit:~
scenarios:
  # Stratus Red Team detonation
  # Note: You must be authenticated to the relevant cloud provider before running it
  # The example below is equivalent to manually running "stratus detonate aws.exfiltration.ec2-security-group-open-port-22-ingress"
  - name: opening a security group to the Internet
    detonate:
      stratusRedTeamDetonator:
        attackTechnique: aws.exfiltration.ec2-security-group-open-port-22-ingress
    expectations:
      - timeout: 15m
        datadogSecuritySignal:
          name: "Potential administrative port open to the world via AWS security group"
  • Detonando usando comandos AWS CLI
root@kitploit:~
scenarios:
  # AWS CLI detonation
  # Note: You must be authenticated to AWS before running it and have the AWS CLI installed
  - name: opening a security group to the Internet
    detonate:
      awsCliDetonator:
        script: |
          set -e
          
          # Setup
          vpc=$(aws ec2 create-vpc --cidr-block 10.0.0.0/16 --query Vpc.VpcId --output text)
          sg=$(aws ec2 create-security-group --group-name sample-sg --description "Test security group" --vpc-id $vpc --query GroupId --output text)
          
          # Open security group
          aws ec2 authorize-security-group-ingress --group-id $sg --protocol tcp --port 22 --cidr 0.0.0.0/0
          
          # Cleanup
          aws ec2 delete-security-group --group-id $sg
          aws ec2 delete-vpc --vpc-id $vpc
    expectations:
      - timeout: 15m
        datadogSecuritySignal:
          name: "Potential administrative port open to the world via AWS security group"

Você pode exportar os resultados do teste para um arquivo JSON:

root@kitploit:~
$ threatest run scenarios.threatest.yaml --output test-results.json
$ cat test-results.json
[
  {
    "description": "change user password",
    "isSuccess": true,
    "errorMessage": "",
    "durationSeconds": 22.046627348,
    "timeDetonated": "2022-11-15T22:26:14.182844+01:00"
  },
  {
    "description": "adding an SSH key",
    "isSuccess": true,
    "errorMessage": "",
    "durationSeconds": 23.604699625,
    "timeDetonated": "2022-11-15T22:26:14.182832+01:00"
  },
  {
    "description": "change user password",
    "isSuccess": false,
    "errorMessage": "At least one scenario failed:\n\nchange user password returned: change user password: 1 assertions did not pass\n =\u003e Did not find Datadog security signal 'bar'\n",
    "durationSeconds": 3.505294235,
    "timeDetonated": "2022-11-15T22:26:36.229349+01:00"
  }
]

Por padrão, os cenários são executados com um paralelismo máximo de 5. Você pode aumentar essa configuração usando o argumento --parallelism. Observe que, ao usar detonadores SSH remotos, cada cenário em execução estabelece uma nova conexão SSH.

Usando Threatest programaticamente

Veja exemplos para um exemplo completo de uso programático.

Testando sinais Datadog Cloud SIEM acionados por Stratus Red Team

root@kitploit:~
threatest := Threatest()

threatest.Scenario("AWS console login").
  WhenDetonating(StratusRedTeamTechnique("aws.initial-access.console-login-without-mfa")).
  Expect(DatadogSecuritySignal("AWS Console login without MFA", WithSeverity("medium"))).
  WithTimeout(15 * time.Minute)

assert.NoError(t, threatest.Run())

Testando sinais Datadog Cloud Workload Security acionados por execução de comandos via SSH

root@kitploit:~
ssh, _ := NewSSHCommandExecutor("test-box", "", "")

threatest := Threatest()

threatest.Scenario("curl to metadata service").
  WhenDetonating(NewCommandDetonator(ssh, "curl http://169.254.169.254 --connect-timeout 1")).
  Expect(DatadogSecuritySignal("EC2 Instance Metadata Service Accessed via Network Utility"))

assert.NoError(t, threatest.Run())
Baixar ferramenta