Python : introduction au hacking/piratage éthique

Python : introduction au hacking/piratage éthique

Table des matières

Introduction

  1. Ethical Hacking : Définition générale
  2. Ethical Hacking: Les 5 techniques les plus importantes à savoir

2.1. Wireshark

2.2. Scanning

2.3. La reconnaissance

2.4. TCP Scan

  1. Pourquoi utiliser Python dans l’ethical Hacking ?
  2. Les outils Python pour l’Ethical Hacking

4.1. Piratage web

4.2. Piratage réseau

4.3. Piratage système

  1. Modules Python utilisés dans le ethical Hacking

5.1. Pylibnet

5.2. RawSocketPy

5.3. Python-Nmap

5.4. Cryptography

5.5. IMpacket

5.6. Scapy

5.7. Requests

Conclusion

Introduction 

Bonjour et bienvenue dans un nouveau tutoriel Python. Comme nous le savons tous, la programmation est un outil révolutionnaire qui permet de faire des miracles, parmi les fonctionnalités qu’elle offre, le développement web , l’analyse de données …  . On trouve aussi l’ethical hacking, qui fait référence à des pratiques visant la maintenance de la sécurité des systèmes informatiques et cela en cherchant les failles de ces derniers.

Dans  ce tutoriel, nous allons comprendre ce qu’est l’ethical hacking, comprendre comment Python permet ce genre de pratique, et finalement découvrir quelques outils Python destinés à cette fin.

Aucun prérequis n’est nécessaire pour suivre ce tutoriel, votre concentration et persévérance seront suffisantes !

1. Ethical Hacking : Définition générale

L’Ethical Hacking (piratage éthique) est une pratique informatique qui vise la détection des vulnérabilités et des menaces de la sécurité d’un système informatique à l’aide de méthodes et techniques avancées.

Le Hacking tout court est la pratique la plus répandue et la plus populaire, elle vise l’accès à des systèmes auxquels vous n’avez pas accès normalement comme la connexion à un compte de messagerie sans autorisation afin de récupérer des informations confidentielles comme les mots de passe ou les identifiants bancaires.

 Le piratage éthique est là pour vous protéger de ce type d’attaque, c’est vrai que c’est presque le même principe du piratage, mais le but est l’opposé. Ici, on accède illégalement à des systèmes afin de trouver les failles et les corriger.



Néanmoins, pour se protéger contre les pirates informatiques de toutes sortes, l’emploi de pirates éthiques est devenu une pratique courante dans les organisations. Les pirates éthiques se voient confier la responsabilité de trouver et de corriger les failles de sécurité d’une certaine organisation avant que les pirates noirs ne les trouvent.

 

2. Ethical Hacking: Les 5 techniques les plus importantes à savoir

Vous ne pouvez  tout de même pas passer devant la notion d’ethical hacking sans connaître quelques méthodes populaires de cette pratique ! Voici les 5 méthodes que nous jugeons indispensables à connaitre :

2.1. Wireshark

Wireshark est un outil d’analyse de protocole réseau, qui capture des paquets de connexion réseau. C’est l’un des outils de réseaux les plus souvent utilisés dans le monde. Comme tout autre outil d’analyse de paquets, Wireshark agit de la manière suivante :

  • Captures de paquets: Wireshark écoute une connexion réseau en temps réel, puis saisit des flux entiers de trafic, voire des dizaines de milliers de paquets à la fois.
  • Filtrage : Wireshark est capable de découper et de découper toutes ces données aléatoires en direct à l’aide de filtres.En appliquant un filtre, vous pouvez obtenir l’information dont vous avez besoin.
  • Visualisation

2.2. Scanning

Le Scanning ou ce qu’on appelle  balayage est l’une des étapes importantes du processus du piratage éthique. En effet,  il s’agit de la vérification de l’hôte en direct, du scanning de ports, capture de bannière ainsi que l’évaluation des vulnérabilités pour les utiliser plus tard. Ces informations sont celles dont vous aurez besoin pour construire et visualiser la topologie du réseau. Il est essentiel de savoir de quel type d’environnement il s’agit et comment les systèmes sont connectés entre eux ainsi que  les états des ports.

2.3. La reconnaissance

Collecter des informations et connaître le système auquel on veut s’infiltrer est la première étape dans l’ethical hacking. Cette pratique consiste essentiellement à recueillir les informations sur le réseau, sur l’hôte ainsi que sur l’information organisationnelle afin d’avoir une vision complète et claire sur tout le système. La reconnaissance consiste essentiellement à recueillir l’information sur le réseau, l’information sur l’hôte et l’information organisationnelle qui, ensemble, relèvent de la collecte d’information, de l’impression au pied et de la reconnaissance.

Le processus de reconnaissance est composé de 7 étapes :

  • Collecter les informations initiales
  • Déterminer la plage réseau
  • Identifier les machines actives
  • Visualiser les ports et s’infiltrer par les points d’accès
  • Empreintes digitales sur le système d’exploitation
  • Déterminer les services dans les ports
  • Mapper le réseau

2.4. TCP Scan

Le scanning des ports est le processus de recherche de ports d’un ordinateur au moyen de logiciels spécialisés. Cette méthode vise à scanner les ports d’un ordinateur et les classer dans l’une des trois catégories (ouverte, fermée ou filtrée). À la fin du balayage TCP,  le hacker pourra voir l’intégralité des ports disponibles et les cibler selon leur classification. Cet outil est très utile pour les administrateurs de sécurité qui visent la visualisation des ports. Ce type d’information peut faire l’objet d’une attaque informatique.

3. Pourquoi utiliser Python dans l’ethical Hacking ?

Python est considéré parmi les langages de référence pour une grande majorité de pirates éthiques. En effet, une bonne connaissance de Python est considérée comme une notion basique indispensable aux personnes souhaitant faire carrière en cyber sécurité.  C’est un langage flexible, simple et fonctionnel. Il est idéal pour la programmation de petits programmes, qui constituent une grande partie du travail des pirates éthiques.

En addition, quand vous commencez à utiliser Python, ce n’est pas juste un nouveau langage que vous apprenez, mais vous rejoignez aussi une énorme communauté de fans dédiée. C’est une autre façon de dire que si vous avez besoin de conseils ou de solutions à vos problèmes, il y’a beaucoup de ressources y compris la documentation et les forums auxquels vous pouvez vous adresser .

Outre la cybersécurité, Python peut être une langue inestimable dans le cadre d’une base de connaissances dans d’autres carrières aussi. Apprendre Python est bénéfique dans tous les cas !



4. Les outils Python pour l’Ethical Hacking

Python offre plusieurs fonctionnalités et méthodes qui permettent l’ethical hacking dans plusieurs domaines. Nous allons vous présenter en général les domaines d’opération des outils Hacking Python.

4.1. Piratage web

La configuration de l’environnement de test Virtual Box est utilisée pour un site Web?Shell attaque pour introduire le piratage Web, qui est actuellement un?problème important. Les techniques comprennent SQL Injection, le mot de passe à?craquer, et une attaque Web Shell. Les outils Python pour effectuer le piratage Web sont :

4.2. Piratage réseau 

Une variété d’outils et le langage Python peuvent être combinés pour soutenir le piratage de réseau et d’introduire le piratage de réseau technique. Brièvement, nous présentons NMap avec l’outil Wireshark, et des techniques de piratage telles que le balayage des ports, le reniflement de paquets,TCP SYN Flood, Slowris Attack sont introduits.

4.3. Piratage système

Le piratage du système est défini comme l’infiltration et l’intrusion des systèmes  informatiques et de logiciels afin d’accéder à l’ordinateur ciblé et collecter les informations illégalement. Cette pratique exploite les failles et les faiblesses d’un système informatique ou d’un réseau afin d’obtenir un accès non autorisé. Toutes ces pratiques citées sont illégales et dangereuses, mais dans l’ethical hacking, elles sont utilisées pour protéger les systèmes informatiques et pour cela il faut bien comprendre comment ses attaques fonctionnent.

5. Modules Python utilisés dans le ethical Hacking 

Dans cette section du tutoriel , nous allons vous présenter les librairies populaires utilisées dans l’ethical hacking et présenter quelques-uns des outils offerts par ces librairies.

5.1. Pylibnet

C’est un module de la librairie libnet packet injection. C’est une api qui facilite la construction et l’infiltration dans un paquet réseau, elle offre aussi la possibilité de déploiement et de gestion de paquets.

5.2. RawSocketPy

RawSocketPy est une librairie Python basée sur deux couches et qui permet la communication en utilisant l’adresse MAC uniquement. Le principe est de créer un système de communication Ethernet/wifi personnalisé sans l’utilisation des protocoles IP ou TCP/UDP. L’API RawSocketPy permet de sniffer le trafic de n’importe quelle implémentation de type Ethernet.

5.3. Python-Nmap

Python-nmap est une librairie Python qui facilite l’utilisation du scanner de ports nmap. Cette bibliothèque permet l’interprétation et la manipulation facile des résultats de scan de nmap, elle prend en charge les sorties des scripts nmap aussi.

5.4. Cryptography

C’est un module Python qui offre des services et des fonctionnalités de cryptographie aux développeurs Python. Il inclut  des services avancés comme des services primitives, par exemple, parmi les services qu’offre le module Cryptography on trouve : Ciphers symétrique, dérivations des clés ainsi que les messages condensés.

Voici un exemple très simple en Python qui décrypte une clé grâce au module cryptography.fernet :

Exemple :

Cet exemple explique comment fonctionne le cryptage d’une clé .

Syntaxe :

from cryptography.fernet import Fernet
>>> # Put this somewhere safe!
>>> cle = Fernet.generate_key()
>>> c= Fernet(cle)
>>> tok = f.encrypt(b"Message secret. Confidentiel.")
>>> tok
'...'
>>> f.decrypt(tok)

Résultat de l’exécution :

 

5.5. IMpacket

IMpacket est une bibliothèque qui inclut une collection de classes Python pour travailler avec les protocoles réseau.Elle vise à fournir un accès programmatique de bas niveau aux paquets réseau. Il permet aux développeurs Python de créer et de décoder des paquets réseau de manière simple et cohérente. La bibliothèque fournit un ensemble d’outils comme exemples de ce qui peut être fait dans le contexte de cette bibliothèque.

5.6. Scapy

Scapy est un puissant programme interactif de manipulation de paquets basé sur Python. Cette bibliothèque est capable de forger ou de décoder des paquets d’un grand nombre de protocoles, de les envoyer sur le fil, de les capturer, de les stocker ou de les lire à l’aide de fichiers pcap, de requêtes de correspondance, et plus encore. Il permet la construction d’outils qui peuvent facilement scanner ou attaquer des réseaux. Il est conçu pour permettre le prototypage rapide des paquets en utilisant des valeurs par défaut qui fonctionnent. Il peut également effectuer des tâches telles que l’envoi d’images invalides, l’injection de vos propres codes, la combinaison de techniques, telles que VLAN sautillant avec ARP cache empoisonnement, VOIP décodage sur WEP canal crypté, etc., que la plupart des autres outils ne peuvent pas réaliser.



5.7. Requests

Requests est une simple bibliothèque HTTP pour Python qui permet à un utilisateur d’envoyer des requêtes HTTP/1.1 très facilement. Cette bibliothèque aide à construire des applications HTTP robustes et comprend des fonctionnalités intuitives telles que la décompression et le décodage automatique de contenu, les délais de connexion, l’authentification de base et de chiffres, et bien  d’autres.

Conclusion

Nous sommes arrivés à la fin de ce tutoriel, à présent, vous avez une connaissance générale de l’ethical hacking, des différents services qu’il offre ainsi que l’importance de Python dans cette pratique. Nous avons aussi présenté différents outils et librairies Python qui sont très utilisés par les acteurs de l’ethical hacking.

Maintenant, vous pouvez passer à la prochaine étape qui est la compréhension de ces outils et des algorithmes déployés. Commencez par choisir le service à pirater par exemple le réseau d’un système puis mettez en œuvre les méthodes et outils présentés. N’oubliez pas que ce qu’on fait c’est de l’ethical hacking ! N’utilisez pas ces méthodes pour une mauvaise exploitation !

Tutoriel Python