Fermer

septembre 13, 2019

Ethical Hacking – Automatiser la collecte d'informations


En tant que consultants, nous recherchons constamment des lacunes dans les industries qui utilisent la technologie. L'une des lacunes les plus courantes que nous constatons concerne la sécurité de l'information. Malheureusement, la sécurité de l'information est souvent ignorée et prise au sérieux après qu'un incident se soit produit. Pour combler cette lacune, j'étudie actuellement pour obtenir la certification Offensive Security Certified Professional (OSCP). Le programme OSCP est une certification extrêmement stimulante et pratique du piratage éthique. L'étape de la collecte des informations constitue une partie importante des tests de pénétration (souvent dénommés pentesting).

Ma méthodologie de pentest d'origine consistait essentiellement à analyser tous les ports d'un serveur, puis à examiner les résultats. Les ports sont comme des portes de périphériques. Le logiciel nécessite que certaines portes de périphériques soient ouvertes pour pouvoir communiquer avec d'autres périphériques. Une analyse de port a pour but de tenter d'identifier le logiciel utilisé sur une machine cible, puis de rechercher les erreurs de configuration ou les vulnérabilités de ce logiciel. Tout en rassemblant des informations sur plus de 50 machines différentes dans l'environnement de laboratoire, je me suis rendu compte que je perdais beaucoup de temps à filtrer plusieurs fichiers de résultats d'analyse.

Pour gagner du temps pendant mes travaux en laboratoire, j'ai simplifié ma méthodologie en effectuant d'abord des analyses pour voir si la cible était en ligne / accessible. Ensuite, si le périphérique cible était en ligne, j'exécutais une autre analyse pour vérifier les 100 ou 200 principaux ports les plus utilisés. En essayant de pirater un périphérique spécifique, j'ai trouvé utile d'effectuer une analyse complète du port (protocoles TCP + UDP, ports 1-65535), ce qui prend beaucoup de temps. La raison pour laquelle une analyse de port complète est effectuée est d'essayer d'identifier chaque port ouvert sur la cible. Souvent, dans les laboratoires et sur les réseaux d'entreprise, les logiciels sont configurés pour s'exécuter sur des numéros de port inattendus. Cela rend plus difficile la détection et la prévision des vulnérabilités sur la machine. Maintenant, imaginez que vous exécutiez simultanément une analyse complète des ports de plusieurs machines sans avoir établi que la machine était en ligne. Cela finit par être des heures de temps perdu. Malheureusement, j'ai appris cela à la dure et j'ai commis l'erreur de lancer un scan complet du port sur plusieurs machines dès le premier jour des travaux pratiques. Mes analyses ont duré des heures et la plupart des appareils que je vérifiais n'étaient même pas en ligne. Heureusement, j'ai appris de mon erreur, pris des notes minutieuses et axé sur l'amélioration des processus.

Grâce à l'amélioration de ma méthodologie, j'ai également été en mesure de développer un outil de collecte d'informations permettant de réduire considérablement le temps passé à analyser et analyser les résultats. Ceux d'entre vous qui connaissent bien les outils de pentestage savent probablement que Metasploit a une fonctionnalité similaire à nmap. Lors de l'examen OSCP, l'utilisation de Metasploit est restreinte, ce qui m'a encouragé à développer d'autres méthodes de reconnaissance sur le réseau de laboratoires. J'ai pu utiliser python pour exécuter nmap et renvoyer tous les résultats au format JSON. Le stockage des résultats au format JSON facilite la recherche dans les résultats et peut être chargé dans une base de données non-SQL telle que CouchDB. Avec CouchDB, je peux télécharger tous mes résultats et les utiliser comme métriques. Je peux consulter les analyses au fil du temps, comparer les résultats, collaborer avec des collègues et filtrer rapidement les résultats pour identifier les vulnérabilités potentielles d'une cible. En fin de compte, ce nouvel outil fournit bien plus d’informations que même l’outil Metasploit nmap. Cela le rend parfait pour personnaliser la collecte d'informations et les métriques.

Ceci est un excellent exemple de la façon dont une bonne compréhension d'un processus peut aider à mettre en œuvre l'automatisation. Maintenant que je dispose d’un outil de base pour la collecte d’informations, je peux créer un cadre d’automatisation permettant de rechercher automatiquement des vulnérabilités, d’identifier les correctifs recommandés et de rechercher les exploits connus d’une vulnérabilité. Ce type de recherche est ce sur quoi les pentesters passent le plus de temps.

Voici quelques captures d'écran du fonctionnement de l'outil de reconnaissance.

L'infrastructure d'analyse prend en charge différents types de spécifications de plage d'adresses cibles, de types d'analyse nmap (y compris personnalisées), de spécification de répertoire de sortie et de spécification de nom de table de base de données pour le stockage des résultats.

Cette vue concerne différentes bases de données locales stockant nos résultats. le nom par défaut, date du jour, s’il n’est pas défini, ce qui facilite l’exécution de nouvelles analyses et le stockage des résultats.

Ceci est une vue d'une base de données et de tous les documents qu'elle contient. En cliquant sur un document, vous accédez à sa vue JSON.

Ceci est la vue JSON. Voici les résultats de l'analyse que vous pouvez filtrer / interroger par rapport à ceux-ci.

J'espère que cet outil montre comment résoudre les problèmes quotidiens en améliorant légèrement les processus. Une grande partie de l'amélioration des processus et de l'innovation réside dans la créativité: examinez les informations dont vous disposez et réfléchissez à la façon dont elles peuvent être utilisées pour simplifier vos tâches. L'outil de recon décrit dans cet article est en cours de développement et n'est en aucun cas parfait ou complètement complété. J'ai hâte de partager cet outil avec la communauté et de voir en quoi il va évoluer. Assurez-vous de disposer de l'autorisation avant d'exécuter des analyses de port sur des cibles que vous ne possédez pas personnellement. Je ne suis pas responsable de la manière dont l'outil est utilisé. L'outil de reconnaissance se trouve sur mon GitHub: https://github.com/grimmvenom/infosec/blob/master/Scripts/ActiveRecon/active-recon.py .




Source link