Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
threatest — CLI y framework en Go para pruebas de extremo a extremo de reglas de detección de amenazas. Detona técnicas de ataque y verifica alertas en plataformas de seguridad como Datadog y Elastic Security. | Kitploit
Herramientas/GitHubGitHub/datadog/threatest
Herramientas DefensivasPruebas de PenetraciónRed Teaming
GitHubdatadog/threatest

threatest

CLI y framework en Go para pruebas de extremo a extremo de reglas de detección de amenazas. Detona técnicas de ataque y verifica alertas en plataformas de seguridad como Datadog y Elastic Security.

Ver RepositorioSitio web
34527hace 2 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Threatest

unit tests static analysis

Threatest

Threatest es una CLI y un framework en Go para probar la detección de amenazas de extremo a extremo.

Threatest te permite detonar una técnica de ataque y verificar que se haya generado la alerta esperada en tu plataforma de seguridad favorita.

Lee el anuncio en el blog: https://securitylabs.datadoghq.com/articles/threatest-end-to-end-testing-threat-detection/

Conceptos

Detonadores

Un detonador describe cómo y dónde se ejecuta una técnica de ataque.

Detonadores compatibles:

  • Ejecución local de comandos
  • Ejecución de comandos por SSH
  • Stratus Red Team
  • Detonador de AWS CLI
  • Detonador de AWS (solo programático, no funciona con la CLI)

Comprobadores de alertas

Un comprobador de alertas es una integración específica de la plataforma que puede verificar si se activó una alerta esperada.

Comprobadores de alertas compatibles:

  • Señales de seguridad de Datadog
  • Señales de seguridad de Elastic

Correlación entre detonación y alerta

A cada detonación se le asigna un UUID. Este UUID se refleja en la detonación y se utiliza para asegurar que la alerta coincidente corresponde exactamente a esa detonación.

La forma de hacerlo depende del detonador; por ejemplo, Stratus Red Team y el Detonador de AWS lo inyectan en el user-agent; el detonador SSH utiliza un proceso padre que contiene el UUID.

Uso

A través de la CLI

Threatest incluye una CLI que puedes usar para ejecutar escenarios de prueba descritos como YAML, siguiendo un esquema específico. Puedes configurar este esquema en tu editor para beneficiarte de linting y autocompletado en el IDE (consulta la documentación para VSCode usando la extensión YAML).

Instala la CLI descargando un binario o con Homebrew:

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

Ejemplo 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

Archivos de definición de escenarios de ejemplo

  • Detonando por 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 con 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 con comandos de 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"

Puedes exportar los resultados de las pruebas a un archivo 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 defecto, los escenarios se ejecutan con un paralelismo máximo de 5. Puedes aumentar este valor usando el argumento --parallelism. Ten en cuenta que al usar detonadores SSH remotos, cada escenario que se ejecuta establece una nueva conexión SSH.

Usando Threatest programáticamente

Consulta ejemplos para ver un ejemplo completo de uso programático.

Probando señales de Datadog Cloud SIEM activadas 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())

Probando señales de Datadog Cloud Workload Security activadas por comandos ejecutados por 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())
Descargar herramienta