Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
threatest — CLI e framework Go per test end-to-end di regole di rilevamento delle minacce. Detona tecniche di attacco e verifica gli alert in piattaforme di sicurezza come Datadog ed Elastic Security. | Kitploit
Strumenti/GitHubGitHub/datadog/threatest
Strumenti DifensiviPenetration TestingRed Teaming
GitHubdatadog/threatest

threatest

CLI e framework Go per test end-to-end di regole di rilevamento delle minacce. Detona tecniche di attacco e verifica gli alert in piattaforme di sicurezza come Datadog ed Elastic Security.

Vedi RepositorySito web
345272 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Threatest

unit tests static analysis

Threatest

Threatest è un CLI e un framework Go per testare end-to-end il rilevamento delle minacce.

Threatest ti permette di detonare una tecnica di attacco e verificare che sia stato generato l'avviso previsto nella tua piattaforma di sicurezza preferita.

Leggi l'articolo di annuncio sul blog: https://securitylabs.datadoghq.com/articles/threatest-end-to-end-testing-threat-detection/

Concetti

Detonatori

Un detonatore descrive come e dove viene eseguita una tecnica di attacco.

Detonatori supportati:

  • Esecuzione locale di comandi
  • Esecuzione di comandi SSH
  • Stratus Red Team
  • Detonatore AWS CLI
  • Detonatore AWS (solo a livello programmatico, non funziona con la CLI)

Matcher di avvisi

Un matcher di avvisi è un'integrazione specifica della piattaforma in grado di verificare se è stato attivato un avviso previsto.

Matcher di avvisi supportati:

  • Segnali di sicurezza Datadog
  • Segnali di sicurezza Elastic

Correlazione tra detonazione e avviso

A ogni detonazione viene assegnato un UUID. Questo UUID viene riflesso nella detonazione e utilizzato per garantire che l'avviso corrispondente corrisponda esattamente a questa detonazione.

Il modo in cui questo viene fatto dipende dal detonatore; ad esempio, Stratus Red Team e l'AWS Detonator lo iniettano nello user-agent; il detonatore SSH utilizza un processo padre contenente l'UUID.

Utilizzo

Tramite CLI

Threatest include una CLI che puoi utilizzare per eseguire scenari di test descritti come YAML, seguendo uno schema specifico. Puoi configurare questo schema nel tuo editor per beneficiare del linting e del completamento automatico all'interno dell'IDE (vedi documentazione per VSCode utilizzando l'estensione YAML).

Installa la CLI scaricando una versione binaria o con Homebrew:

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

Esempio di utilizzo:

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

Esempi di file di definizione di scenari

  • Detonazione tramite 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
  • Detonazione 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"
  • Detonazione tramite comandi 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"

Puoi esportare i risultati dei test in un file 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"
  }
]

Per impostazione predefinita, gli scenari vengono eseguiti con un parallelismo massimo di 5. Puoi aumentare questa impostazione usando l'argomento --parallelism. Nota che quando si utilizzano detonatori SSH remoti, ogni scenario in esecuzione stabilisce una nuova connessione SSH.

Utilizzo programmatico di Threatest

Vedi esempi per un esempio completo di utilizzo programmatico.

Testare i segnali Datadog Cloud SIEM attivati da 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())

Testare i segnali Datadog Cloud Workload Security attivati dall'esecuzione di comandi su 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())
Scarica lo strumento