Libreria interattiva basata su Python per la manipolazione dei pacchetti, utilizzata per forgiare, decodificare, inviare, catturare e analizzare pacchetti di rete attraverso un'ampia gamma di protocolli, con supporto per scansione, traceroute, attacchi e scoperta della rete.
ScapyScapy è un potente programma interattivo di manipolazione dei pacchetti basato su Python e una libreria.
È in grado di forgiare o decodificare pacchetti di un ampio numero di protocolli, inviarli sulla rete, catturarli, archiviarli o leggerli tramite file pcap, abbinare richieste e risposte e molto altro ancora. È progettato per consentire una rapida prototipazione dei pacchetti utilizzando valori predefiniti che funzionano.
Può gestire facilmente la maggior parte delle attività classiche come lo scanning, il tracerouting, il probing, gli unit test, gli attacchi o il network discovery (può sostituire hping, l'85% di nmap, arpspoof, arp-sk, arping, tcpdump, wireshark, p0f, ecc.). Si comporta inoltre molto bene in molte altre attività specifiche che la maggior parte degli altri strumenti non è in grado di gestire, come l'invio di frame non validi, l'iniezione di frame 802.11 personalizzati, la combinazione di tecniche (VLAN hopping + ARP cache poisoning, decodifica VoIP su canale protetto WEP, ...), ecc.
Scapy supporta Python 3.9+. È pensato per essere multipiattaforma e funziona su molte piattaforme diverse (Linux, OSX, *BSD e Windows).
Scapy è utilizzabile sia come shell che come libreria. Per ulteriori dettagli, consulta Getting started with Scapy, che fa parte della documentazione.
Scapy può essere facilmente utilizzato come shell interattiva per interagire con la rete.
L'esempio seguente mostra come inviare un messaggio ICMP Echo Request a
github.com, quindi visualizzare l'indirizzo IP di origine della risposta:
sudo ./run_scapy
Welcome to Scapy
>>> p = IP(dst="github.com")/ICMP()
>>> r = sr1(p)
Begin emission:
.Finished to send 1 packets.
*
Received 2 packets, got 1 answers, remaining 0 packets
>>> r[IP].src
'192.30.253.113'
La documentazione contiene casi d'uso più avanzati ed esempi.
Altre risorse utili:
Scapy funziona senza alcun modulo Python esterno su Linux e su sistemi operativi di tipo BSD. Su Windows, è necessario installare alcune dipendenze obbligatorie come descritto nella documentazione.
Sulla maggior parte dei sistemi, usare Scapy è semplice come eseguire i seguenti comandi:
git clone https://github.com/secdev/scapy
cd scapy
./run_scapy
Per usufruire di tutte le funzionalità di Scapy, come il plotting, potresti voler installare
moduli Python, come matplotlib o cryptography. Consulta la
documentazione e
segui le istruzioni per installarli.
Il codice, i test e gli strumenti di Scapy sono distribuiti con licenza GPL v2.
La documentazione (tutto, salvo diversa indicazione in doc/, e ad eccezione del logo) è distribuita con licenza CC BY-NC-SA 2.5.
Vuoi contribuire? Ottimo! Ti preghiamo di dedicare qualche minuto a leggere questo!