Vous êtes sur la page 1sur 2

TP : Décoder et manipuler des paquets réseaux

Les captures « pcap » fournies correspondent à des traces de différents objets connectés. Ces
traces correspondent au premier ensemble de paquets qui ont été échangés entre l’objet et la
gateway de la maison. Le nombre de paquets varie d’une capture à une autre.

Partie 1 : Créer un paquet IP


1- Créer un paquet IP nommé « pkt » en fixant la valeur de « ttl = 10 »
2- Afficher l’adresse IP source du paquet
3- Changer l’adresse IP source actuelle à : ‘192.168.1.1’
4- Supprimer la valeur du « ttl ». Puis afficher la valeur par défaut.
5- Ajouter une couche UDP au paquet créé. Puis afficher la valeur du port destination et port
source du paquet

Partie 2 : Décoder des paquets UDP


1- Créer une fonction permettant de lire un fichier « pcap »
2- Calculer le nombre de paquets UDP dans la capture
3- Identifier le protocole utilisé au-dessus de UDP en se basant sur le numéro de port
destination utilisé
Pour cela, créer un dictionnaire indiquant la correspondance entre le numéro de port
connu et le protocole adéquat
4- Calculer le nombre de paquet pour chaque protocole identifié dans la question
précédente
5- Pour chaque protocole identifié, calculer la longueur maximum, longueur minimum
et la longueur moyenne des paquets

Partie 3 : Décoder des paquets TCP


1- Ecrire une fonction permettant de lire une capture sous format « pcap » et d’afficher tous
les champs dans les différentes entêtes d’un paquet TCP.
Utilisez la commande « show() »
2- Calculer le nombre de paquets TCP de la capture fournie
3- Calculer le nombre de handshakes TCP dans la capture
4- Pour chaque paquet TCP [SYN], afficher adresse source, adresse destination, port source
et port destination

Partie 4 : Créer et envoyer un paquet ICMP


1- Créer un fichier « ping.py » :
Construire un paquet ICMP en précisant l’adresse destination ‘www.google.com’ au
niveau de la couche IP. Ensuite, ajouter la couche ICMP()
Avant cela, regarder les différentes valeurs par défaut fournies par scapy en utilisant
la commande « ls () » : « ls(IP) » et « ls(ICMP) »
2- Envoyer le paquet sur le réseau en utilisant la commande « send() » ou « sr1() » qui
permet d’envoyer un paquet au niveau 3 et retourne la première réponse seulement
3- Enregistrer la réponse dans une variable afin d’afficher les détails en utilisant la
commande fournie par scapy « summary() »

TCP flags :
FIN = 0x01
SYN = 0x02
RST = 0x04
PSH = 0x08
ACK = 0x10
URG = 0x20
ECE = 0x40
CWR = 0x80

Installation de scapy :
Vérifier que python (2.7 ou 3.3+) est installé avant d’installer « scapy ».
En utilisant « pip » :
1- Installer « pip » d’abord 
>>> sudo apt-get install python-pip python-dev build-essential
>>> sudo pip install --upgrade pip
>>> sudo pip install –upgrade virtualenv
2- >>> sudo pip install scapy (v 2.3.3)
3- Afin de verifier la version de scapy: >>> pip list

Vous aimerez peut-être aussi