Scapy est un puissant programme et une bibliothèque interactifs de manipulation de paquets basés sur Python.
Il est capable de falsifier ou de 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 demandes 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 tracerouting, le sondage, les tests unitaires, les attaques ou la découverte de réseau (il peut remplacer hping
, 85% de nmap
, arpspoof
, arp-sk
, arping
, tcpdump
, wireshark
, p0f
, etc.). Il fonctionne également très bien dans 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 (saut de VLAN + empoisonnement du cache ARP, décodage VoIP sur canal protégé WEP, . ..), etc.
Scapy prend en charge Python 3.7+. Il est destiné à être multiplateforme et fonctionne sur de nombreuses plates-formes différentes (Linux, OSX, *BSD et Windows).
Scapy est utilisable soit comme shell , soit comme bibliothèque . Pour plus de détails, veuillez vous rendre sur Premiers pas avec Scapy, qui fait partie de la documentation.
Scapy peut facilement être utilisé comme shell interactif pour interagir avec le réseau. L'exemple suivant montre comment envoyer un message ICMP Echo Request à github.com
, puis afficher l'adresse IP de la source de réponse :
sudo ./run_scapyBienvenue dans Scapy>>> p = IP(dst="github.com")/ICMP()>>> r = sr1(p)Commencer l'émission : .Finition d'envoyer 1 paquet.*Reçu 2 paquets, obtenu 1 réponse, 0 paquet restant>>> r[IP].src'192.30.253.113'
La documentation contient des cas d'utilisation plus avancés et des exemples.
Autres ressources utiles :
Scapy dans 20 minutes
Tutoriel interactif (partie de la documentation)
La démo rapide : une session interactive (certains exemples peuvent être obsolètes)
Bloc-notes HTTP/2
Carnets TLS
Scapy fonctionne sans aucun module Python externe sur les systèmes d'exploitation de type Linux et 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/scapycd ./run_scapy
Pour bénéficier de toutes les fonctionnalités de Scapy, comme le traçage, vous souhaiterez peut-être 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 !