Skip to main content
  1. Lab-blue/

[TODO] Lab - Packet Crafting con Scapy

Alessio Barnini
Author
Alessio Barnini
Table of Contents

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 --version

Avvia 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

Related