REDPIXEL - stock.adobe.com
Réseau : les 14 meilleurs outils Open source de test d'intrusion
D'Aircrack-ng à ZAP, ces outils open source de test d'intrusion sont des compléments indispensables à la boîte à outils de tout administrateur réseau.
Les tests d'intrusion permettent aux hackers éthiques de tester les contrôles de sécurité d'une entreprise, de mettre en évidence les failles dans les défenses et d'identifier les vulnérabilités exploitables dans les réseaux, les applications et les appareils. Il existe un certain nombre d'outils offensifs de cybersécurité, dont beaucoup sont open source.
En tant qu’administrateur réseau, il est utile d'avoir une connaissance pratique de plusieurs outils open source populaires et pertinents pour les tests d'intrusion, d'autant plus que beaucoup d'entre eux résolvent des problèmes spécifiques. Même les hackers éthiques travaillant dans des entreprises qui découragent l'utilisation de l'open source en raison d'exigences réglementaires ou de support payant peuvent tirer profit de la connaissance de ces outils.
Cet article présente les principaux types de tests d'intrusion, ainsi que les meilleurs outils de tests d'intrusion que vous devriez essayer ou adopter. Notez qu'il ne s'agit pas d'une liste exhaustive de tous les outils open source existants.
Attention : ces outils de test d'intrusion peuvent être utilisés à des fins légales ou illégales. Il vous appartient de vous assurer que votre utilisation est légale. Obtenez les autorisations et approbations nécessaires avant de procéder au test d'intrusion et traitez les informations obtenues de manière éthique. Si vous n'êtes pas certain que votre utilisation soit légale, ne poursuivez pas avant d'avoir obtenu confirmation, par exemple en discutant et en validant votre utilisation prévue avec le conseiller juridique de votre entreprise.
Types de tests d'intrusion
Les types courants d'outils et d'attaques de tests d'intrusion sont les suivants :
- Le balayage de ports est une technique qui consiste à envoyer une série de messages afin de recueillir des informations sur les services réseau fournis par un ordinateur. Elle permet d'identifier les ports et les services ouverts ou fermés sur les appareils connectés à Internet.
- L'analyse des protocoles réseau est le processus qui consiste à capturer, décrypter et analyser les paquets de données réseau. Elle est utilisée pendant la phase de reconnaissance des tests d'intrusion afin de collecter des informations sur les appareils réseau et le trafic réseau.
- Le balayage des vulnérabilités est le processus qui consiste à détecter les failles de sécurité d'un réseau. Il examine les systèmes informatiques, les réseaux et les applications à la recherche de correctifs non appliqués, de versions logicielles vulnérables, de configurations incorrectes, de vulnérabilités dans les applications et de failles dans les pare-feu et autres contrôles de sécurité.
- La création de paquets est une technique utilisée pour vérifier les règles des pare-feu et trouver des points d'entrée dans un réseau. Elle consiste à assembler manuellement les paquets et à les envoyer aux pare-feu et aux réseaux cibles afin de déterminer comment les systèmes réagissent.
- Les attaques d'applications web, telles que les attaques de type « cross-site scripting » et « SQL injection », sont utilisées pour accéder à un système via les vulnérabilités d'une application web. Par exemple, les attaques XSS manipulent les sites web via des scripts malveillants, tandis que les attaques SQL injection manipulent les requêtes de base de données pour permettre un accès non autorisé.
- Le craquage de mot de passe est une technique qui consiste à deviner les identifiants d'un utilisateur afin d'accéder à un système. Il existe plusieurs types de craquage de mot de passe, notamment les attaques par force brute, par dictionnaire, par credential stuffing et par table Rainbow.
- L'exploit consiste à tenter d'exploiter les failles de sécurité identifiées afin d'établir leur gravité ou de déterminer si d'autres contrôles rendent une vulnérabilité inexploitable.
Outils de test d'intrusion open source
Aucun outil de test d'intrusion ne contient à lui seul toutes les fonctionnalités mentionnées ci-dessus ni ne convient à tous les cas d'utilisation. Un test d'intrusion complet qui simule les étapes classiques d'une attaque, à savoir la reconnaissance, l'exploitation, l'élévation des privilèges et le contrôle et la commande, nécessite une combinaison d'outils.
1/ Nmap
Nmap est un outil de reconnaissance réseau et d'analyse de ports. Il s'agit d'un outil en ligne de commande qui analyse les réseaux à la recherche de données et de télémétrie, notamment les ports ouverts, les appareils présents, les routes, etc. Nmap est léger, polyvalent et omniprésent : il est inclus dans les référentiels logiciels par défaut de la plupart des distributions Linux et est installé par défaut dans la plupart des distributions Linux axées sur la sécurité.
Au-delà de l'analyse des ports, vous pouvez utiliser Nmap pour identifier les systèmes, par exemple pour obtenir des informations sur les hôtes analysés. Il prend en charge de nombreux scripts externes (plus de 600) et des modules complémentaires. S'il s'agit de services exécutés sur un hôte distant, il y a de fortes chances que Nmap puisse les interroger et récupérer des données à leur sujet.
Nmap est précieux pour de nombreuses raisons. Au-delà de sa capacité clé de reconnaissance réseau sur les réseaux externes, sur site et dans le cloud privé virtuel de votre périmètre, sa polyvalence vous permet d'utiliser cet outil de manière créative.
Dans un cas d'utilisation, Nmap peut analyser les sous-réseaux à la recherche de certificats expirés ou sur le point d'expirer. La commande nmap --script ssl-cert -p 443 192.168.1.0/24, par exemple, analyse le sous-réseau de classe C /24 192.168.1.0 et affiche les informations relatives à tous les certificats associés aux serveurs web sur le port 443 des hôtes de ce sous-réseau.
2/ ZAP par Checkmarx
Zed Attack Proxy (ZAP), anciennement OWASP ZAP, est un scanner d'applications, un robot d'indexation, un proxy et bien plus encore. Certaines de ses fonctionnalités de test d'applications les plus avancées, telles que le fuzzing ou l'utilisation de fonctionnalités proxy pour tester la sécurité d'une application, peuvent s'avérer difficiles à maîtriser pour les professionnels de la sécurité débutants, mais ses fonctionnalités automatisées de scan, d'indexation et de découverte en font un outil précieux pour les professionnels de tous niveaux.
Vous pouvez utiliser ZAP pour tester des applications web, des API et pratiquement tous les services ou protocoles qui utilisent HTTP ou HTTPS comme moyen de transport, par exemple Health Level Seven, GraphQL, Fast Healthcare Interoperability Resources, etc. Vous pouvez également utiliser les capacités d'analyse automatisée de l'outil pour obtenir des informations sur les problèmes de sécurité potentiels d'un site.
Ce sont là les utilisations de base de ZAP, mais il en existe d'autres plus créatives. Par exemple, ZAP peut comparer les différences de comportement et de mise en œuvre des applications au fil du temps. Il vous permet de conserver les fichiers de session qui contiennent à la fois les requêtes et les réponses associées à une session de test donnée. Vous seriez surpris de voir à quel point il peut être utile d'examiner le comportement d'un site web il y a plusieurs mois ou années au niveau du flux HTTP, par exemple pour comparer le comportement avant et après une modification donnée, la mise en œuvre d'une fonctionnalité ou une intégration.
3/ SoapUI
SoapUI est un outil de test d'API. Bien que vous puissiez utiliser ZAP comme harnais de test pour les API, SoapUI est spécialement conçu à cet effet. Il est particulièrement utile pour étudier les communications intra-applications, notamment lorsqu'il n'y a pas d'interface utilisateur web ou que celle-ci est minimale en raison de l'absence d'interactivité avec l'utilisateur.
SoapUI prend en charge une variété de cas d'utilisation de tests de sécurité prêts à l'emploi, tels que le fuzzing, les tests d'injection SQL et les attaques basées sur XML. Vous pouvez également l'utiliser en tandem avec ZAP ou des outils similaires en fonction du cas de test spécifique.
Pour les tests d'intrusion, les principales utilités de SoapUI consistent à explorer, cartographier et manipuler les API. Par exemple, SoapUI peut définir des assertions, c'est-à-dire définir les résultats attendus et inattendus pour une API. Cela est utile si vous souhaitez définir un ensemble de résultats attendus pour des tests d'intégration rapides et sommaires des fonctionnalités de sécurité dans un contexte de produit lorsqu'une nouvelle version est publiée.
4/ BeEF
Browser Exploitation Framework (BeEF) est un outil de test d'intrusion pour navigateur web qui vous permet d'utiliser les vecteurs d'attaque côté client dans les navigateurs web. Par exemple, si vous pouvez créer une situation dans laquelle un client navigue vers un site que vous contrôlez (par exemple, une attaque de type Watering hole), vous pouvez ouvrir un onglet dans ce navigateur et le contrôler à partir de là. Cela vous permet d'utiliser l'onglet comme bon vous semble, par exemple pour des attaques de type tabnabbing, en utilisant l'onglet capturé pour intercepter et relayer des informations sur les sites visités, ou pour de nombreuses autres techniques.
Cet outil est moins utile sur le plan défensif que les autres présentés ici, mais BeEF mérite tout de même d'être mentionné car il est unique dans son domaine et offre des capacités permettant d'étendre les attaques de type ingénierie sociale et Watering hole.
5/ Hydra et 6/ John the Ripper
Hydra et John the Ripper sont deux outils de test d'intrusion très populaires pour le craquage de mots de passe. Hydra est particulièrement adapté aux attaques par force brute en ligne contre les protocoles réseau, tels que SSH, RDP et HTTP, ainsi que les formulaires HTML. John the Ripper est idéal pour le craquage de mots de passe hors ligne, par exemple si vous avez déjà obtenu l'accès à un fichier shadow, à la base de données Windows Security Account Manager ou à une autre liste de mots de passe non chiffré.
D'un point de vue utilitaire, l'utilisation de ces outils est simple : vous les utilisez pour cracker des mots de passe et accéder à des informations. Vous pouvez utiliser ces outils pour auditer les mots de passe, rechercher les mots de passe faibles définis par les utilisateurs, identifier les pratiques de sécurité insuffisantes en matière de mots de passe, etc.
7/ Metasploit Framework
Metasploit Framework est une interface universelle permettant d'exploiter du code. Quiconque a déjà utilisé un exploit prêt à l'emploi pour exploiter une vulnérabilité sait que le processus peut s'avérer difficile en raison d'entrées non standard, de la nécessité de modifier des variables codées en dur, du manque de compatibilité croisée pour les charges utiles de code shell et de nombreux autres facteurs. Metasploit simplifie ces défis en permettant aux exploits et au code shell de toujours fonctionner selon une interface définie et standard.
Comme l'installation par défaut de Metasploit inclut plusieurs des problèmes de sécurité les plus courants, tels que Log4Shell et EternalBlue, l'outil offre des fonctionnalités pour les équipes rouges (celles qui testent les attaques) et bleues (celles qui testent les moyens de défense). Par exemple, les équipes rouges peuvent tenter d'exploiter une vulnérabilité courante, tandis que les équipes bleues peuvent vérifier si cette vulnérabilité a été corrigée.
8/ Grype et 9/ Trivy
Grype d'Anchore et Trivy d'Aqua Security sont des scanners de vulnérabilité dans les containers. Bien que Grype et Trivy n'aient pas des fonctionnalités identiques, leur objectif est similaire sur le plan conceptuel : prendre un container Docker ou Podman et le scanner à la recherche de vulnérabilités.
Prenons l'exemple de Grype utilisé pour analyser le container « hello-world », un container disponible pour tester l'installation du moteur de container. On ne s'attendrait pas à trouver quoi que ce soit dans un container aussi simple, et comme prévu, ce n'est pas le cas, mais cela montre à quel point il est facile d'utiliser cet outil pour analyser des containers.
Grype et Trivy ont de nombreux cas d'utilisation simples. Par exemple, vous pouvez analyser périodiquement les containers utilisés pour vérifier que les mises à jour n'ont pas introduit de vulnérabilités via des dépendances. De manière plus créative, vous pouvez utiliser Grype ou Trivy pour automatiser l'analyse dans le cadre d'une chaîne d'outils afin de détecter et de signaler les vulnérabilités avant qu'un container ne soit mis en production.
10/ Aircrack-ng
Aircrack-ng est une suite d'outils en ligne de commande destinés aux attaques contre les réseaux sans fil. Bien que les attaques Wifi puissent sembler dépassées (et, compte tenu de la fréquence à laquelle ces outils sont mis à jour, ce n'est pas une idée fausse), il existe encore des situations où il est utile de savoir comment effectuer des tâches telles que le reniflage, le craquage WEP et l’attaque en force brute des mots de passe WPA.
Par exemple, si vous devez tester la sécurité d'un bureau distant, d'un réseau domestique ou d'un site physique, vous pourriez être confronté à un système sans fil plus ancien. Dans ces situations, Aircrack-ng est un outil utile.
Aircrack-ng reste un testeur Wifi omniprésent qui est inclus dans les référentiels logiciels par défaut de la plupart des distributions Linux, dans de nombreuses distributions axées sur la sécurité et peut être exécuté via un container Docker.
11/Projet OWASP Amass
Le projet OWASP Amass est un outil de cartographie des surfaces d'attaque et de découverte des actifs conçu pour les activités de reconnaissance et de collecte d'informations. Il dispose de plusieurs fonctionnalités permettant d'identifier les actifs externes, les plages d'adresses IP, les environnements, les sous-domaines et d'autres points de données pertinents.
Si la collecte de renseignements open source est précieuse dans les tests d’attaque, Amass a également des applications pour les tests de défense. Par exemple, la collecte périodique d'environnements ou d'actifs visibles de l'extérieur peut aider à identifier les technologies informatiques qui ne sont pas utilisées en production, telles que les actifs de test ou de développement dans le cloud, les environnements non gérés, etc.
12/ Kali, 13/ Parrot et 14/ BlackArch
Bien qu'il ne s'agisse pas d'outils uniques, Kali, Parrot et BlackArch sont des suites d'outils populaires qui sont des distributions Linux spécialisées et axées sur la sécurité, mettant l'accent sur les tests d'intrusion.
Les administrateurs qui débutent dans le monde des tests d'intrusion peuvent tirer profit de ces suites, car elles simplifient la tâche de recherche, de collecte et d'installation d'outils individuels et créent à la place une collection d'outils prêts à l'emploi que vous pouvez prendre et utiliser immédiatement. BlackArch est une suite de plus de 2 800 outils distincts, et les suites Kali et Parrot contiennent chacune plus de 600 outils.
Comment choisir les bons outils de test d'intrusion
Lorsque vous évaluez des outils de test d'intrusion open source, tenez compte des éléments suivants :
- Facilité de mise en œuvre.
- Niveau d'automatisation.
- Configuration pour éliminer les faux positifs.
- Compatibilité avec les outils de sécurité existants.
- Clarté et exhaustivité des résultats et des rapports.
- Assistance et documentation technique.
Assurez-vous toujours que les outils bénéficient d'une assistance active. Il est également important d'exécuter plus que des commandes et des analyses de base lors de l'évaluation des outils. Si l'automatisation de certains aspects des tests d'intrusion permet de détecter les failles les plus évidentes dans les grands réseaux, vous devez faire preuve de créativité, tout comme un pirate informatique, et essayer différentes approches pour accéder aux réseaux, installer des logiciels malveillants et voler des données.
Si vous manquez de compétences en matière de tests d'intrusion, le Manuel de méthodologie des tests de sécurité Open source est un bon point de départ. Il s'agit d'une méthodologie complète pour la sécurité et les tests d'intrusion, l'analyse de la sécurité et la mesure de la sécurité opérationnelle.
