Articles

Collecte d’informations [Mise à jour 2019]

Introduction à la collecte d’informations

Les tests de pénétration commencent par une phase de pré-engagement au cours de laquelle le testeur de stylo se familiarise avec le client, les objectifs, les limites et la portée du test de pénétration. Après cela, le testeur de stylo commence le test de pénétration réel et procède généralement à un effort de collecte d’informations dans lequel le testeur de stylo localise les informations accessibles au public liées au client et cherche des moyens qui pourraient être exploités pour entrer dans les systèmes. Dans cette phase, le testeur de stylo utilise également des outils tels que des scanners de ports qui peuvent l’aider à comprendre les systèmes du réseau et les logiciels qui s’y trouvent. En utilisant ces informations, le testeur de stylo peut identifier l’impact que les différentes constatations peuvent avoir sur le client et la partie analyse de vulnérabilité peut se dérouler là où les informations trouvées sont utilisées pour localiser les vulnérabilités possibles dans les systèmes et la phase d’exploitation ultérieure où les vulnérabilités sont tentées d’être exploitées pour pénétrer dans le système. Ainsi, sans une bonne collecte d’informations, il n’y aurait pas de vulnérabilités à trouver et à exploiter.

Il est maintenant temps de faire une distinction importante – celle entre la collecte d’informations passive et active. La collecte passive d’informations fait référence à la collecte d’autant d’informations que possible sans établir de contact entre le testeur de stylo (vous-même) et la cible sur laquelle vous collectez des informations. La collecte active d’informations implique un contact entre le testeur de stylo et la cible réelle. Lorsque vous interrogez activement les systèmes pour obtenir les informations, vous vous retrouvez dans une situation juridique sombre, car la plupart des pays interdisent les tentatives d’intrusion dans les systèmes sans l’autorisation nécessaire. Ainsi, si vous n’avez pas l’autorisation de tester un système (une carte de sortie de prison), il n’est pas judicieux d’effectuer une interrogation active contre celui-ci. Par exemple, si vous utilisez Nmap pour trouver des ports et des applications ouverts sur un système distant souhaité, vous interagissez activement avec ce système pour tenter de trouver des faiblesses et si vous effectuez une recherche whois, naviguez sur le site Web de l’entreprise ou interrogez les moteurs de recherche pour obtenir des informations sur l’entreprise, vous collectez passivement des informations. Un exemple de collecte active d’informations consiste à appeler le personnel de l’entreprise et à tenter de le tromper pour qu’il divulgue des informations privilégiées.

La phase de pré-attaque peut être décrite de la manière suivante:

  1. Collecte passive d’informations pour découvrir des informations préliminaires sur les systèmes, leurs logiciels et les personnes impliquées dans la cible.
  2. Détermination passive de la plage de réseau pour connaître les machines du réseau sur lesquelles vous pouvez vous concentrer.
  3. Le testeur de stylo vérifie activement lesquelles des machines localisées sont vivantes pour savoir quoi cibler.
  4. Le testeur de stylo recherche activement les ports ouverts et les applications qui s’y trouvent pour chacune des machines du réseau afin de trouver le moyen optimal de s’introduire.
  5. Le testeur de stylo utilise des outils tels que traceroute et Cheops pour empreintes digitales du système d’exploitation derrière chacune des machines.
  6. Le testeur de stylo cartographie le réseau en notant et en visualisant toutes les données collectées et commence par la phase d’attaque

Outils de collecte d’informations passifs

theHarvester

Nous pouvons utiliser Le Harvester pour collecter des e-mails sur des domaines ciblés. Nous pouvons ensuite utiliser ces e-mails pour lancer de l’ingénierie sociale ou lancer d’autres attaques. Le Harvester est un outil construit en Python, donc pour l’exécuter, vous auriez besoin de Python sur votre machine et de préférence ajouté à votre variable d’environnement PATH. Vous pouvez télécharger Python à partir de https://www.python.org/downloads/. Si vous avez git sur votre machine, vous pouvez ouvrir votre Terminal, accéder au dossier souhaité et taper git clone https://github.com/laramies/theHarvester.git
pour télécharger l’outil. Sinon, il vous suffirait d’ouvrir le référentiel GitHub, de cliquer sur « Cloner ou télécharger » et de télécharger le code source sous forme de ZIP. Une fois que vous l’avez installé, vous pouvez ouvrir votre ligne de commande / Terminal et accéder au dossier dans lequel vous avez installé Le Harvester et taper python theHarvester.py pour obtenir l’écran d’aide.

Figure 1: L’écran d’aide de la moissonneuse devrait ressembler à ceci

Maintenant, si nous voulons rechercher des e-mails dans le domaine dimoff.biz nous pouvons effectuer une requête comme ceci:

python theHarvester.py – d dimoff.biz -l 100-b google

Cela va rechercher des e-mails dans Google situé dans dimoff.biz et limitera la recherche aux 100 premiers résultats de requête dans Google.

Figure 2: Aucun e-mail trouvé dans mon domaine car je les ai obscurcis

Essayons de rechercher des e-mails sur le site Web de l’Institut InfoSec. Nous tapons la même requête mais changeons le domaine : python theHarvester.py – d infosecinstitute.com -l 100-b google

Figure 3: La requête pour les e-mails de l’Institut InfoSec est venue avec quatre e-mails dont nous pouvons potentiellement profiter

Pour améliorer notre recherche, nous pouvons essayer la recherche avec différents moteurs de recherche. Si nous recherchons des e-mails dans les 30 premiers résultats du moteur de recherche de Yahoo, nous nous retrouvons avec un seul e-mail, mais il est différent des quatre que nous avons collectés avec Google. Nous tapons python theHarvester.py – d infosecinstitute.com – l 20-b yahoo et se retrouvent avec la sortie suivante:

Figure 4: La recherche de Harvester avec Yahoo a donné un résultat différent

Comme vous l’avez peut-être remarqué, en plus de cracher les e-mails dans ce domaine, le Harvester répertorie tous les sous-domaines qu’il a réussi à trouver associés au domaine donné et les mappe à leur adresse IP respective. Ces informations sont utiles ainsi que les différents sous-domaines peuvent utiliser différents logiciels de serveur, cadres de développement de logiciels et peuvent même se trouver sur différentes machines, ce qui signifierait que ces sous-domaines peuvent être sujets à différentes vulnérabilités et peuvent avoir différents niveaux d’exploitabilité.

Netcraft

Netcraft est une application web qui nous permet de voir des informations détaillées sur le logiciel, le serveur Web et l’hébergeur impliqués dans un site Web arbitraire. Netcraft rend la collecte de ces informations indolore car il faut des millisecondes pour connaître le logiciel derrière le site Web. Par exemple, savoir qui est le fournisseur d’hébergement Web du site Web peut s’avérer utile si vous décidez de lancer une attaque d’ingénierie sociale. Ensuite, vous pouvez écrire un e-mail à un administrateur semblant provenir de sa société d’hébergement Web, lui demandant d’ouvrir un lien et de modifier un paramètre. De plus, les différents cadres de développement logiciel utilisés par le site Web que vous pouvez trouver avec Netcraft peuvent avoir leurs propres vulnérabilités que vous pouvez ensuite tenter d’exploiter. L’image ci-dessous montre une recherche sur l’Institut InfoSec dans http://www.netcraft.com/

Figure 5: En recherchant des informations sur l’Institut InfoSec dans Netcraft

Nous pouvons voir que le fournisseur d’hébergement de l’Institut InfoSec est Digital Ocean, nous pouvons donc le noter quelque part. Nous pouvons également voir que le site Web utilise un système de gestion de contenu (CMS) appelé Expression Engine, un framework de développement logiciel appelé CodeIgniter, que le langage principal est PHP et ainsi de suite. Nous pouvons rechercher des failles dans ces technologies qui soumettraient le site Web à des vulnérabilités. Nous pouvons également voir que le logiciel du serveur Web a récemment été modifié à partir d’Apache/2.2.31. Connaître la version exacte du logiciel serveur est utile car les vulnérabilités de divers logiciels serveurs sont publiées en ligne régulièrement et corrigées avec des versions plus récentes du logiciel qui ne sont souvent pas implémentées à temps par la plupart des sites Web. De plus, la connaissance du logiciel serveur réduit la portée de la recherche. Si nous savons que le serveur exécute Apache, nous ne rechercherions pas de vulnérabilités pour le serveur Microsoft IIS. Cependant, parfois, les informations du serveur fournies par le site Web peuvent être un appât / un pot de miel.

Maltego

Maltego est un outil d’exploration de données qui peut nous aider à obtenir et à visualiser la collecte de renseignements. Il a plusieurs versions, dont l’une est libre de jouer avec. La version gratuite est appelée « Community Edition » et vous pouvez la télécharger à partir de https://www.paterva.com/web7/downloads.php#tab-3. Tout ce que vous avez à faire pour l’exécuter est d’enregistrer un compte auprès de Paterva. La version gratuite limite cependant le nombre de résultats minés qui peuvent vous être montrés.

Figure 6: Les machines pré-construites de Maltego limitent les résultats à 12 entités dans la version gratuite

Maltego Primer

Une fois que vous avez installé Maltego, configuré votre compte et connecté, vous devriez voir une dernière étape comme indiqué ci-dessous:

Figure 7: Maltego installé avec succès

Cliquez sur « Ouvrir un graphique vide et laisse-moi jouer. »

Dans la palette à gauche, vous pouvez voir les différentes entités que vous pouvez intégrer dans vos recherches. Faites glisser et déposez l’entité de domaine dans la palette vers le graphique. Vous devriez voir une seule icône de Terre avec le site paterva.com comme une étiquette.

Figure 8: Ajout d’une entité de domaine au graphique

Maintenant, remplacez le nom de domaine par le domaine pour lequel vous souhaitez acquérir de nouvelles informations. Pour ce faire, vous devez double-cliquer sur le nom de domaine et taper le nom de domaine souhaité.

Après avoir préparé le domaine à explorer, vous pouvez exécuter des transformations ou des requêtes pour différentes informations pour le domaine en cliquant avec le bouton droit de la souris sur l’entité de domaine et en choisissant la requête souhaitée.

Figure 9: Une tranche des différentes transformations disponibles dans Maltego

Pour illustrer le fonctionnement de ces transformations, si vous choisissez de transformer l’entité en numéros de téléphone à l’aide des moteurs de recherche, vous obtiendrez quelques numéros de téléphone pour l’Institut InfoSec. Vous pouvez utiliser ces numéros de téléphone pour rendre votre attaque d’ingénierie sociale plus convaincante, employer le vishing, le prétextage, etc.

Figure 10: La transformation en numéros de téléphone à l’aide des moteurs de recherche est appliquée sur l’Institut InfoSec et cinq numéros de téléphone sont visualisés.

Maintenant, si nous appliquons une autre transformation, nos résultats augmenteront. Mieux encore, nous pouvons appliquer de nouvelles transformations aux résultats de nos transformations précédentes.

Pour illustrer cela, si nous cliquons avec le bouton droit sur le premier numéro de téléphone renvoyé, nous obtiendrions différentes transformations que nous pouvons lui appliquer. Disons que nous choisissons de transformer le numéro de téléphone en URL (ce qui signifie, obtenir les URL où le numéro de téléphone est mentionné). Cela nous amènerait un niveau plus profond dans la hiérarchie / relation des résultats et nous montrerait quelques URL où peut vérifier manuellement qui répond au numéro de téléphone et ainsi de suite.

Figure 11: Aller plus loin dans Maltego. Obtenir les URL où l’un des numéros de téléphone associés à l’Institut InfoSec est mentionné

Comme vous pouvez le voir, il y a beaucoup d’entités et de transformations à explorer.

Outils actifs de collecte d’informations

Nmap permet d’exécuter des analyses sur des machines ciblées pour voir quels ports sont ouverts sur elles et donc quelles applications s’exécutent sur elles. La différence avec les outils mentionnés ci-dessus est que vous interagissez activement avec la machine donnée en lui envoyant des paquets spécialement conçus. De plus, la découverte de ports ouverts Nmap nous permet potentiellement de détecter le système d’exploitation de la machine et de découvrir les services qui s’exécutent sur les ports ouverts.

Vous pouvez télécharger Nmap depuis https://nmap.org/download.html ou http://nmap.en.softonic.com/. Vous pouvez utiliser Nmap à partir de votre interface de ligne de commande ou d’une application graphique.

Après l’installation, pour voir les différentes façons dont vous pouvez utiliser nmap, il vous suffit de taper nmap et d’appuyer sur Entrée.

Figure 12: Écran d’aide de Nmap

Une simple vérification des ports ouverts et des services correspondants sur ceux-ci est nmap-sS-Pn <ADRESSE IP >. Cela tentera une découverte furtive et traitera la machine comme vivante.

Pour détecter le système d’exploitation sur lequel la machine fonctionne, vous pouvez utiliser l’indicateur -O et ainsi de suite.

Si Nmap semble être un outil que vous souhaitez explorer davantage, veuillez consulter l’article d’Irfan Shakeel sur Nmap.

Conclusion

Nous avons démontré les bases du processus de test de pénétration, le rôle de la collecte d’informations dans ce processus et nous avons démontré certains des outils les plus populaires pour collecter des informations. L’utilisation de ces outils peut non seulement vous aider à recueillir suffisamment d’informations pour une collecte d’informations fructueuse, mais ils peuvent également vous aider à augmenter l’efficacité et l’efficacité de l’ensemble du processus de test d’intrusion.