Une méthode importante pour identifier exactement les services qui s'exécutent sur votre réseau consiste à effectuer une analyse des ports. L'exécution d'une analyse de port peut vous donner un aperçu précis de la surface d'attaque de votre ordinateur et de votre réseau. Dans certains cas, il se peut que vous ayez des services en cours d'exécution auxquels vous ne vous attendiez peut-être pas.
Le protocole de contrôle de transmission, ou TCP, est une norme qui permet les connexions entre ordinateurs sur un réseau. TCP utilise une négociation à trois pour ouvrir une connexion qui restera ouverte jusqu'à ce qu'elle expire ou que la connexion soit fermée. Cela ne veut pas dire que la connexion transmet toujours des données, cela signifie simplement que les deux parties enregistrent les détails de la connexion et peuvent immédiatement reprendre l'envoi et la réception de données.
Nmap est l'outil standard pour effectuer une analyse des ports. Il est principalement conçu pour fonctionner sous Linux, mais il existe également des versions Windows. Une interface graphique est également disponible, mais l'utilisation de la ligne de commande reste la norme.
Comment utiliser Nmap
Pour tester si Nmap est installé sur une machine Linux, exécutez la commande "nmap". Si vous obtenez une page d'aide, alors elle est installée et prête à fonctionner, si vous obtenez une erreur indiquant que la commande n'a pas été trouvée, vous devez installer Nmap.
La page d'aide est très dense et montre beaucoup d'options qui peuvent être déroutantes. Les bases dont vous avez besoin pour analyser les ports TCP sont relativement simples. La structure de base dont vous avez besoin est "nmap [type d'analyse] [options] {spécification cible}".
Pour analyser les ports TCP, vous devrez utiliser l'un des deux types d'analyse, TCP ou SYN. Une analyse TCP tente d'établir une connexion complète à chaque port, complétant ainsi l'établissement de liaison à trois. Une analyse SYN abuse légèrement du protocole et n'envoie jamais le troisième message de la poignée de main à trois. Les analyses SYN sont souvent moins stressantes pour les ressources système, car les appareils n'ont pas à maintenir ouvertes plusieurs connexions à la fois comme les connexions ne sont jamais complètement établies, elles s'exécutent également plus rapidement que les analyses TCP, mais elles auront besoin de root autorisations. Un scan TCP est spécifié avec le drapeau "-sT", tandis qu'un scan SYN est spécifié par "-sS".
Astuce: La poignée de main à trois voies est la façon dont une connexion TCP est initialisée, elle implique trois messages, "SYN, SYN-ACK et ACK" envoyés de client à serveur, de serveur à client, puis de client à serveur respectivement.
Comment spécifier les options d'analyse
La section des options est entièrement facultative, mais il y en a un certain nombre qui peuvent être généralement utiles. Vous pouvez activer des résultats d'analyse plus détaillés en augmentant la verbosité avec "-v", vous pouvez augmenter la verbosité encore jusqu'à un troisième niveau avec "-vvv". Vous pouvez exécuter la détection du système d'exploitation, la détection de la version, l'analyse des scripts et les traceroutes en utilisant l'indicateur "-A", bien que cela prenne un peu plus de temps à s'exécuter.
Vous pouvez analyser les adresses IPv4 ou IPv6 à la fois, IPv4 est la valeur par défaut, si vous souhaitez analyser les adresses IPv6, vous devez utiliser l'indicateur "-6". Parfois, Nmap exécutera une analyse ping rapide pour déterminer quels hots sont actifs, si cela ignore les hôtes que vous souhaitez tester, vous pouvez le désactiver avec l'indicateur "-Pn". Si vous spécifiez une plage étendue, l'analyse peut prendre beaucoup de temps. L'indicateur « -T4 » exécutera l'analyse plus rapidement et il est peu probable qu'il manque quoi que ce soit, il peut submerger les réseaux ou les appareils lents car la sortie du trafic sera considérablement augmentée.
Comment spécifier l'adresse IP et les plages de ports
Par défaut, Nmap analysera les 1000 premiers ports les plus couramment utilisés, vous pouvez définir manuellement une plage de ports en utilisant l'indicateur "-p", puis en spécifiant une plage sans espaces. Les plages de ports peuvent être spécifiées via des valeurs séparées par des virgules, des plages avec un trait d'union ou une combinaison des deux. Par exemple, les indicateurs "-p22", "-p1-65535" et "-p21-25,80,139,8080" analyseront le port 22, tous les ports compris entre 1 et 65535, et les ports 21 à 25, 80, 239, et 8080 respectivement. Il est également possible de spécifier l'indicateur "–top-ports [nombre]" à la place pour analyser les [nombre] ports les plus courants. Si vous souhaitez spécifier tous les ports, vous pouvez utiliser le raccourci "-p-".
Astuce: les numéros de port sont compris entre 0 et 65535, bien que 0 ne puisse techniquement pas être utilisé.
La dernière chose que vous devez spécifier est l'adresse IP des appareils que vous souhaitez tester. Pour ce faire, répertoriez simplement toutes les adresses IP que vous souhaitez analyser, elles doivent être séparées par des espaces et peuvent être répertoriées individuellement, par des plages avec un trait d'union ou via la notation CIDR. Par exemple, « 191.168.0.1 » analysera cette seule adresse IP, « 192.168.0.1-5 » analysera les cinq adresses IP entre 102.168.0.1 et 192.168.0.5, enfin « 192.168.0.1/24 » analyserait toutes les adresses IP entre 192.168.0.1 et 192.168.0.255.
La commande globale devrait ressembler aux exemples suivants: "nmap -sS -vvv -A -p- 127.0.0.1", "nmap -sS -v -p80,443,8080 192.168.0.1/24", "nmap -sS –top-ports 10000 -6 ::1"