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 e libreria interattiva di manipolazione dei pacchetti basata su Python.
È in grado di forgiare o decodificare pacchetti di un'ampia gamma di protocolli, inviarli sulla rete, catturarli, memorizzarli o leggerli utilizzando file pcap, abbinare richieste e risposte, e molto altro. È progettato per consentire una prototipazione rapida dei pacchetti utilizzando valori predefiniti che funzionano.
Può gestire facilmente la maggior parte dei compiti classici come scansione, traceroute, probing, test unitari, attacchi o scoperta di rete (può sostituire hping, l'85% di nmap, arpspoof, arp-sk, arping, tcpdump, wireshark, p0f, ecc.). Inoltre, si comporta molto bene in molti altri compiti specifici che la maggior parte degli altri strumenti non può gestire, come l'invio di frame non validi, l'iniezione dei propri frame 802.11, la combinazione di tecniche (VLAN hopping + avvelenamento della cache ARP, decodifica VoIP su canale protetto WEP, ...), ecc.
Scapy supporta Python 3.7+. È pensato per essere multipiattaforma e funziona su molti sistemi diversi (Linux, OSX, *BSD e Windows).
Scapy può essere utilizzato sia come shell sia come libreria. Per ulteriori dettagli, vai a Per iniziare con Scapy, che fa parte della documentazione.
Scapy può essere facilmente usato come shell interattiva per interagire con la rete.
L'esempio seguente mostra come inviare un messaggio ICMP Echo Request a github.com, per poi visualizzare l'indirizzo IP sorgente 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 moduli Python esterni su sistemi operativi Linux e BSD. Su Windows, devi 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 la creazione di grafici, potresti voler installare moduli Python, come matplotlib o cryptography. Vedi la documentazione e segui le istruzioni per installarli.
Il codice, i test e gli strumenti di Scapy sono concessi in licenza GPL v2.
La documentazione (tutto ciò non diversamente indicato in doc/, ed escluso il logo) è concessa in licenza CC BY-NC-SA 2.5.
Vuoi contribuire? Ottimo! Prenditi qualche minuto per leggere questo!