Effectuez des analyses de ports avec Nmap sur n’importe quel serveur ou système
Nmap est le meilleur outil de découverte d’hôte et d’analyse de port disponible aujourd’hui. Nmap va nous permettre d’obtenir une grande quantité d’informations sur les ordinateurs de notre réseau, il est capable de scanner quels hôtes sont actifs, et même de vérifier s’ils ont des ports ouverts, s’ils filtrent les ports (ils ont un pare-feu activé) , et même savoir quel système d’exploitation utilise une certaine cible. Vous voulez tout savoir sur Nmap et comment l’utiliser ? Dans RedesZone, nous expliquons tout ce que vous devez savoir sur cet outil.
Principales caractéristiques
Nmap est un utilitaire entièrement gratuit et open source, il nous permet de découvrir des réseaux et des hôtes, ainsi que d’effectuer des audits de sécurité. Ce programme est compatible avec les systèmes d’exploitation Linux, Windows et macOS, mais dans tous, il est utilisé via la ligne de commande, bien que nous ayons la possibilité d’installer ZenMap, qui est l’utilitaire graphique de Nmap pour effectuer des scans de ports à travers le graphique interface utilisateur. Si vous ne voulez pas vous battre avec des commandes via la console, cette interface utilisateur graphique pourrait être utile pour les premiers pas avec ce super programme, cependant, lorsque vous aurez plus d’expérience, vous exécuterez sûrement toutes les commandes directement depuis le terminal.
Nmap nous permet de détecter des hôtes sur un réseau local, et également via Internet, de cette manière, nous pouvons savoir si ces hôtes (ordinateurs, serveurs, routeurs, commutateurs, appareils IoT) sont actuellement connectés à Internet ou au réseau local . Cet outil vous permet également d’effectuer une analyse de port sur les différents hôtes, de voir quels services nous avons actifs sur lesdits hôtes grâce au fait qu’il nous indiquera l’état de leurs ports, nous pouvons savoir quel système d’exploitation un certain ordinateur utilise , et nous pouvons même automatiser différents tests de pentes pour vérifier la sécurité du matériel.
Nmap a différents types de scan de ports, ils peuvent se faire via des segments TCP, des datagrammes UDP ou des paquets ICMP, en plus, il permet d’effectuer des scans de manière cachée afin qu’ils soient difficiles à détecter par les pare-feux. Bien entendu, nous pouvons faire du scan de port sur certains ports en particulier, entre plages de ports, plages d’adresses IP, possibilité d’utiliser des paquets TCP null, FIN, Xmas et ACK en plus de SYN, pour localiser les ports TCP ouverts.
D’autres fonctionnalités que cet outil nous offre est la possibilité de faire un inventaire complet du réseau, et même de vérifier si un certain hôte ou service est toujours opérationnel. Ce programme a été conçu pour analyser un grand nombre d’hôtes, donc si vous devez analyser plusieurs cibles, vous n’aurez aucun problème. Ce programme est très flexible, intègre des dizaines de techniques avancées pour analyser les hôtes et les ports, en plus, il permet également des audits via NSE (Nmap Search Engine), il est donc vraiment puissant.
Nmap a différents états sur les ports qui apparaîtront lorsque nous effectuerons une analyse de port. Il est essentiel de savoir ce que signifie chaque état de Nmap, car avec n’importe quel scan de port, il renverra des états différents.
État du port avec Nmap
- Ouvert – Une application accepte activement les connexions TCP ou UDP. Le port est ouvert et peut être utilisé, les pentesters pourront utiliser ce port ouvert pour exploiter le système. C’est l’état par défaut si nous n’avons pas de pare-feu bloquant l’accès.
- Fermé : Un port fermé est accessible car il répond à Nmap, cependant aucune application ne s’exécute sur ce port. Il est utile pour découvrir qu’un hôte est actif ou dans le cadre de la détection d’un système d’exploitation. Pour l’administrateur système, il est recommandé de filtrer ces ports avec le pare-feu afin qu’ils ne soient pas accessibles. Pour pentester, il est conseillé de laisser ces ports «fermés» pour les analyser plus tard, au cas où ils mettraient un nouveau service.
- Filtré : Dans cet état, Nmap ne peut pas déterminer si le port est ouvert, car un pare-feu filtre les paquets Nmap sur ce port. Ces ports filtrés sont ceux qui apparaîtront lorsque nous aurons un pare-feu activé. Nmap essaiera à plusieurs reprises d’essayer de se connecter, ce qui ralentit l’analyse des ports.
- Ouvrir | Filtré : Nmap ne sait pas si le port est ouvert ou filtré. Cela se produit parce que le port ouvert n’envoie aucune réponse, et cette absence de réponse peut provenir du pare-feu. Ce statut apparaît lorsque nous utilisons UDP et IP, et que nous utilisons les analyses FIN, NULL et Xmas.
- Fermé | Filtré : dans cet état, on ne sait pas si le port est fermé ou filtré. Cet état n’est utilisé que dans l’IP Idle Scan.
Une fois que nous avons vu les principales fonctionnalités de Nmap et l’état des ports dont nous disposons, nous allons l’installer et l’utiliser.
Téléchargez et installez Nmap sur n’importe quel système
La première chose que nous devons faire pour utiliser ce programme puissant est de le télécharger puis de l’installer. Dans la section de téléchargement Nmap, vous pouvez trouver tous les liens, les binaires et le code source pour l’installation sur les systèmes d’exploitation Windows, Linux et MacOS. Nous avons actuellement ce programme disponible dans tous les référentiels de systèmes d’exploitation basés sur Linux, son installation est donc très simple. Nous avons installé ce programme sous Ubuntu, mais en exécutant simplement la commande d’installation de votre système d’exploitation suivie de «nmap», vous installerez le programme sans difficultés.
sudo apt install nmap
Une fois installé, nous pouvons l’utiliser à partir d’un terminal, que ce soit sous Windows, Linux ou macOS. Dans tous les exemples que nous allons vous donner ci-dessous, nous avons utilisé le système d’exploitation Ubuntu, mais nous avons les mêmes commandes disponibles pour Windows et macOS, sans aucun changement.
Exemples d’utilisation de Nmap
Analyse rapide des ports
Si vous souhaitez effectuer une analyse rapide des ports vers un hôte spécifique, nous devons taper la commande suivante.
nmap [ip]
Par exemple, si nous voulons effectuer une analyse rapide des ports principaux vers un hôte avec l’adresse IP 192.168.1.2, l’ordre serait le suivant :
nmap 192.168.1.2
Le programme renverra les ports ouverts sur l’ordinateur cible.
Effectuer une analyse d’une plage de ports
Au lieu de scanner tous les ports, nous pouvons définir une plage de ports à vérifier. Pour cela nous exécuterons :
nmap -p [rango] [ip]
Si nous voulons effectuer un scan de port de TCP 20 à TCP 200 à l’adresse IP 192.168.1.2, il suffit d’exécuter la commande suivante :
nmap -p 20-200 192.168.1.2
Le programme indiquera dans cette plage quels ports sont ouverts.
Découvrez le système d’exploitation et plus de données d’hôte
Nous pouvons dire à Nmap de détecter le système d’exploitation. Il le fait en envoyant des paquets et en analysant la façon dont il les renvoie, étant totalement différent dans chaque système. Parallèlement à cela, il effectuera une analyse des ports et des services à la recherche de vulnérabilités. En outre, l’analyse renverra des informations utiles. Pour cela, nous devons exécuter :
nmap -A -v [ip]
Si nous voulons effectuer cette analyse vers l’adresse IP 192.168.1.2, nous pouvons exécuter la commande suivante :
nmap -A -v 192.168.1.2
Liste de toutes les commandes s
Ce programme est vraiment complet, jusqu’à présent nous avons utilisé les commandes de base pour découvrir les hôtes et aussi pour voir s’il a des ports ouverts, cependant, cela ne reste pas ainsi, et nous avons une grande liste de commandes pour en tirer le meilleur parti outil.
Sélectionnez les objectifs
Adresses ou plages IP, noms de systèmes, de réseaux, etc.
- Exemple : scanme.nmap.org, microsoft.com/24, 192.168.0.1, 10.0.0-255.1-254
- -iL liste de fichiers dans le fichier -iR n choisit les cibles au hasard, 0 ne se termine jamais
- –Exclure –excludefile fichier exclure les systèmes du fichier
Découvrir les systèmes
- -PS n tcp sync
- -PA n ping TCP ACK
- -PU n ping UDP
- -PM Netmask Req
- -Demande d’horodatage PP
- -PE Echo Req
- -sL analyse de la liste
- -PO ping par protocole
- -PN Ne pas ping
- -n ne pas faire de DNS
- -R Résoudre le DNS sur tous les systèmes cibles
- –Traceroute : trace la route vers le système (pour les topologies de réseau)
- -sP ping, identique à –PP –PM –PS443 –PA80
Techniques d’analyse des ports
- -sS analyse à l’aide de TCP SYN
- -sT analyse à l’aide de TCP CONNECT
- -sU analyse en utilisant UDP
- -s ET analyse à l’aide de SCTP INIT
- -sZ en utilisant COOKIE ECHO de SCTP
- -sO protocole IP
- -sW fenêtre TCP -sN
- –SF -sX NULL, FIN, NOEL
- –SA TCP ACK
Ports à analyser et ordre d’analyse
- -p n-mrango
- -p– tous les ports
- -pn, m, z spécifié
- -p U : nm, z T : n, m U pour UDP, T pour TCP
- -F rapide, le 100 commun
- –Top-ports n analyse les ports les plus utilisés
- -r pas aléatoire
Durée et exécution :
- -T0 paranoïaque
- -T1 furtif
- -T2 sophistiqué
- -T3 normale
- -T4 agressif
- -T5 folie
- –Min-hostgroup
- –Max-hostgroup
- –Taux min
- –Max-taux
- –Min-parallélisme
- –Max-parallélisme
- –Min-rtt-timeout
- –Max-rtt-timeout
- –Initial-rtt-timeout
- –Max-essais
- –Host-timeout –scan-delay
Détection de service et de version
- -sV : détection de version des services
- –Tous les ports n’excluent pas les ports
- –Version-all tester chaque analyse
- –Activité d’analyse de version de trace de version
- -Ou activer la détection de l’Operational S.
- -Détection floue du système d’exploitation devinette
- –Max-os-tries définit le nombre maximum de tentatives contre le système cible
Pare-feu / IDS Evasion
- -f fragmenter les paquets
- -D d1, d2 analyse de cape avec leurres
- -S ip spoof adresse source
- –G source usurper le port source
- –Randomiser l’ordre des hôtes
- –Spoof-mac mac changer la source MAC
Niveau de détail et paramètres de débogage
- -v Augmenter le niveau de détail
- –Raison des raisons par système et port
- -d (1-9) définit le niveau de débogage
- –Chemin de paquet de trace de paquet
Autres options
- –Le fichier de reprise continue l’analyse abandonnée (prenant les formats de sortie avec -oN ou -oG)
- -6 activer l’analyse IPV6
- -A agressif, identique à -O -sV -sC –traceroute
Options interactives
- v / V augmenter / diminuer le niveau de détail de l’analyse
- d / D augmenter / diminuer le niveau de débogage
- p / P activer / désactiver le suivi des paquets
Scénarios
- -sC effectue l’analyse avec les scripts par défaut
- –Script d’exécution du fichier de script (ou tout)
- –Script-args n = v fournit des arguments
- –Le script-trace montre la communication entrante et sortante
Formats de sortie
- -oN enregistrer au format normal
- -oX enregistrer au format XML
- -oG enregistrer au format pour utiliser plus tard Grep
- -oA enregistrer dans tous les formats ci-dessus
Ce sont principalement les commandes disponibles pour Nmap. Avant de terminer, il faut dire que Nmap dispose d’une multitude d’options pour effectuer une analyse complète du réseau. Nous pouvons consulter toutes les options disponibles en tapant :
nmap --help
Nmap est sans aucun doute un outil très simple et complet pour effectuer des audits de réseau, mais cela ne s’arrête pas là, nous avons également Nmap NSE disponible pour le pentesting avancé.
Nmap NSE: qu’est-ce que c’est et à quoi ça sert
Nmap Search Engine ou également connu sous le nom de Nmap NSE, est une grande base de données avec des milliers de scripts qui nous permettront d’automatiser les tests de pente sur les systèmes et les réseaux. La première étape de tout pentesting consiste à effectuer une analyse de port, une fois cette analyse de port terminée, nous pouvons essayer d’exploiter les vulnérabilités des services qui s’exécutent derrière un certain port, par exemple, nous pourrions attaquer des serveurs Web, des serveurs Samba, FTP , serveurs SSH, serveurs DNS, vérifiez si les différents services ont des vulnérabilités connues ou essayez directement de vous y authentifier, s’ils disposent d’une authentification telle que FTP ou SSH.
NMAP NSE est un ensemble de scripts qui nous permettra d’automatiser de nombreuses actions, comme effectuer des attaques en force brute sur les serveurs Samba, afin d’essayer d’y accéder et d’en prendre le contrôle, bien que nous puissions également l’attaquer pour effectuer un déni de attaque de service et que le service n’est pas disponible. Nous pourrions faire la même chose avec les serveurs FTP, les serveurs SSH et bien plus, surtout, les serveurs Web qui doivent avoir un port ouvert dans le pare-feu sont ceux qu’il faut le plus protéger pour éviter ou atténuer les attaques qui peuvent être menées sur nous.
Par exemple, si l’on veut effectuer une attaque par force brute, basée sur une liste d’utilisateurs (avec un fichier nommé users.txt) et une liste de mots de passe à tester (avec un fichier nommé keys.txt) vers un serveur SSH de un certain ordinateur qui a l’IP 99.99.99.99, nous pouvons mettre la commande suivante :
nmap -p 22 --script ssh-brute --script-args userdb=usarios.txt,passdb=claves.txt --script-args ssh-brute.timeout=4s 99.99.99.99
Si nous voulons savoir si un serveur FTP a activé l’authentification anonyme, nous pouvons facilement le faire en plaçant la commande suivante :
nmap -sV -sC -p21 99.99.99.99
Si nous voulons effectuer une attaque par force brute sur un serveur FTP vers un serveur avec l’IP 99.99.99.99, nous pouvons mettre la commande suivante :
nmap -p 21 --script ftp-brute 99.99.99.99
Nous avons un très grand nombre de scripts au sein de Nmap NSE afin de vérifier la sécurité de dizaines de services, car non seulement nous aurons les serveurs typiques Samba, FTP, SSH et plus, mais nous pourrons également attaquer un serveur en une manière web très spécifique avec des en-têtes HTTP spéciaux pour voir s’il y a des vulnérabilités, bien sûr, nous aurons des scripts spécifiques qui nous permettront d’exploiter les vulnérabilités au PHP des serveurs web, bien sûr, nous pouvons également exploiter les vulnérabilités aux différents Serveurs Samba, FTP et SSH, c’est-à-dire des vulnérabilités connues qui ont déjà été résolues, mais il est possible que l’objectif les fasse toujours fonctionner. Pour cette raison, il est si important de mettre à jour tous les services que nous avons exposés à Internet dès que possible,
Nous vous recommandons de visiter le site officiel de NSE où vous trouverez tous les scripts qui se trouvent actuellement dans cette grande base de données, en plus, vous aurez des exemples d’utilisation.