Bibliothèque interactive de manipulation de paquets basée sur Python pour forger, décoder, envoyer, capturer et analyser des paquets réseau sur une large gamme de protocoles, prenant en charge le scan, le traceroutage, les attaques et la découverte réseau.
ScapyScapy est un puissant programme interactif de manipulation de paquets et une bibliothèque, basés sur Python.
Il est capable de forger ou décoder des paquets d'un grand nombre de protocoles, de les envoyer sur le réseau, de les capturer, de les stocker ou de les lire à l'aide de fichiers pcap, de faire correspondre les requêtes et les réponses, et bien plus encore. Il est conçu pour permettre un prototypage rapide de paquets en utilisant des valeurs par défaut qui fonctionnent.
Il peut facilement gérer la plupart des tâches classiques comme le scan, le traceroute, le probing, les tests unitaires, les attaques ou la découverte réseau (il peut remplacer hping, 85% de nmap, arpspoof, arp-sk, arping, tcpdump, wireshark, p0f, etc.). Il performe également très bien sur de nombreuses autres tâches spécifiques que la plupart des autres outils ne peuvent pas gérer, comme l'envoi de trames invalides, l'injection de vos propres trames 802.11, la combinaison de techniques (VLAN hopping + empoisonnement du cache ARP, décodage VoIP sur canal protégé par WEP, ...), etc.
Scapy supporte Python 3.7+. Il est conçu pour être multiplateforme et fonctionne sur de nombreuses plateformes différentes (Linux, OSX, *BSD et Windows).
Scapy peut être utilisé soit comme un shell, soit comme une bibliothèque. Pour plus de détails, veuillez vous référer à Pour commencer avec Scapy, qui fait partie de la documentation.
Scapy peut facilement être utilisé comme un shell interactif pour interagir avec le réseau. L'exemple suivant montre comment envoyer un message de demande d'écho ICMP à github.com, puis afficher l'adresse IP source de la réponse :
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 documentation contient des cas d'utilisation plus avancés et des exemples.
Autres ressources utiles :
Scapy fonctionne sans aucun module Python externe sur Linux et les systèmes d'exploitation de type BSD. Sous Windows, vous devez installer certaines dépendances obligatoires comme décrit dans la documentation.
Sur la plupart des systèmes, utiliser Scapy est aussi simple que d'exécuter les commandes suivantes :
git clone https://github.com/secdev/scapy
cd scapy
./run_scapy
Pour bénéficier de toutes les fonctionnalités de Scapy, telles que le traçage, vous pouvez installer des modules Python, comme matplotlib ou cryptography. Consultez la documentation et suivez les instructions pour les installer.
Le code, les tests et les outils de Scapy sont sous licence GPL v2. La documentation (tout sauf indication contraire dans doc/, et à l'exception du logo) est sous licence CC BY-NC-SA 2.5.
Vous voulez contribuer ? Super ! Veuillez prendre quelques minutes pour lire ceci!