Création d'outils de sécurité personnalisés

Développez votre propre arsenal d'outils de sécurité en Python. Créez un scanner de ports multithread, forgez des paquets réseau personnalisés avec Scapy et concevez un fuzzer de répertoires web haute performance.

Cybersecurity EngineerCybersécuritéWireshark

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Créer un outil de sécurité révèle les choix cachés des scanners matures : entrées, délais, concurrence, champs de protocole, erreurs et filtrage. Ce cours pratique utilise Python pour développer des outils de reconnaissance ciblés et enchaîner leurs résultats.

Vous créerez un scanner TCP multithread, construirez des paquets ICMP/TCP avec Scapy et développerez un énumérateur web concurrent. Le défi final scanne des ports web locaux, teste une liste de chemins sur chaque service ouvert et rédige un rapport combiné.

Ce que vous apprendrez

  • Créer une CLI avec argparse pour cible et plage de ports
  • Détecter les ports TCP avec socket.connect_ex, délais et exceptions
  • Comparer balayage séquentiel et concurrence par threads
  • Empiler IP, ICMP et TCP dans Scapy et inspecter les champs
  • Envoyer une sonde ICMP avec sr1 et traiter réponse ou délai
  • Lire une liste de chemins et lancer des requêtes HTTP concurrentes
  • Filtrer les endpoints par codes HTTP et gérer les erreurs
  • Enchaîner scan et découverte dans un outil local de rapport

À qui s’adresse ce cours

Ce cours intermédiaire s’adresse aux personnes étudiant la cybersécurité, aux ingénieurs réseau et aux développeurs Python qui veulent comprendre scanners et énumérateurs. Il enseigne l’implémentation et les tests sûrs, non le remplacement de Nmap ou ffuf.

Prérequis : Fonctions Python, modules, collections, exceptions et fichiers, plus notions de ports TCP, codes HTTP, en-têtes IP/ICMP/TCP et terminal Linux.

Environnement d’apprentissage : Ubuntu 22.04 avec Python 3, Scapy, requests, serveurs web locaux et listes préparées. Scan et fuzzing ciblent 127.0.0.1 ; le lab paquet envoie un ICMP Echo à 8.8.8.8, selon la politique réseau.

Questions fréquentes

Puis-je cibler n’importe quel hôte ?

Uniquement les systèmes vous appartenant ou explicitement autorisés. Les scans ciblent 127.0.0.1 ; Scapy envoie un seul ICMP Echo standard à Google Public DNS pour l’exercice.

Que se passe-t-il sans réponse Scapy ?

C’est normal si ICMP ou les paquets bruts sont bloqués. Le script utilise un délai de deux secondes et gère l’absence ; l’objectif est la construction et la logique de réponse, non l’accès Internet garanti.

Les outils sont-ils prêts pour la production ?

Non. Ils illustrent les mécanismes. Des outils matures ajoutent concurrence bornée, limitation de débit, détection de services, reprises, réponses wildcard, TLS, validation, sortie déterministe et tests.

« Fuzzer » signifie-t-il envoyer des charges malformées ?

Non. Il énumère des chemins d’une liste par GET ordinaires et filtres de codes HTTP. Il ne mute pas les protocoles, n’injecte pas de charges et ne teste pas la corruption mémoire.

Enseignant

labby
Labby
Labby is the LabEx teacher.