Capitolo: Gibson Cap 6 — Threat Actors, Malware & Vulnerability Management Concetti: packet crafting, exploit vs payload, worm propagation, layer 3/4
Obiettivo#
Costruire pacchetti di rete a mano con scapy e osservarli in Wireshark. Capire come un worm (es. SQL Slammer) mandava un singolo pacchetto UDP con exploit + payload integrati. Niente exploit reali — solo la meccanica del crafting.
Security angle: ogni tool di attack simulation (Metasploit, hping3, nmap scripting) costruisce pacchetti custom sotto il cofano. Capire come si costruisce un pacchetto a mano ti fa capire cosa fanno quei tool e cosa vedi nel pcap quando analizzi un attacco.
Ambiente#
- Kali (192.168.64.200): manda i pacchetti
- Ubuntu (192.168.64.3): riceve i pacchetti, opzionale
- Wireshark: su Kali o Mac per osservare il traffico
Parte 1 — Installazione e primo pacchetto#
Verifica che scapy sia disponibile su Kali:
scapy --versionAvvia Wireshark su Kali (o sul Mac con packet capture su host-only) prima di iniziare.
Obiettivo: manda un singolo pacchetto ICMP a Ubuntu e osservalo in Wireshark. Confronta con un ping normale — sono identici?
Parte 2 — Costruire un pacchetto TCP SYN#
Con scapy puoi costruire ogni layer separatamente e combinarli con /.
Obiettivo: costruisci un pacchetto TCP SYN verso la porta 80 di Ubuntu. Osserva in Wireshark:
- Quali flag TCP sono settati?
- Ubuntu risponde con SYN-ACK o RST? Perche'?
- Cosa cambia se usi una porta chiusa?
Parte 3 — Spoofing dell'IP sorgente#
Scapy permette di specificare qualsiasi IP sorgente, inclusi IP falsi.
Obiettivo: manda un pacchetto con IP sorgente falsificato (es. 10.0.0.1). Osserva in Wireshark che l'IP sorgente nel pacchetto e' quello che hai impostato tu. Considera: perche' un worm potrebbe voler falsificare l'IP sorgente? Perche' non sempre funziona?
Parte 4 — Simulare una worm scan#
Un worm scansiona IP casuali cercando sistemi vulnerabili. Senza sfruttare nulla, simula la fase di scanning: manda pacchetti SYN a una serie di porte su Ubuntu e osserva quali rispondono con SYN-ACK (porta aperta) vs RST (porta chiusa).
Obiettivo: identifica almeno 2 porte aperte su Ubuntu dalla scansione. Confronta con nmap -sS — il risultato e' lo stesso? Il meccanismo sotto e' identico?
Parte 5 — Pacchetto UDP con payload custom#
SQL Slammer era un pacchetto UDP con payload integrato. Senza replicare l'exploit, costruisci un pacchetto UDP con un payload di testo custom (es. "HELLO FROM SCAPY") e mandalo a Ubuntu su una porta a caso.
Obiettivo: osserva in Wireshark il payload nel pacchetto UDP. Riesci a leggere il testo in chiaro nella sezione Data? Cosa succederebbe se al posto del testo ci fosse shellcode?
Domande di riflessione#
- Qual e' la differenza tra quello che hai fatto con scapy e quello che fa hping3?
- In SQL Slammer il pacchetto UDP era 376 byte. Il tuo payload quanto e' grande?
- Perche' il SYN scan (parte 4) non completa il three-way handshake?
- Se monitorassi una rete con Wireshark/Suricata, come distingueresti una scansione legittima da una worm scan?
Connessioni#
- cap-06-threat-actors-malware — teoria su worm, exploit, payload
- cap-04-securing-your-network — TCP/IP, porte, firewall


