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
Strumenti/GitHubGitHub/jhatchi/nexacorp-dfir-inc-2026-001
Analisi delle VulnerabilitàNetwork ForensicsDigital ForensicsPenetration TestingThreat IntelligenceRilevamento IntrusioniApprendimento e FormazioneRisposta agli IncidentiLab e Pratica
GitHubjhatchi/nexacorp-dfir-inc-2026-001

NexaCorp-DFIR-INC-2026-001

Indagine DFIR + 7 regole Suricata su un'intrusione simulata di NexaCorp (vsftpd 2.3.4 CVE-2011-2523 + MITRE Caldera C2). Incarico individuale di 4 giorni (BeCode Brussels Mission 01). Report di 54 pagine, 10 riscontri, 7/7 regole validate tramite replay PCAP.

Vedi Repository
72 mesi faNon ancora revisionato

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

NexaCorp DFIR: INC-2026-001 - Compromissione dell'infrastruttura Linux

Indagine DFIR e ingegneria di rilevamento su un'intrusione simulata contro l'infrastruttura di NexaCorp. Svolta come incarico individuale di 4 giorni (bootcamp Blue & Red Team di BeCode Bruxelles, Missione 01). Il risultato è un report di 54 pagine (PDF) più 7 regole Suricata validate che intercettano l'incidente acquisito in replay PCAP.

ci Methodology Framework Detection CVE License LinkedIn

Questo repository documenta un incarico da analista SOC svolto nell'ambito del BeCode Cybersecurity Bootcamp (promozione 2025-2026). Ricostruisce un'intera intrusione partendo dalle evidenze di rete e dai log, e fornisce un set validato di regole di rilevamento Suricata. È il primo incidente della serie NexaCorp DFIR.

Contents

  • Avviso operativo
  • In sintesi
  • Contesto dell'incarico
  • Sintesi esecutiva
  • Riepilogo della kill chain
  • Come leggere questo report
  • Metodologia
  • Strumenti utilizzati
  • Riepilogo dei risultati
  • Ingegneria di rilevamento
  • Struttura del repository
  • Riproducibilità
  • Limiti noti
  • Serie NexaCorp DFIR
  • Riconoscimenti
  • Informazioni
  • Licenza

Avviso operativo

Questo è un esercizio di laboratorio su infrastrutture fittizie. NexaCorp è un cliente fittizio usato come scenario per la Missione 01 di BeCode Bruxelles. L'host compromesso è una VM Metasploitable 2 volutamente vulnerabile per l'addestramento sulla sicurezza, e l'impianto Caldera Sandcat fa parte del laboratorio per insegnare all'analista come appare il traffico di beacon di un vero intruso. Nessuna organizzazione, rete o persona reale è stata attaccata.

Tutti gli indirizzi IP, gli hostname e gli indicatori di compromissione pubblicati in questo report (172.16.50.10, 192.168.10.10, 10.40.0.200, blue11, mesdec, ecc.) sono artefatti locali di laboratorio, non threat intelligence del mondo reale. Non inserirli in un SIEM come IOC.

Pubblicazione autorizzata dal coach di laboratorio BeCode (Thomas B.) il 2026-05-17. La dichiarazione completa di riservatezza compare nel report dei risultati (sezione "Distribution and Classification").

In sintesi

Metadati dell'incaricoValore
RiferimentoBCC-2026 / INC-2026-001
Durata4 giorni (individuale)
FasiDFIR (forense) + ingegneria di rilevamento
Consegnato2026-05-15
StatoCompletato (Fase 1 + Fase 2)
Risultati dell'indagineValore
Risultati10 (3 CRITICI, 3 ALTI, 2 MEDI, 2 BASSI)
Tecniche MITRE ATT&CK mappate14
Cattura di rete analizzata5.194 pacchetti in 5h31m (943 KB PCAP)
Eventi Wazuh correlati397 dall'agente 020
Regole Suricata create7 (SID 9000001-9000007)
Regole validate tramite replay PCAP7/7 (40 alert in fast.log, 314 record in eve.json)

Contesto dell'incarico

Scenario (fittizio). NexaCorp, un cliente aziendale di medie dimensioni, ha contattato il blue team di BeCode Corp dopo che il monitoraggio interno ha segnalato traffico in uscita inatteso da uno dei loro server Linux interni. Il firewall registrava il traffico ma non ha generato alcun alert azionabile. Il consiglio di amministrazione aveva bisogno di una valutazione prima di decidere in merito alla divulgazione e alla notifica alle autorità di regolamentazione.

Mandato. Indagare sulla finestra temporale dell'incidente sospetto, caratterizzare il percorso di ingresso dell'attaccante e l'attività post-exploitation, valutare cosa lo stack di rilevamento esistente ha intercettato (e cosa ha mancato), e consegnare un piano di remediation prioritizzato. Una seconda fase ha aggiunto l'ingegneria di rilevamento: produrre regole IDS di rete pronte per la distribuzione che intercettino una recidiva in tempo reale.

Pacchetto di evidenze ricevuto dal cliente.

ArtefattoCoperturaNota
Cattura di rete (PCAP)dal 2026-05-09 20:08 al 2026-05-10 01:39 UTC (5h31m, 5.194 pacchetti)Inizia a metà incidente: l'impianto stava già facendo beaconing nel frame 1
Log di autenticazione dell'hostdal 2026-05-10 06:47 UTC in poiSolo post-incidente (gap di ~5 ore dopo la fine del PCAP)
Syslog dell'hostdal 2026-05-10 06:37 UTC in poiLa prima voce è syslogd restart, suggerisce un riavvio della VM
Esportazione alert SIEM (Wazuh)n/aIl file era una risposta HTTP 404, non dati. Recuperati 397 eventi in seguito tramite query diretta sul dashboard

Contesto formativo. Questo incarico è stato svolto durante il bootcamp Blue & Red Team di BeCode Bruxelles (novembre 2025 - settembre 2026) come Missione 01: un'indagine individuale con tempo limitato che simula un vero incarico di consulenza DFIR. L'infrastruttura di laboratorio, l'identità di NexaCorp e i valori IOC sono volutamente fittizi. La metodologia, gli strumenti e il formato del report seguono standard reali (NIST SP 800-61r2, SANS PICERL, MITRE ATT&CK).

Sintesi esecutiva

📄 Il report completo di 54 pagine è il deliverable canonico. Scarica il PDF (215 KB) oppure sfoglia il sorgente Markdown per grep/citazioni.

Nella serata del 2026-05-09 alle 22:53 UTC, un attaccante esterno (172.16.50.10) ha compromesso un server interno NexaCorp (192.168.10.10) sfruttando CVE-2011-2523, la backdoor presente in vsftpd 2.3.4 (una build documentata pubblicamente come compromessa dal luglio 2011). Una singola richiesta FTP USER terminante con :) ha attivato una root bind shell non autenticata sulla porta TCP/6200. L'attaccante ha eseguito 8 comandi di ricognizione in una sessione di 20 secondi (nessuna persistenza, nessuna esfiltrazione, nessun movimento laterale tramite questo vettore di accesso) e si è disconnesso.

Indipendentemente, è stato rilevato che lo stesso host eseguiva un agente MITRE Caldera "Sandcat" preesistente in /opt/caldera/sandcat (root, daemonizzato) che effettuava beaconing ogni 40-50 secondi in HTTP in chiaro verso 10.40.0.200:8888 per tutta la finestra di cattura. Questa è la "connessione in uscita anomala" inizialmente segnalata dal cliente e indica una compromissione precedente non rappresentata nel pacchetto di evidenze (l'implant era già attivo nel primo frame del PCAP).

Il SIEM Wazuh esistente ha ingerito 397 eventi dall'host target ma ha generato solo 4 alert ad alta severità (1,0% del totale), tutti classificati come brute-force generico (MITRE T1110). Nessuno ha identificato il payload dell'exploit CVE-2011-2523, la bind shell sulla TCP/6200 o il canale C2 di Caldera: il byte dell'exploit (USER baduser:)) non viene mai registrato da vsftpd stesso, e il SIEM non aveva telemetria di rete per vedere il resto. Le 7 regole Suricata consegnate nella Fase 2 chiudono tutte e tre le lacune.

IOC principali (limitati al laboratorio, non inserirli in un SIEM reale):

TipoValoreContesto
IP sorgente (attaccante)172.16.50.10exploit vsftpd, ricognizione multi-protocollo, brute-force SSH
IP target192.168.10.10Server interno compromesso (Metasploitable 2)
IP C210.40.0.200:8888Comando e controllo Caldera Sandcat
Porta backdoor6200/tcpRoot bind shell CVE-2011-2523
Payload exploitFTP USER terminante con :)Pattern di attivazione della backdoor

Riepilogo della kill chain

L'incidente acquisito ha due filoni distinti, ricostruiti dal PCAP:

  1. Servizio esposto: vsftpd 2.3.4, una build con una backdoor pubblicamente documentata (CVE-2011-2523), era raggiungibile sulla rete interna (Risultato I1).
  2. Exploit: una singola richiesta FTP USER terminante con :) ha attivato la backdoor (Risultato I3).
  3. Root bind shell: una root shell non autenticata si è aperta sulla TCP/6200; l'attaccante ha eseguito 8 comandi di ricognizione in una sessione di 20 secondi, poi si è disconnesso, senza persistenza o esfiltrazione tramite questo vettore (Risultato I4).
  4. C2 parallelo (preesistente): indipendentemente, un implant MITRE Caldera Sandcat stava già effettuando beaconing in HTTP in chiaro verso 10.40.0.200:8888 per tutta la finestra, prova di una compromissione precedente non rappresentata nel pacchetto di evidenze (Risultato I5).

Come leggere questo report

Il repository è organizzato in modo da poter entrare nel dettaglio giusto per il tuo ruolo:

Se sei un...Inizia da quiTempo
Reclutatore o hiring managerQuesto README + scorri la sintesi esecutiva del PDF5 min
Analista SOC che valuta l'idoneitàSezioni 5 (Detection Gap) e 8 (Detection Engineering) del PDF + detection/lab.rules20 min
Professionista DFIRPDF completo + notes/journal.md per il percorso investigativo60 min
Ingegnere di rilevamentodetection/lab.rules + detection/README.md per distribuzione e validazione tramite replay30 min
Chiunque voglia fare grep, citare o diffSorgente Markdown del reportquando serve

Deliverable canonico: il PDF in reports/. Il sorgente Markdown ha contenuto identico, mantenuto nel repository per ricercabilità e controllo versione.

Traccia investigativa: notes/journal.md è il quaderno di lavoro dell'analista (ipotesi testate e confutate, inventario delle evidenze, stato del piano). Completa il report formale mostrando come sono state raggiunte le conclusioni, non solo le conclusioni stesse.

Set di regole di rilevamento: detection/lab.rules contiene le 7 regole Suricata con la giustificazione completa per ogni keyword nei commenti inline. detection/README.md documenta il flusso di lavoro di validazione deploy-and-replay usato per confermare che ogni regola scatti sull'incidente acquisito.

Metodologia

L'incarico segue tre framework standard di settore combinati tra loro.

NIST SP 800-61r2: Guida alla gestione degli incidenti di sicurezza informatica

Il modello a 4 fasi del NIST (Preparation, Detection & Analysis, Containment / Eradication / Recovery, Post-Incident Activity) fornisce la struttura di alto livello. In questo incarico, la Fase 1 del deliverable corrisponde alla "Detection & Analysis" del NIST (forensics su PCAP, correlazione SIEM, ricostruzione della timeline dell'attaccante). La Fase 2 corrisponde alle "Lessons Learned" del NIST, tradotte in controlli preventivi (le 7 regole Suricata e la lista di raccomandazioni prioritizzate nella sezione 7 del report).

SANS PICERL: flusso investigativo tattico

PICERL (Preparation, Identification, Containment, Eradication, Recovery, Lessons Learned) è il processo di incident response del SANS. Applicato in questo incarico:

Fase PICERLQuesto incarico
PreparationAmbiente di laboratorio validato dal coach, pacchetto di evidenze approvato, scope definito (forense + ingegneria di rilevamento), timebox di 4 giorni
IdentificationTriage PCAP + correlazione eventi Wazuh + analisi basata su ipotesi (7 ipotesi, 1 confutata, 5 confermate, 1 inconcludente)
Containment / Eradication / RecoveryDocumentate come raccomandazioni P0 (quarantena dell'host, rimozione di vsftpd, pulizia dell'implant Caldera) ma non eseguite (fuori scope: solo analisi forense, non risposta attiva)
Lessons LearnedIngegneria di rilevamento della Fase 2: 7 regole Suricata + note di tuning + analisi dei falsi positivi (sezione 8 del report)

MITRE ATT&CK: mappatura delle tecniche

Ogni risultato è mappato su una o più tecniche MITRE ATT&CK per consentire al cliente di correlare questo incidente con il proprio modello di minaccia esistente. 14 tecniche distinte sono citate nei 10 risultati:

  • Ricognizione: T1595.002, T1592.002, T1589
  • Accesso iniziale: T1190 (Sfruttamento di applicazioni esposte al pubblico tramite CVE-2011-2523)
  • Esecuzione: T1059.004 (Unix Shell)
  • Scoperta: T1033, T1082, T1087.001, T1083, T1016, T1049, T1046
  • Accesso alle credenziali: T1110 (Brute Force)
  • Comando e controllo: T1071.001, T1102 (beacon Caldera Sandcat)
  • Escalation dei privilegi: T1078.003, T1548.003 (attività sudo sospetta)

La tabella completa delle tecniche per ogni risultato si trova nella sezione 4 (IOC) del report e negli approfondimenti per risultato nelle sezioni 3 e 5.

Riproducibilità

Ogni affermazione del report è riconducibile a un artefatto nel pacchetto di evidenze, con l'esatto filtro tshark, la query Wazuh o il comando di replay Suricata necessario per riprodurla. Vedi Allegato A (Comandi di riproducibilità) nel report e la sezione Riproducibilità qui sotto per un avvio rapido.

Strumenti utilizzati

Forensics di rete

  • tshark: CLI di Wireshark per triage PCAP, ricostruzione dei flussi TCP (-z follow,tcp,ascii), filtraggio dei protocolli ed estrazione dei campi
  • tcpreplay e tcprewrite: replay PCAP su un'interfaccia di monitoraggio live per la validazione delle regole Suricata, con regolazione MTU per adattarla alla ens19 del laboratorio (1450 byte)
  • Decoder Base64: per ricostruire i payload C2 del Caldera Sandcat (corpo del beacon e risposta dell'operatore)

IDS di rete / ingegneria di rilevamento

  • Suricata 6.0.4 (modalità afpacket, single-thread, Hyperscan disattivato in laboratorio): create, validate e ottimizzate le 7 regole di questo deliverable
  • suricata -T: validazione di configurazione e regole durante distribuzione e tuning
  • kill -USR2 $(pgrep suricata): ricaricamento live delle regole durante il tuning iterativo

SIEM e telemetria host

  • Wazuh (manager + dashboard): correlazione eventi, analisi della distribuzione delle severità, ricerca regole (rule.id 11452, 5551, ecc.), esportazione CSV dei 397 eventi
  • Utility di testo standard di Linux (grep, awk, jq): mining dei log e parsing JSON

Contesto di emulazione dell'avversario (citato, non gestito)

  • MITRE Caldera (agente Sandcat): presente sull'host target come implant C2 preesistente simulato oggetto di caratterizzazione

Framework di riferimento

  • NIST SP 800-61r2: Guida alla gestione degli incidenti di sicurezza informatica
  • SANS PICERL: flusso investigativo tattico
  • MITRE ATT&CK: attribuzione delle tecniche
  • Advisory CVE-2011-2523: riferimento backdoor vsftpd 2.3.4

Riepilogo dei risultati

I 10 risultati (da I1 a I10) sono documentati in dettaglio nel report dei risultati. Ogni voce include evidenze, comandi di riproducibilità, mappatura MITRE ATT&CK e indicazioni di remediation.

IDGravitàTitoloTecnica MITRE primaria
I1🔴 CRITICAServizio vulnerabile vsftpd 2.3.4 esposto sulla rete internaT1190
I2🟡 MEDIAFase di ricognizione lenta e prolungata precedente all'exploitT1595.002, T1589
I3🟠 ALTASfruttamento di CVE-2011-2523 tramite trigger backdoor USER con :)T1190
I4🔴 CRITICARoot bind shell non autenticata sulla TCP/6200, eseguiti 8 comandi di enumerazioneT1059.004, T1082
I5🔴 CRITICAImplant C2 MITRE Caldera Sandcat preesistente (indipendente dall'attacco FTP)T1071.001, T1102
I6🟢 BASSAEnumerazione servizi multi-protocollo (HTTP, SSH, SMTP, Telnet, MySQL)T1046
I7🟡 MEDIATentativi di brute-force SSH visibili in Wazuh, fuori dalla finestra di cattura PCAPT1110
I8🟠 ALTAAttività sudo anomala incluso 2 eventi di primo sudoT1548.003
I9🟠 ALTACopertura di rilevamento insufficiente del SIEM Wazuh per questa classe di attacco(gap difensivo)
I10🟢 BASSAI log di audit dell'host non coprono la finestra dell'incidente(gap di evidenze)

Distribuzione della gravità: 3 CRITICHE / 3 ALTE / 2 MEDIE / 2 BASSE

Ordine di lettura consigliato: inizia con I1 (il servizio vulnerabile), poi I3 e I4 (la vera catena di sfruttamento), quindi I5 (l'implant C2 parallelo e non correlato). I2 e I6 forniscono il contesto di ricognizione. Da I7 a I10 sono i risultati sulla postura difensiva (cosa il monitoraggio ha visto vs cosa ha mancato).

Ingegneria di rilevamento

La Fase 2 dell'incarico ha prodotto 7 regole Suricata (SID da 9000001 a 9000007) che coprono l'incidente acquisito da tre angolazioni: la firma dell'exploit, la shell post-exploit e il canale C2 parallelo. Ogni regola è validata tramite replay PCAP offline contro un'istanza Suricata 6.0.4 sulla workstation SOC.

Le 7 regole

SIDObiettivo di rilevamentoLivelloTecnica MITREAttivata nel replay
9000001Trigger backdoor vsftpd 2.3.4: argomento USER terminante con :)payload TCP/21T1190✅ 1/1
9000002Banner vulnerabile vsftpd 2.3.4 annunciato (220 (vsFTPd 2.3.4))payload TCP/21T1190✅ 30 (banner ripetuto a ogni sessione FTP)
9000003Connessione TCP in ingresso alla porta backdoor 6200 (solo SYN)TCP/6200T1059.004✅ 1/1 (connessione bind shell)
9000004Beacon dell'agente MITRE Caldera Sandcat (POST /beacon + UA Go-http-client/1.1)TCP+content (indipendente dalla porta)T1071.001, T1102✅ 1 (limitato a 1 per sorgente ogni 60s)
9000005Risposta del server C2 Caldera (HTTP Server: Python/3.10 aiohttp/3.13.4)TCP+content (indipendente dalla porta)T1071.001✅ 1 (limitato a 1 per sorgente ogni 300s)
9000006Enumerazione di percorsi admin HTTP da curl/Wget (/admin, /login, /phpmyadmin)payload TCP/80T1595.002, T1592.002✅ 3
9000007Enumerazione lenta di USER FTP (5+ tentativi in 30 min dalla stessa sorgente)TCP/21 + sogliaT1589, T1078.003✅ 3

Riepilogo della validazione

MetricaValore
Regole create7
Regole che si sono attivate correttamente nel replay PCAP7/7 ✅
Alert in fast.log (deduplicati, vista SOC)40
Record in eve.json (grezzi, pre-throttle)314
Versione Suricata6.0.4 (afpacket, single-thread)
Comando di replaytcpreplay --intf1=ens19 --topspeed attack_mtu.pcap
Validazione CImarkdownlint, tipografia e suricata -T controllo regole a ogni push

La differenza tra 40 e 314 riflette un throttling deliberato sulle regole 9000003, 9000004, 9000005, 9000006 per dare agli analisti SOC una visione operativa pulita, preservando al contempo il flusso di alert grezzo in eve.json per approfondimenti forensi.

Decisioni di progettazione degne di nota

Quattro correzioni iterative durante la distribuzione sono documentate in detection/README.md. Lezioni chiave:1. Rilevamento HTTP agnostico rispetto alla porta. Le regole 9000004 e 9000005 (Caldera) sono state inizialmente scritte con le parole chiave alert http e http.uri, che attivano il parser HTTP di Suricata solo sulla porta 80. Il C2 di Caldera gira sulla porta 8888, quindi il parser veniva bypassato e le regole non scattavano mai. Correzione: riscrittura in modalità TCP+content (alert tcp ... content:"POST /beacon"; content:"Go-http-client/1.1";) che corrisponde ai byte HTTP grezzi indipendentemente dalla porta. 2. flow:established inaffidabile durante la riproduzione di PCAP. Un handshake TCP catturato al di fuori della finestra di riproduzione lascia la macchina a stati del flusso in uno stato indeterminato. Rimuovere flow:established dalle regole Caldera le fa corrispondere sia in modalità live che in riproduzione. 3. Direzione di flusso esplicita per le regole solo-SYN. La regola 9000003 (porta 6200) ha generato SC_WARN_POOR_RULE: SYN-only ... w/o direction specified. Corretta aggiungendo flow:to_server,not_established. 4. HOME_NET vs EXTERNAL_NET in laboratori solo-RFC1918. Quando attaccante, target e C2 vivono tutti nello spazio privato, EXTERNAL_NET = !$HOME_NET diventa vuoto e le regole della forma $EXTERNAL_NET any -> $HOME_NET 21 non corrispondono mai. Correzione in laboratorio: usare any in entrambi. Correzione in produzione: restringere HOME_NET al solo segmento protetto.

Considerazioni sui falsi positivi

L'analisi dei falsi positivi per regola è documentata nella sezione 8.5 del report. La maggior parte delle regole comporta un rischio trascurabile in un ambiente ben delimitato; le regole 9000005 (header Server di aiohttp) e 9000006 (curl/Wget su percorsi amministrativi) richiedono ottimizzazione se sono presenti servizi Python interni benigni o script amministrativi.

Struttura del repository```text

NexaCorp-DFIR-INC-2026-001/ ├── README.md (this file) ├── LICENSE (MIT) ├── .gitignore ├── .github/ │ └── workflows/ │ └── ci.yml markdownlint + typography + Suricata rule check ├── reports/ │ ├── INC-2026-001_Findings_Report.pdf canonical 54-page deliverable │ └── INC-2026-001_Findings_Report.md same content, Markdown source ├── detection/ │ ├── lab.rules 7 Suricata rules (SID 9000001-9000007) │ └── README.md deploy + replay validation workflow ├── evidence-summary/ │ └── ioc-summary.md indicators of compromise (SIEM-ingestible) ├── methodology/ │ ├── attack-timeline.md incident timeline (UTC) │ └── attck-mapping.md MITRE ATT&CK mapping table └── notes/ └── journal.md analyst investigation journal (hypotheses, plan, IOCs, timeline)

root@kitploit:~
**Classificazione dei file:**

| Percorso | Ruolo | Destinatario |
|---|---|---|
| `reports/*.pdf` | Deliverable canonico, report formale | Cliente, recruiter, auditor |
| `reports/*.md` | Stesso contenuto, sorgente grep-friendly | Chiunque citi o faccia diff |
| `detection/lab.rules` | Ruleset Suricata pronto per la produzione | SOC / detection engineer |
| `detection/README.md` | Guida al deployment e validazione tramite replay | Onboarding detection engineer |
| `evidence-summary/ioc-summary.md` | Indicatori di compromissione, per categoria | SOC / threat hunting |
| `methodology/attack-timeline.md` | Timeline dell'incidente (UTC) | Professionista DFIR |
| `methodology/attck-mapping.md` | Tabella di mapping MITRE ATT&CK | DFIR / detection engineer |
| `notes/journal.md` | Quaderno di lavoro dell'indagine | Professionista DFIR che studia il metodo |
| `.github/workflows/ci.yml` | Validazione automatizzata di markdownlint, tipografia e regole Suricata (`suricata -T`, eseguita quando `detection/*.rules` è presente) al push | CI |

## Riproducibilità

Ogni affermazione nel report dei risultati è riconducibile a un artefatto nel pacchetto di evidenze. Il PCAP stesso non viene ridistribuito (proprietà del laboratorio BeCode), ma i comandi e le query sono documentati affinché chiunque abbia una propria copia possa riprodurre l'analisi.

### Riproduci i risultati principali (analisi PCAP)

Richiede `tshark` (CLI di Wireshark) e il `attack.pcap` originale:```bash
# 1. PCAP overview
tshark -r attack.pcap -q -z io,stat,0

# 2. TCP conversations (reveals attacker, target, C2)
tshark -r attack.pcap -q -z conv,tcp | head -30

# 3. Confirm vsftpd 2.3.4 banner exposure (Finding I1)
tshark -r attack.pcap -Y "ftp && ip.src == 192.168.10.10" \
  -T fields -e frame.time -e ftp.response.code -e ftp.response.arg | head -5

# 4. Find the CVE-2011-2523 exploit payload (Finding I3)
tshark -r attack.pcap -Y 'ftp.request.command == "USER"' \
  -T fields -e frame.time -e ftp.request.arg

# 5. Reconstruct the root shell session on TCP/6200 (Finding I4)
tshark -r attack.pcap -q -z follow,tcp,ascii,70

# 6. Reconstruct the Caldera C2 beacon (Finding I5)
tshark -r attack.pcap -q -z follow,tcp,ascii,6 | head -50

Riprodurre la convalida delle regole (Suricata replay)

Richiede Suricata 6.0.x, tcpreplay, e un'interfaccia monitorata (ens19 in laboratorio; sostituisci la tua):```bash

1. Install the ruleset

sudo cp detection/lab.rules /etc/suricata/rules/learner/lab.rules

2. Hot-reload Suricata without restart

sudo kill -USR2 $(pgrep -f suricata) sleep 5

3. Clear the alert log for a clean baseline

sudo truncate -s 0 /var/log/suricata/fast.log

4. Replay the PCAP at top speed

sudo tcpreplay --intf1=ens19 --topspeed attack_mtu.pcap

5. Count alerts per rule (expect 7 distinct SIDs)

sudo grep -oE '[1:[0-9]+:' /var/log/suricata/fast.log | sort | uniq -c | sort -rn

root@kitploit:~
Output previsto (dopo un replay completo):```text
     30 [1:9000002:    (vsftpd banner repeated per session)
      3 [1:9000007:    (FTP USER enumeration threshold)
      3 [1:9000006:    (HTTP admin path enumeration)
      1 [1:9000005:    (Caldera C2 response)
      1 [1:9000004:    (Caldera Sandcat beacon, throttled)
      1 [1:9000003:    (Backdoor port 6200 SYN)
      1 [1:9000001:    (vsftpd USER smiley exploit)

7/7 regole scattano correttamente. Il pacchetto completo di prove (fast.log, eve.json, configurazione di throttling, snapshot della versione di Suricata) è elencato nell'Allegato E del rapporto dei riscontri.

Limiti noti

  • Il pacchetto di prove inizia a metà incidente. Il PCAP inizia alle 2026-05-09 20:08 UTC, ma l'agente Caldera Sandcat sta già facendo attivamente beaconing nel frame 1. Il compromesso iniziale che ha installato l'impianto è avvenuto in precedenza e non è rappresentato nei dati. Le conclusioni sull'attività precedente all'impianto sono estrapolate dai campi full_log di Wazuh, non osservate direttamente.
  • I log di audit dell'host non si sovrappongono alla finestra dell'attacco. I auth.log e syslog locali iniziano ~5 ore dopo la fine del PCAP, con la prima voce che è syslogd restart (probabile riavvio della VM). Non sono stati forniti file di log ruotati. Questo è documentato come Finding I10.
  • L'ambito era forensic + detection engineering, non live response. Il contenimento, l'eradicazione, l'acquisizione forense (immagine della memoria, immagine del disco) e l'enumerazione della persistenza sono documentati come raccomandazioni P0 nel report, ma non sono stati eseguiti: l'intervento non aveva accesso live all'host. Sarebbe necessario un intervento di follow-up per chiudere questi punti aperti.
  • Le 7 regole Suricata rilevano questa specifica firma di incidente. Un attaccante sofisticato può eluderle modificando il pattern di byte dell'exploit (terminatori null-byte alternativi sull'argomento USER), ricompilando Caldera con un User-Agent diverso o spostando il C2 su HTTPS cifrato (l'analisi dei metadati TLS come JA3/JA4 sarebbe il fallback). Le regole sono appropriate per lo scenario di minaccia catturato; la strategia di rilevamento a lungo termine dovrebbe aggiungere rilevamenti comportamentali e basati sui metadati.
  • Gap di ingestion Wazuh durante l'indagine. La pipeline di ingestion dei log SIEM è stata temporaneamente non disponibile fino al 2026-05-11 11:39 UTC (a metà indagine, ripristinata dal coach del lab). I 4 alert ad alta severità appaiono quindi nella dashboard con timestamp di ingestion (11 maggio 13:17-13:28) piuttosto che con i timestamp reali dell'incidente (9 maggio 21:00-22:53), il che distorce la tempistica apparente degli eventi di correlazione.
  • HOME_NET è stato impostato su any per il lab. In una distribuzione NexaCorp reale, HOME_NET deve essere limitato al solo segmento protetto (es. 192.168.10.0/24) in modo che EXTERNAL_NET = !$HOME_NET copra correttamente lo spazio dell'attaccante. Le regole così consegnate sono ottimizzate per il lab e necessitano di questa singola modifica di configurazione prima dell'uso in produzione.
  • Timebox di 4 giorni: restano 2 follow-up. Estrarre full_log per tutti gli 80 eventi sudo per identificare quali account utente li hanno attivati (e i timestamp relativi all'exploit FTP), e rivedere i 12 successi di autenticazione SSH per distinguere le sessioni admin legittime da quelle controllate dall'attaccante. Entrambi sono documentati nell'allegato "Open Questions" del report.

Serie DFIR NexaCorp

  • INC-2026-001: questo repository
  • INC-2026-002: privilege escalation e persistenza (Tor SSH, SUID, account backdoor)
  • INC-2026-003: valutazione cross-incident del mese 1
  • INC-2026-004: SQL injection (portale web)
  • INC-2026-005: OS command injection e web shell (portale web)
  • INC-2026-006: stored XSS e session hijacking (portale web)
  • INC-2026-007: IDOR e controllo degli accessi non corretto (NexaPortal); capstone del Mese 2
  • INC-2026-008: ricognizione AD e Kerberoasting (primo incidente del Mese 3)

Ringraziamenti

  • Thomas B. (lab coach di BeCode): progettazione dello scenario, fix di ingestion Wazuh a metà indagine, autorizzazione alla pubblicazione per uso in portfolio.
  • MITRE per il framework Caldera che ha alimentato l'impianto C2 simulato e per la knowledge base ATT&CK usata per mappare ogni riscontro.
  • Suricata project per il motore che ha reso le 7 regole implementabili in meno di 30 minuti.

Informazioni

Intervento DFIR individuale svolto durante il bootcamp Blue & Red Team di BeCode Brussels (novembre 2025 a settembre 2026), Mission 01, il 2026-05-15.

Author: Johan-Emmanuel Hatchi (LinkedIn).

Aperto a opportunità di tirocinio in cybersecurity a partire da settembre 2026 in Belgio. Cerco ruoli SOC / DFIR / detection engineering in cui questo tipo di lavoro investigativo end-to-end (forensics su PCAP, correlazione SIEM, scrittura di regole IDS, reportistica formale per il cliente) rientri nel perimetro.

Licenza

MIT, 2026 Johan-Emmanuel Hatchi.

Le regole Suricata in detection/lab.rules e il testo del report sono entrambi rilasciati sotto la stessa licenza MIT: liberi di essere copiati, adattati e ridistribuiti con attribuzione. Il PCAP, l'infrastruttura di laboratorio e i briefing dell'intervento restano di proprietà di BeCode Brussels e non vengono ridistribuiti.

Scarica lo strumento