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
brawl-public-game-001 — Dati da un esercizio di emulazione avversaria automatizzata BRAWL | Kitploit
Strumenti/GitHubGitHub/mitre/brawl-public-game-001
Frameworks per Penetration TestingDigital ForensicsSicurezza CloudThreat IntelligenceApprendimento e FormazioneRed TeamingRisposta agli IncidentiAnalisi dei LogAttacco AvversarioLab e Pratica
GitHubmitre/brawl-public-game-001
215398 anni 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

brawl-public-game-001

Dati da un esercizio di emulazione avversaria automatizzata BRAWL

Vedi Repository

BRAWL

Uno dei problemi impegnativi per i ricercatori di cybersecurity che sviluppano capacità di rilevamento e risposta è trovare un ambiente realistico in cui testare le loro ipotesi e capacità.

Il metodo più economico è testare le capacità su una piccola rete di laboratorio. Ma questo ambiente manca della scala di una rete aziendale reale e del rumore degli ambienti reali che rendono il rilevamento molto più difficile. In molti modi, l'ambiente migliore sarebbe testare su più reti aziendali con un attaccante controllato ma realistico e rumore reale da utenti, amministratori di sistema e software/dispositivi di terze parti. La sfida del test in questo ambiente è che è costoso e in alcuni scenari ad alto rischio.

BRAWL cerca di creare un compromesso creando un sistema per generare automaticamente una rete aziendale all'interno di un ambiente cloud. OpenStack è l'unico ambiente attualmente supportato, ma è progettato in modo da supportare facilmente altri ambienti cloud in futuro. BRAWL costruisce anche una rete di analisi contenente una pipeline di acquisizione ed elaborazione dei dati utilizzando LogStash e Kafka. Come parte della rete di analisi, crea un sistema di archiviazione e ricerca degli eventi utilizzando Elasticsearch e Kibana. BRAWL avvia una "Game Board" di rete aziendale con immagini Windows. Queste immagini hanno Microsoft Sysmon e altri sensori già installati e configurati per inoltrare i log nel framework di acquisizione dati.

BRAWL ha anche il concetto di bot, che possono essere Red, Blue o Gray. I bot Red sono offensivi, i bot Blue sono difensivi e i bot Gray emulano il comportamento legittimo degli utenti per fornire rumore che renda il rilevamento più difficile. Quando un utente vuole testare ipotesi di ricerca, implementa un bot BRAWL. Il bot BRAWL si registra con il Controller BRAWL, che orchestra poi le partite tra i bot BRAWL sulla Game Board.

Rilascio dei dati

Nota: A causa di problemi con le dimensioni dei file e le quote di GitHub, stiamo inserendo tutti i file in un file zip invece di lasciarli come testo normale nel repository git. Tutti i dati sono nel file

Questo rilascio consiste in alcuni dati di un prototipo BRAWL. Abbiamo creato una piccola rete aziendale, descritta di seguito. Abbiamo quindi eseguito una singola partita utilizzando il progetto di ricerca MITRE CALDERA come bot rosso.

CALDERA è un progetto di ricerca correlato di MITRE che automatizza l'attività di emulazione degli avversari basandosi sulle informazioni nel modello Adversarial Tactics, Techniques, and Common Knowledge (ATT&CK). Implementa una serie di tattiche e tecniche ATT&CK e utilizza un sistema di pianificazione (https://dl.acm.org/citation.cfm?id=2991111) per automatizzare l'attuazione di tali tecniche e generare un comportamento avversario post-compromissione all'interno di una rete aziendale.

Questi dati sono rilasciati sotto la Creative Commons BY License

Descrizione della rete e dei sensori

La nostra piccola rete aziendale è una rete piatta composta da un Domain Controller (dc.brawlco.com) e 16 workstation. Ogni PC ha il nome dell'utente principale nel nome del PC (ad es. l'utente beane accede tipicamente a beane-pc). Tale utente dispone di privilegi di amministratore locale sul computer.

Tutti i PC eseguono Windows 8.1. Il Domain Controller esegue Windows Server 2012 R2.

Sui PC Windows 8, abbiamo apportato modifiche per abilitare WDigest per mantenere le password in chiaro nella memoria di LSASS utilizzando il seguente comando del registro: reg ADD HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\ /v UseLogonCredential /t REG_DWORD /d 1 /F

Descrizione dello scenario

Per questo esercizio, CALDERA è stato l'unico bot BRAWL partecipante. Sebbene concettualmente BRAWL possa essere utilizzato per testare una varietà di comportamenti degli aggressori e rilevamenti, molti degli sforzi di ricerca di MITRE seguono una filosofia di "assunzione di violazione". Pertanto, diamo a CALDERA un punto di partenza come amministratore locale su un computer della rete all'inizio dell'esercizio.

Inoltre, senza un bot grigio che esegua accessi su host diversi, la Game Board BRAWL è sterile dal punto di vista delle credenziali che possono essere rubate e utilizzate dai bot rossi. Per consentire il movimento laterale, il Controller BRAWL utilizza psexec per creare eventi di accesso su host con le credenziali di altri utenti della rete.

CALDERA ha eseguito le seguenti tecniche ATT&CK durante l'esercizio:

  • Account Discovery
  • Credential Dumping
  • Local Network Configuration Discovery
  • Permission Groups Discovery
  • PowerShell
  • Registry Run Keys / Start Folder
  • Remote File Copy
  • Remote System Discovery
  • Windows Admin Shares
  • Windows Management Instrumentation

Dati

Ci sono cinque tipi di dati in questo repository. Ciascuno è contenuto nel proprio file nella cartella data/.

BRAWL Shared Format

I bot rossi e i bot blu sono incoraggiati a registrare informazioni sulle loro attività o rilevamenti nel BRAWL Shared Format (BSF). L'obiettivo è rendere più facile confrontare le azioni/detezioni del bot blu con le azioni del bot rosso.

Il formato è attualmente in fase di sviluppo e potrebbe cambiare nei futuri set di dati.

I campi per BSF sono descritti di seguito nella sezione Dettaglio delle fonti dati.

Note sul tempo

Diverse fonti di eventi in BRAWL gestiscono il tempo in modo diverso. Il tempo è o il momento in cui un evento ha raggiunto il nostro framework di acquisizione dei log, il momento in cui l'evento è stato generato sull'host/endpoint, o il tempo registrato da un bot sulla rete. In generale, questi tempi dovrebbero essere entro pochi millisecondi l'uno dall'altro. Quando possibile, il framework di acquisizione dei log utilizza il tempo dell'evento memorizzato nell'evento invece del tempo in cui l'evento raggiunge i nodi di acquisizione. La tabella seguente dettaglia il metodo utilizzato per ogni tipo di dato.

Dettaglio delle fonti dati

game_metadata

sysmon

Stiamo usando Sysmon v3.11. sysmon_config.txt contiene l'output del comando sysmon -c che dettaglia la nostra configurazione.

Sysmon genera molti tipi diversi di eventi, che mappano a diverse coppie CAR oggetto/azione. I campi per ogni tipo sono spiegati in maggior dettaglio sul sito CAR: https://car.mitre.org/wiki/Data_Model

Le coppie oggetto/azione generate da Sysmon nella nostra configurazione sono:

  • driver/load
  • file/attr_modify
  • flow/start
  • module/load
  • process/create
  • process/terminate
  • thread/create
  • threat/remote_create

Utilizzare il modello dati CAR per determinare i nomi dei campi e la semantica per i campi contenuti in data_model.fields.* per ogni coppia oggetto/azione sopra.

win_event

computer_properties

Questi dati sono stati raccolti periodicamente utilizzando il modulo unified_json.ps1 di MITRE da PowerShell Utilities for Security Situational Awareness. Il campo userinfo può essere utile per determinare quali credenziali potrebbero essere state compromesse se un dump di credenziali come Mimikatz è stato eseguito sul sistema.

bsf

Gli oggetti all'interno del campo array bsf sono di tipo operation, step o event. Tutti gli oggetti hanno un campo nodetype che può essere utilizzato per determinare il tipo di oggetto.

Oggetto BSF event

Informazioni Oggetto/Azione/Campi per gli Oggetti Evento

Puoi leggere ulteriori informazioni sulla semantica dei Campi Obbligatori e Opzionali trovando l'oggetto associato nel Modello Dati CAR

Oggetto BSF step

Gli oggetti step collegano uno o più eventi in un raggruppamento di attività di livello superiore. Gli oggetti step offrono anche un posto per gli emettitori BSF per etichettare l'attività con etichette ATT&CK.

Oggetto BSF operation

Gli oggetti operation collegano più oggetti step tra loro. Tuttavia non sono presenti oggetti Operation in questo set di dati.

Note generali su BSF

Descrizioni e note per i campi degli eventi (in particolare gli "Almeno uno tra"):1. Campi temporali.

  1. Tempo puntuale. Attività come la cancellazione di un file sono essenzialmente puntuali, con un singolo momento di occorrenza che può essere fornito tramite il campo time. Tuttavia, è possibile che né il team red né il team blue conoscano questo timestamp esatto. Ad esempio, i bot red possono generare un processo per compiere un'azione in una finestra temporale, ma il momento esatto in cui l'azione avviene è sconosciuto. I bot blue possono utilizzare sensori che comportano ritardi di rilevamento. Pertanto, BSF fornisce anche due campi temporali happened_after e happened_before come parentesi sinistra e destra rispettivamente, che definiscono i limiti di un intervallo di incertezza per l'evento reale. Almeno uno di questi tre campi (cioè time, happened_after, happened_before) deve essere riportato con ogni oggetto event. Gli altri campi sono opzionali, ma dovrebbero essere riportati se noti. In particolare, i bot sono incoraggiati a riportare un valore per "time" che sia la loro miglior stima, anche se non hanno un orario esatto.
  2. Tempo durativo. Attività come un flusso sono di natura durativa, coprendo un periodo di tempo. BSF gestisce generalmente le attività durative registrando i punti finali del loro intervallo come tempi puntuali. Pertanto, un evento di inizio flusso richiede uno di {time, happened_after, happened_before}, così come l'evento di fine flusso. Tuttavia, alcuni sensori blue possono rilevare un'attività durativa a metà del suo corso (ad esempio, uno scanner che analizza periodicamente lo stato di tutti i processi e determina che uno è diventato malevolo). Per i flussi, le rilevazioni a metà corso possono essere segnalate come "flow, message, time, ... (altri campi)". Per i processi, le rilevazioni a metà corso possono essere segnalate come "process, scanned, time, ... (altri campi)".

Appendice

Host sulla nostra rete BRAWL per questa partita:

  • beane-pc.brawlco.com
  • colgan-pc.brawlco.com
  • dc.brawlco.com
  • escue-pc.brawlco.com
  • fulco-pc.brawlco.com
  • harley-pc.brawlco.com
  • kressierer-pc.brawlco.com
  • mims-pc.brawlco.com
  • minahan-pc.brawlco.com
  • ostermeyer-pc.brawlco.com
  • peele-pc.brawlco.com
  • platten-pc.brawlco.com
  • santilli-pc.brawlco.com
  • sespinosa-pc.brawlco.com
  • sounder-pc.brawlco.com
  • teston-pc.brawlco.com
  • zissler-pc.brawlco.com
Scarica lo strumento
Tipo di datoDescrizione
game_metadataDati che descrivono lo scenario BRAWL
sysmonDati raccolti da Sysmon in esecuzione su ciascuna delle workstation
win_eventRegistri eventi di Windows
computer_propertiesDati raccolti da script personalizzati che forniscono alcune informazioni sui computer della rete
bsfAzioni dei bot rossi nel BRAWL Shared Format (BSF)
Fonte datiNote sul tempo
computer_propertiesdal campo time
game_metadatatempo in cui raggiunge il framework di acquisizione
sysmondal campo utc_time
win_eventestratto dal tempo dell'evento di Windows
bsfIl campo @timestamp è il tempo in cui raggiunge il framework di acquisizione. Tuttavia, i campi BSF relativi al tempo (ad es. happened_after,happened_before, ecc.) sono i tempi in cui gli eventi sono iniziati o terminati in base al tempo sul server di comando e controllo di CALDERA.
Nome campoDescrizione
@timestampTempo relativo all'evento. Vedere nota sul tempo sopra.
@uuidID evento univoco
game_idL'ID univoco della partita per questo esercizio.
typeTipo di evento. Sempre game_metadata per questi record
hostsUn elenco di host che facevano parte dell'esercizio e "in bounds" per il bot rosso
randomization_seedUn seme che può essere utilizzato dai partecipanti bot BRAWL per implementare un comportamento "casuale" che sia lo stesso tra le esecuzioni di BRAWL
starting_hostHost su cui il bot rosso inizia.
Nome campoDescrizione
@timestampTempo relativo all'evento. Vedere nota sul tempo sopra.
@uuidID evento univoco
typeTipo di evento. Sempre sysmon per questi record
game_idL'ID univoco della partita per questo esercizio.
data_model.objectL'oggetto del CAR su cui si agisce.
data_model.actionL'azione del CAR eseguita sull'oggetto. Questo campo è un array perché alcuni eventi possono corrispondere a più di un'azione nel modello dati CAR. Un esempio di ciò sono gli eventi di creazione di thread remoti.
data_model.fields.*I campi rilevanti per la coppia oggetto/azione data.
game_idL'ID univoco della partita per questo esercizio.
hostNome host da cui è stato registrato l'evento.
Nome campoDescrizione
@timestampTempo relativo all'evento. Vedere ogni evento qui sotto per i dettagli su come viene calcolato
@uuidID evento univoco
typeTipo di evento. Sempre win_event per questi record
game_idL'ID univoco della partita per questo esercizio.
hostHost che ha registrato l'evento
rawLa voce del registro eventi di Windows nel suo formato XML grezzo
data_model.fields.log_nameNome del log di Windows (Application, System o Security)
data_model.fields.log_typeIl tipo di log per un dato log_name
Nome campoDescrizione
@timestampTempo relativo all'evento. Vedere nota sul tempo sopra.
@uuidID evento univoco
typeTipo di evento. Sempre computer_properties per questi record
game_idL'ID univoco della partita per questo esercizio.
hostNome del computer su cui lo script è stato eseguito
netinfoRaccolta di oggetti netinfo
netinfo.DNSServersRaccolta di resolver DNS configurati per questo host
netinfo.GatewayGateway per questa interfaccia
netinfo.IPAddressIndirizzi IP per questa interfaccia
netinfo.IsDHCPEnabledDHCP abilitato?
netinfo.MACAddressIndirizzo MAC per questa interfaccia
netinfo.SubnetMaskMaschera di sottorete per i rispettivi indirizzi IP
pcinfoOggetto che descrive le informazioni sul PC
pcinfo.AssetTagAssetTag se accessibile
pcinfo.CPUInformazioni sulla CPU
pcinfo.ChassisTypeNon utilizzato in BRAWL. "Unknown"
pcinfo.DisksInformazioni sul disco/dischi collegati
pcinfo.DomainNameDominio di cui il sistema fa parte
pcinfo.LastBootUpTimeOra in cui il sistema è stato avviato
pcinfo.MemoryInformazioni sulla memoria del sistema
pcinfo.OSInformazioni sul sistema operativo in esecuzione
pcinfo.SerialNumberNumero di serie HW
timeOra in cui lo script è stato eseguito
userinfoArray contenente oggetti userinfo che descrivono gli utenti che hanno effettuato l'accesso al sistema dall'ultimo avvio
userinfo.AuthenticationPackagePacchetto di autenticazione utilizzato per l'autenticazione
userinfo.DomainDominio (o PC locale) a cui appartiene l'account
userinfo.LogonIdLogonId
userinfo.LogonTimeOra dell'accesso
userinfo.LogonTypeCostanti di tipo di accesso di Windows
userinfo.LogonTypeNameDescrizione del LogonType
userinfo.UserNameNome utente del principal che accede
Nome campoDescrizione
@timestampTempo relativo all'evento. Vedere nota sul tempo sopra.
@uuidID evento univoco
typeTipo di evento. Sempre bsf_events per questi record
game_idL'ID univoco della partita per questo esercizio.
bsfArray di eventi BSF che descrivono l'attività del bot. I campi per questo array sono descritti in maggior dettaglio di seguito.
bsf_versionVersione dello schema BSF utilizzato per l'array di eventi bsf
producer_idBot che ha prodotto questi dati BSF.
CampoDescrizione
idUn identificatore univoco per ogni evento.
nodetypeIl tipo di questo nodo. Uno tra: {"operation", "step", "event"}.
hostNome host o IP in cui questo evento è stato attuato / rilevato.
timeNota: Almeno uno dei seguenti tre campi temporali (cioè "time", "happened_after" o "happened_before") deve essere riportato. "time" è particolarmente desiderato; tutti e tre sono incoraggiati. Si prega di vedere la nota 1 nelle Note generali di seguito.

Nota sul formato del tempo: Tutte le informazioni temporali devono essere in formato ISO 8601. Più specificamente come: 'yyyy-mm-ddThh:nn:ss.llll00'. Dove y è anno, m è mese, d è giorno, h è ora, n è minuto, s è secondo, l è millisecondo (e ci sono due zeri finali). Ad esempio: 2017-02-22T18:38:14.060000

Opzionale: Stima del momento in cui questo evento è avvenuto.
happened_afterOpzionale: Un limite inferiore ("parentesi temporale sinistra") sull'incertezza nel tempo.
happened_beforeOpzionale: Un limite superiore ("parentesi temporale destra") sull'incertezza nel tempo.
confidenceOpzionale: Consente ai bot blu di comunicare la confidenza (un numero reale tra 0.0 e 1.0) nell'associazione di questo evento con un attacco.
objectOggetto su cui si agisce; vedere la tabella qui sotto per i valori consentiti. Liberamente basato sul Modello Dati CAR
actionAzioni per un dato oggetto. Liberamente basato sul Modello Dati CAR
specific_field_1 .. NDa 1 a N attributi descrittivi (vedere sotto). Liberamente basato sul Modello Dati CAR
OggettoAzioneCampi obbligatoriCampi opzionali
processcreate
terminate
scanned
Almeno uno tra:
     {pid, command_line, exe, image_path}
fqdn
hostname
md5_hash
parent_exe
parent_image_path
ppid
sha1_hash
sha256_hash
sid
signer
user
flowstart
end
message
Almeno uno tra:
    {src_hostname,src_ip}
Almeno uno tra:
    {dest_hostname, dest_ip}
Almeno uno tra:
     {src_port, dest_port, protocol}
content
dest_fqdn
exe
flags
fqdn
hostname
image_path
packet_count
pid
ppid
proto_info
src_fqdn
user
filecreate
delete
modify
read
timestomp
write
file_pathcompany
file_name
fqdn
hostname
image_path
md5_hash
pid
ppid
sha1_hash
sha256_hash
signer
user
Nome campoDescrizione
idUn identificatore univoco per i passaggi dell'operazione.
nodetypeIl tipo di questo nodo. Uno tra: {"operation", "step", "event"}.
attack_infoUn array di oggetti tecnica (definiti nella tabella direttamente sotto), che descrivono come questo passaggio si relaziona alla tassonomia ATT&CK. Perché un array? Sebbene una singola tecnica spesso descriva un passaggio e tutti i suoi eventi, in alcuni casi possono essere implementate più tecniche.
attack_info.technique_idUn ID tecnica ATT&CK (ad es., "T1059") che descrive il meccanismo di attacco che il rosso ha impiegato in questo passaggio e nei suoi eventi referenziati.
attack_info.technique_nameUna stringa leggibile che descrive questa tecnica (ad es., "Command-Line Interface").
attack_info.tacticUn array di una o più etichette di tattica ATT&CK che descrivono l'intento/strategia di questa tecnica. (Si noti che una singola tecnica può esercitare più tattiche.) Ad esempio: ["Lateral Movement", "Execution"]
descriptionOpzionale: Note o annotazioni per questo passaggio vanno qui.
eventsUn array di ID degli oggetti event che compongono questo passaggio.
  • Identificazione del processo. Idealmente, un pid viene utilizzato per identificare un processo, tuttavia il pid non è sempre noto, specialmente per il bot red. In alternativa, è possibile fornire la command_line che ha generato il processo, o l'exe / image_path che è stato eseguito.
  • Porte di flusso. Le porte sorgente e destinazione nei flussi possono essere descritte tramite un nome host o un indirizzo IP.
  • In questo set di dati, l'unico bot partecipante è CALDERA, quindi gli unici record BSF presenti provengono da CALDERA.