Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
threatest — CLI- und Go-Framework für End-to-End-Tests von Bedrohungserkennungsregeln. Detoniert Angriffstechniken und überprüft Alarme in Sicherheitsplattformen wie Datadog und Elastic Security. | Kitploit
Tools/GitHubGitHub/datadog/threatest
DefensivwerkzeugePenetrationstestsRed Teaming
GitHubdatadog/threatest

threatest

CLI- und Go-Framework für End-to-End-Tests von Bedrohungserkennungsregeln. Detoniert Angriffstechniken und überprüft Alarme in Sicherheitsplattformen wie Datadog und Elastic Security.

Repository anzeigenWebseite
34527vor 2 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Threatest

unit tests static analysis

Threatest

Threatest ist ein CLI und Go-Framework für End-to-End-Tests der Bedrohungserkennung.

Threatest ermöglicht es Ihnen, eine Angriffstechnik zu detonieren und zu überprüfen, ob der erwartete Alarm in Ihrer bevorzugten Sicherheitsplattform generiert wurde.

Lesen Sie den Ankündigungs-Blogbeitrag: https://securitylabs.datadoghq.com/articles/threatest-end-to-end-testing-threat-detection/

Konzepte

Detonatoren

Ein Detonator beschreibt, wie und wo eine Angriffstechnik ausgeführt wird.

Unterstützte Detonatoren:

  • Lokale Befehlsausführung
  • SSH-Befehlsausführung
  • Stratus Red Team
  • AWS CLI-Detonator
  • AWS-Detonator (nur programmatisch, funktioniert nicht mit der CLI)

Alarm-Matcher

Ein Alarm-Matcher ist eine plattformspezifische Integration, die prüfen kann, ob ein erwarteter Alarm ausgelöst wurde.

Unterstützte Alarm-Matcher:

  • Datadog-Sicherheitssignale
  • Elastic-Security-Signale

Detonation und Alarmkorrelation

Jeder Detonation wird eine UUID zugewiesen. Diese UUID wird in der Detonation reflektiert und dient dazu, sicherzustellen, dass der gefundene Alarm genau dieser Detonation entspricht.

Die genaue Umsetzung hängt vom Detonator ab; beispielsweise injiziert Stratus Red Team und der AWS-Detonator die UUID in den User-Agent; der SSH-Detonator verwendet einen übergeordneten Prozess, der die UUID enthält.

Verwendung

Über die CLI

Threatest wird mit einer CLI ausgeliefert, mit der Sie Testszenarien ausführen können, die als YAML beschrieben sind und einem bestimmten Schema folgen. Sie können dieses Schema in Ihrem Editor konfigurieren, um von IDE-interner Linting und Autovervollständigung zu profitieren (siehe Dokumentation für VSCode mit der YAML-Erweiterung).

Installieren Sie die CLI, indem Sie ein Binary-Release herunterladen oder mit Homebrew:

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

Beispielverwendung:

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

Beispiel-Szenariodefinitionsdateien

  • Detonieren über 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
  • Detonieren mit 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"
  • Detonieren mit AWS CLI-Befehlen
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"

Sie können die Testergebnisse in eine JSON-Datei ausgeben:

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"
  }
]

Standardmäßig werden Szenarien mit einer maximalen Parallelität von 5 ausgeführt. Sie können diese Einstellung mit dem Argument --parallelism erhöhen. Beachten Sie, dass bei Verwendung von entfernten SSH-Detonatoren jedes laufende Szenario eine neue SSH-Verbindung aufbaut.

Verwendung von Threatest programmatisch

Vollständige programmatische Nutzungsbeispiele finden Sie unter examples.

Testen von Datadog Cloud SIEM-Signalen, die durch Stratus Red Team ausgelöst werden

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())

Testen von Datadog Cloud Workload Security-Signalen, die durch das Ausführen von Befehlen über SSH ausgelöst werden

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())
Tool herunterladen