wiki/HowtoScapy.md

3.9 KiB
Raw Blame History

categories title
network Howto Scapy

Cette Page est en cours d'écriture, les information présentées ici sont potentiellement incomplètes et la structure de la page peut être amenée à changer.

Scapy est un programme et une librairie de manipulation de paquets réseau visant à donner un contrôle total sur le matériel réseau d'une machine à son utilisateur. Scapy permet de forger, décoder des paquets reçus, émettre des paquets et capturer un segment de communication (format PCAP) ainsi que des procédures de prototypage de paquets simplifiées et naturelles grâce à l'autocomplétion intelligente mise à disposition. De fait les taches telles que le scanning, l'écoute ou l'enregistrement de segments de communication proposées par plusieurs outils différents tels que Nmap pour le scanning ou tcpdump ou Wireshark pour l'écoute passive, sont rassemblées au sein d'un seul outil qui bénéficie également d'une capacité de programmabilité très élevée de pars sa nature.

En effet Scapy est avant tout une librairie Python offrant aux utilisateur une interface accessible directement via linterpréteur, dès lors, nous comprenons que les capacités des outils précédemment cités peuvent être conjuguées afin de satisfaire bien plus finement aux besoin d'un utilisateur.

Principe : Forger, manipuler, écouter les flux de communication réseau.

Principe de fonctionnement et Concepts

Scapy est un programme permettant daccéder au plein potentiel de votre carte réseau, pour se faire, l'outil se sert du mode promiscuous des interfaces et réintroduit intégralement une stack TCP/IP sur laquelle le programme possède les pleins pouvoirs, cela simplifie notamment la traversée du niveau 2 (Modèle OSI) dans la stack TCP/IP noyau. L'interface étant configurée en promiscuous le kernel est alors supplanté par Scapy et la carte réseau est entièrement utilisable. Pour exemple, nous pouvons grâce à cela librement modifier ladresse MAC source de nos paquets et les envoyer directement sur le réseau sans avoir à spécifier au kernel de ne pas réécrire le champs.

D'autre part cette structure nous permets également de définir entièrement un environnement réseau spécifique; en effet, Scapy nous offre la possibilité de créer/renommer/ajouter des interfaces réseau, créer une table routage dédiée idépendante de celle du système "hôte", la gestion de certificats d'encryption et bien d'autres à travers l'objet conf.

Par ailleurs Scapy utilise les nivaux du modèle OSI afin de structurer les couches composant les objets descripteurs de paquets. Ainsi un objet de type PKT dans Scapy se compose généralement de plusieurs couches en fonction des choix de l'utilisateur et peut être vu comme un dictionnaire bidimensionnel : PKT['IP']['TCP']....

Structures et Modèle OSI

Couches

Protocoles

Encapsulation

Integration Python

Installation

Utilisation

Création de paquets

Génération de collections de paquets

Modification de paquets

Spoofing à la volée

Ecoute du réseau

Sauvegarde de communication écoutées

Manipulation dans des listes
Enregistrement dans des fichiers PCAP
Lecture de fichier PCAP
Annalyse de contenu

Emissions sur les réseau

A partir de fichiers PCAP

A partir de collections générées

Emission et reception de réponses

Exemples d'utilisation basique

Sniffer

Filtres

ARPing

Nmap

TLDR

Création de paquets/collections

Emission de paquets/collections

Emission et écoute de réponse

Ecoute sur le réseau

Filtres d'ecoute

Filtre par IP

Filtre par MAC

Filtre par protocole

Ecriture PCAP

Lecture PCAP

Modification de champs