Dans cette étape, nous allons apprendre à connaître les différents formats de sortie que propose Nmap. Les formats de sortie sont essentiels en cybersécurité car ils nous permettent de présenter les résultats de numérisation (scanning) de différentes manières, en fonction de nos besoins. Par exemple, certains formats sont faciles à lire pour les humains, tandis que d'autres sont conçus pour être analysés par des machines, ce qui est utile lors de l'intégration avec d'autres outils.
Nmap prend en charge plusieurs formats de sortie, chacun ayant ses propres caractéristiques uniques et ses cas d'utilisation :
- Sortie normale (par défaut) : C'est un format lisible par l'homme. Il présente les résultats de numérisation d'une manière qui est facile à comprendre d'un coup d'œil, ce qui le rend idéal pour une analyse manuelle rapide.
- Sortie XML (
-oX
) : XML signifie Extensible Markup Language (Langage de balisage extensible). C'est un format structuré, ce qui signifie que les données sont organisées de manière hiérarchique. Cela facilite l'analyse des données par des programmes et des scripts, et il est couramment utilisé lors de l'intégration de Nmap avec d'autres outils de sécurité.
- Sortie filtrée (grepable) (
-oG
) : C'est un format basé sur les lignes. Il est conçu pour être facilement traité avec des outils Unix tels que grep, awk et cut. Ce format est utile lorsque vous souhaitez extraire rapidement des informations spécifiques des résultats de numérisation.
- Sortie pour les script - kiddies (
-oS
) : Ce format est similaire à la sortie normale, mais il inclut des dessins ASCII. Cependant, il est rarement utilisé dans les scénarios pratiques.
- Tous les formats (
-oA
) : Cette option vous permet de sauvegarder les résultats de numérisation simultanément au format normal, XML et filtré. C'est un moyen pratique d'avoir tous les types de sorties disponibles à la fois.
Explorons ces formats en numérisant à nouveau votre serveur web local.
XML, ou Extensible Markup Language, est un format structuré largement utilisé pour le stockage et l'échange de données. Sa structure hiérarchique facilite l'analyse des données par les programmes, c'est pourquoi il est couramment utilisé pour l'intégration avec d'autres outils de sécurité.
-
Exécutez une numérisation avec Nmap et sauvegardez la sortie au format XML :
nmap -p 8080 localhost -oX /home/labex/project/scan_results.xml
Dans cette commande, -p 8080
spécifie que nous numérisons le port 8080, localhost
est la cible que nous numérisons (notre machine locale), et -oX
indique à Nmap de sauvegarder la sortie au format XML dans le chemin de fichier spécifié.
-
Affichez la sortie XML :
cat /home/labex/project/scan_results.xml
La commande cat
est utilisée pour afficher le contenu d'un fichier. Lorsque vous exécutez cette commande, vous verrez une sortie au format XML qui ressemble à ceci (abrégé) :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE nmaprun>
<nmaprun scanner="nmap" args="nmap -p 8080 localhost -oX /home/labex/project/scan_results.xml" ...>
<scaninfo type="connect" protocol="tcp" .../>
<verbose level="0"/>
<debugging level="0"/>
<host>
<status state="up" reason="conn - refused" reason_ttl="0"/>
<address addr="127.0.0.1" addrtype="ipv4"/>
<hostnames>
<hostname name="localhost" type="user"/>
<hostname name="localhost" type="PTR"/>
</hostnames>
<ports>
<port protocol="tcp" portid="8080">
<state state="open" reason="syn - ack" reason_ttl="0"/>
<service name="http - proxy" method="table" conf="3"/>
</port>
</ports>
<times srtt="97" rttvar="5000" to="100000"/>
</host>
<runstats>...</runstats>
</nmaprun>
-
Le format XML inclut des informations détaillées organisées dans une structure hiérarchique. Extraitons les informations spécifiques sur le port :
grep -A5 "<port " /home/labex/project/scan_results.xml > /home/labex/project/port_details.txt
La commande grep
est utilisée pour rechercher un motif spécifique dans un fichier. -A5
signifie afficher 5 lignes après la ligne qui correspond au motif. Nous recherchons les lignes contenant <port
dans le fichier XML et sauvegardons les résultats dans un nouveau fichier appelé port_details.txt
.
-
Affichez les détails du port extraits :
cat /home/labex/project/port_details.txt
L'exécution de cette commande vous montrera la section d'informations sur le port à partir du XML.
La sortie filtrée est spécifiquement conçue pour être facilement traitée avec des outils tels que grep, awk et cut. Ces outils Unix sont très puissants pour le traitement de texte et peuvent nous aider à extraire rapidement les informations dont nous avons besoin des résultats de numérisation.
-
Exécutez une numérisation avec Nmap et sauvegardez la sortie au format filtré :
nmap -p 8080 localhost -oG /home/labex/project/scan_results.grep
Ici, -oG
indique à Nmap de sauvegarder la sortie au format filtré dans le fichier spécifié.
-
Affichez la sortie filtrée :
cat /home/labex/project/scan_results.grep
La sortie ressemblera à ceci :
## Nmap 7.80 scan initiated Wed Nov 8 12:40:00 2023 as: nmap -p 8080 localhost -oG /home/labex/project/scan_results.grep
Host: 127.0.0.1 (localhost) Status: Up
Host: 127.0.0.1 (localhost) Ports: 8080/open/tcp//http - proxy///
## Nmap done at Wed Nov 8 12:40:00 2023 -- 1 IP address (1 host up) scanned in 0.05 seconds
-
Le format filtré met toutes les informations sur l'hôte sur une seule ligne, ce qui le rend facile à utiliser avec des outils de traitement de texte. Par exemple, vous pouvez extraire seulement la ligne contenant les informations sur le port :
grep "Ports:" /home/labex/project/scan_results.grep > /home/labex/project/ports_info.txt
Cette commande recherche les lignes contenant le mot "Ports:" dans le fichier de sortie filtré et sauvegarde la ligne correspondante dans un nouveau fichier appelé ports_info.txt
.
-
Affichez les informations sur les ports extraites :
cat /home/labex/project/ports_info.txt
Nmap propose une option pratique pour sauvegarder la sortie dans plusieurs formats à la fois en utilisant l'option -oA
. Cela peut vous faire gagner du temps si vous avez besoin de différents types de sorties pour différentes finalités.
-
Exécutez une numérisation avec Nmap et sauvegardez la sortie dans tous les formats :
nmap -p 8080 localhost -oA /home/labex/project/all_formats
Cette commande numérise le port 8080 sur la machine locale et sauvegarde les résultats au format normal, XML et filtré.
-
Vérifiez les fichiers créés :
ls -la /home/labex/project/all_formats.*
La commande ls -la
liste tous les fichiers dans un répertoire avec des informations détaillées. Lorsque vous exécutez cette commande, vous devriez voir trois fichiers :
all_formats.nmap
(sortie normale)
all_formats.xml
(sortie XML)
all_formats.gnmap
(sortie filtrée)
Maintenant, vous comprenez les différents formats de sortie que propose Nmap et comment les utiliser. Chaque format a ses propres avantages :
- La sortie normale est facile à lire pour les humains.
- La sortie XML est structurée pour l'analyse par des machines et l'intégration avec d'autres outils.
- La sortie filtrée est conçue pour une analyse rapide avec des outils de traitement de texte Unix.
Dans l'étape suivante, vous apprendrez à analyser ces sorties plus en détail.