Utiliser Nmap avec d’autres outils de sécurité
Sommaire
I. Présentation
Dans ce chapitre, nous allons passer en revue différents cas classiques d’utilisation de Nmap avec d’autres outils de sécurité gratuits et open source. Nous utiliserons notamment ce qui a été appris dans les chapitres précédents et cela nous permettra de renforcer encore plus la puissance et l’efficacité de Nmap.
La possibilité d’enregistrer les résultats d’un scan Nmap en XML rend de fait compatible ses données avec un tas d’autres outils. La quasi-totalité des langages de programmation et de scripting possédant des librairies capables de parser du XML aujourd’hui, cela facilite grandement le traitement de ces données. Plusieurs outils, orientés sécurité offensive notamment, possèdent des fonctions de traitement du format XML généré par Nmap. Voyons cela plus en détail.
Je vais évoquer quelques outils offensifs sans vraiment détailler leur usage ou leur fonctionnement, je partirai du principe que le lecteur en connaît l’usage basique et qu’ils sont déjà opérationnels. Ce chapitre intéressera surtout les professionnels de la cybersécurité, les personnes en formation ou ayant décidé d’approfondir le sujet.
II. Importer les résultats de Nmap dans Metasploit
Le premier outil que nous allons traiter au sujet de la réutilisation des données de Nmap dans le cadre de la sécurité offensive et la recherche de vulnérabilité est Metasploit.
Metasploit est un framework d’exploitation et d’attaque. Il s’agit d’une solution gratuite et d’un outil reconnu qui contient de très nombreux modules écrits en Ruby ou en Python. Ceux-ci permettent d’exploiter des vulnérabilités, d’opérer des attaques, de générer des backdoors, de gérer leur callback (fonction de C&C ou Communication and Control) et d’utiliser le tout de manière uniforme.
Ce framework d’exploitation très connu et très utilisé peut notamment travailler avec une base de données postgreSQL dans laquelle vont être stockés les hôtes, ports, services, informations d’authentification et autres.
- Documentation officielle de Metasploit : https://docs.metasploit.com/
C’est ici que Nmap et sa sortie entrent en jeu, car le format XML de la sortie Nmap peut être importé très facilement dans la base de données de Metasploit afin d’alimenter sa base d’hôtes et de services, qui pourront alors rapidement être désignés comme cibles de telle ou telle attaque.
Une fois dans mon shell interactif Metasploit, je commence par créer un workspace, sorte d’espace propre à mon environnement du jour :
# Création d’un workspace Metasploit
msf6 > workspace -a SI_siege
Une fois mon workspace créé, nous devons valider que la communication avec la base de données est opérationnelle :
# Récupérer l'état de la base de données
msf6 > db_status
[*] Connected to msf. Connection type: postgresql.
Enfin, nous pouvons utiliser la commande Metasploit “db_import” pour importer notre scan Nmap au format XML :
# Importer un fichier Nmap XML dans la base de données
msf6> db_import /tmp/nmap_10.10.10.0.xml
Voici le résultat de l’exécution de l’ensemble de ces commandes :
Vous voyez ici que chaque hôte est importé, avec ses services. Ces données peuvent alors être affichées via la commande “services” ou “services -p <port>” pour un service spécifique :
Enfin, nous pouvons très facilement et rapidement réutiliser ces données dans un module grâce à l’option “-R”, qui va “convertir” la liste des services obtenue en entrée pour la directive “RHOSTS”, qui permet justement de spécifier les cibles de l’attaque à mener. Voici un exemple avec le module “ssh_login” qui permet d’effectuer une attaque par brute force sur les serrvices SSH :
Ceci n’est qu’un petit exemple de ce qu’il est possible de faire grâce aux données de Nmap dans Metasploit, mais il permet de vous donner une petite idée de comment ces informations peuvent être très rapidement et facilement réutilisées dans le cadre d’un test d’intrusion, recherche de vulnérabilité ou cyberattaque. Il est aussi intéressant de mentionner que Nmap peut être directement exécuté depuis Metasploit pour un import des résultats dans la base de données (commande “db_nmap”), encore un sujet intéressant à traiter 🙂 !
III. Utiliser Nmap avec le scanner web Aquatone
Le second outil que je souhaite vous présenter dans ce chapitre sur la réutilisation des résultats de Nmap dans la cadre de la sécurité offensive et l’analyse de vulnérabilité est Aquatone.
Aquatone est un scanner web conçu pour explorer efficacement les applications web d'un réseau. Il propose des fonctionnalités avancées pour la découverte des services web, l'identification des sous-domaines, l'analyse des ports et une prise d’empreinte des applications web. Le tout présenté de manière claire et concise dans des rapports au format HTML, JSON et texte afin de faciliter l'analyse de la sécurité web.
Comme pour Metasploit, Aquatone est capable de traiter directement le format XML de Nmap pour s’en servir de cible à scanner. Il sait notamment extraire uniquement les hôtes et services qui l’intéressent (les services web) parmi toutes les données qu’un rapport Nmap peut contenir.
- Lien de l’outil : Github - Michenriksen/aquatone
Pour utiliser la sortie XML de Nmap avec Aquatone, il suffit d’envoyer le fichier XML dans un pipe qui sera consommé par Aquatone, voici un exemple :
# Transmission de la sortie XML de Nmap à Aquatone
cat /tmp/nmap_10.10.10.0.xml |./aquatone -nmap
Là où Aquatone fait normalement une découverte des ports sur les hôtes pour y trouver des services web, il va dans ce contexte uniquement se baser sur les résultats de Nmap qui a déjà fait cette opération, ce qui représente un gain de temps :
Voici, pour information, un extrait du rapport produit par Aquatone :
À titre personnel, j’utilise souvent Aquatone pour avoir une vue rapide sur les types de sites web présents sur le réseau, notamment grâce à sa fonctionnalité de screenshot.
Là encore, le fait d’avoir un rapport Nmap complet au format XML permet de gagner du temps et de facilement le réutiliser dans un autre outil.
IV. Conclusion
Nous voyons bien à travers ces deux exemples que le format XML de Nmap facilite l’utilisation de ses résultats par d’autres outils, car il s’agit d’un format de données structuré et utilisable facilement. Il existe bien d’autres outils capables de traiter ces résultats, comme des outils de reporting automatisés, de représentation graphique ou des scanners de vulnérabilité plus complexes et propriétaires.
Il est bien entendu tout à fait possible de développer vos propres scripts et outils en Python, PowerShell ou autre langage possédant une librairie de parsing XML pour manipuler et réutiliser à votre guise les données des résultats Nmap.
Ce chapitre nous permet de clore le module de ce cours concernant une utilisation plus avancée de Nmap, notamment pour la recherche de vulnérabilité à travers les scripts NSE.
Le prochain module de ce cours sera orienté, entre autres, autour de quelques bonnes pratiques et astuces supplémentaires, plus techniques, sur les scans spécifiques que permet de réaliser Nmap. Nous y étudierons aussi les options d’optimisation de la performance des scans, très utiles à connaître pour les scans sur de larges réseaux.