Effectuer un scan TCP FIN avec Nmap

NmapBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous allez apprendre à effectuer un balayage FIN TCP à l'aide de Nmap. Vous commencerez par effectuer un balayage FIN de base sur une adresse IP cible, puis balayez des ports spécifiques, ajoutez de la détaille au balayage et enregistrez les résultats. En outre, vous comparerez les balayages FIN avec les balayages TCP et analyserez les ports ouverts dans le terminal Xfce. Un balayage FIN envoie un paquet FIN à l'hôte cible, ce qui peut aider à contourner certains pare-feu ou systèmes de détection d'intrusions.

Exécutez un balayage FIN avec nmap -sF 192.168.1.1

Dans cette étape, vous allez apprendre à effectuer un balayage FIN à l'aide de Nmap. Un balayage FIN est un type de balayage TCP qui envoie un paquet FIN (fin) à l'hôte cible. Contrairement à un balayage SYN, qui tente d'établir une connexion, un balayage FIN envoie simplement un paquet FIN et observe la réponse. Cela peut être utile pour contourner certains pare-feu ou systèmes de détection d'intrusions.

Avant de commencer, clarifions ce qu'est un paquet FIN. Dans la communication TCP, le drapeau FIN indique la fin d'une connexion. Lorsqu'un hôte envoie un paquet FIN, il signifie essentiellement "Je n'ai plus de données à envoyer".

Maintenant, effectuons le balayage FIN. Ouvrez votre terminal Xfce.

Exécutez la commande suivante :

sudo nmap -sF 192.168.1.1
  • -sF : Cette option indique à Nmap d'effectuer un balayage FIN.
  • 192.168.1.1 : C'est l'adresse IP cible. Remplacez-la par l'adresse IP réelle de la machine que vous voulez scanner si elle est différente.

Vous devrez peut-être ajuster l'adresse IP 192.168.1.1 pour correspondre à l'adresse IP d'une machine cible accessible depuis votre VM LabEx. Si vous n'avez pas de cible spécifique en tête, vous pouvez utiliser l'adresse IP de votre passerelle ou d'un autre dispositif sur votre réseau local. Si vous n'êtes pas sûr, vous pouvez essayer de scanner votre propre machine en utilisant 127.0.0.1 (localhost).

La sortie montrera l'état de chaque port sur la machine cible. Les ports ouverts ne répondront généralement pas à un paquet FIN, tandis que les ports fermés répondront avec un paquet RST (réinitialisation). Les ports filtrés peuvent ne pas répondre du tout, ce qui rend difficile de déterminer leur état.

Exemple de sortie (la sortie réelle variera selon la cible) :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
Not shown: 999 closed ports
PORT    STATE    SERVICE
22/tcp  filtered ssh

Nmap done: 1 IP address (1 host up) scanned in 2.18 seconds

Dans cet exemple, le port 22 (SSH) est affiché comme filtré. Cela signifie que Nmap n'a pas pu déterminer si le port est ouvert ou fermé en raison de règles de pare-feu ou d'autres conditions réseau. La ligne "Not shown: 999 closed ports" indique que Nmap n'a pas affiché les 999 ports fermés pour conserver la sortie concise.

Effectuez un balayage de ports spécifiques avec nmap -sF -p 22,80 127.0.0.1

Dans l'étape précédente, vous avez appris à effectuer un balayage FIN de base. Maintenant, vous allez apprendre à cibler des ports spécifiques lors d'un balayage FIN. Cela est utile lorsque vous voulez concentrer votre balayage sur des services susceptibles d'être exécutés sur des ports particuliers, tels que SSH (port 22) et HTTP (port 80).

La spécification des ports peut réduire considérablement le temps de balayage et rendre les résultats plus pertinents. Au lieu de balayer tous les 65535 ports, vous pouvez vous concentrer sur les ports qui sont les plus susceptibles d'être d'intérêt.

Ouvrez votre terminal Xfce.

Exécutez la commande suivante :

sudo nmap -sF -p 22,80 127.0.0.1
  • -sF : Cette option indique à Nmap d'effectuer un balayage FIN.
  • -p 22,80 : Cette option spécifie que vous voulez balayer les ports 22 et 80. Vous pouvez spécifier un seul port, une plage de ports (par exemple, 1-100), ou une liste séparée par des virgules de ports.
  • 127.0.0.1 : C'est l'adresse IP cible, qui dans ce cas est votre propre machine (localhost).

La sortie montrera l'état des ports 22 et 80 sur votre machine.

Exemple de sortie :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000027s latency).

PORT   STATE    SERVICE
22/tcp filtered ssh
80/tcp filtered http

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

Dans cet exemple, les deux ports 22 et 80 sont affichés comme filtrés. Cela signifie que Nmap n'a pas pu déterminer si ces ports sont ouverts ou fermés. C'est un résultat courant avec les balayages FIN, en particulier lorsqu'il y a des pare-feu en place.

Ajoutez la verbosité avec nmap -v -sF 192.168.1.1

Dans cette étape, vous allez apprendre à augmenter le détaillement de votre balayage FIN Nmap. Le détaillement fournit des informations plus détaillées sur le processus de balayage, ce qui peut être utile pour le dépannage ou la compréhension des résultats.

L'option -v dans Nmap augmente le niveau de détaillement. Vous pouvez l'utiliser plusieurs fois (par exemple, -vv) pour une sortie encore plus détaillée.

Ouvrez votre terminal Xfce.

Exécutez la commande suivante :

sudo nmap -v -sF 192.168.1.1
  • -v : Cette option augmente le niveau de détaillement.
  • -sF : Cette option indique à Nmap d'effectuer un balayage FIN.
  • 192.168.1.1 : C'est l'adresse IP cible. N'oubliez pas de la remplacer par une adresse IP valide si nécessaire.

La sortie inclura désormais plus d'informations sur le balayage, telles que les paquets envoyés et reçus, les raisons de certaines décisions et l'avancée globale.

Exemple de sortie (la sortie réelle variera selon la cible et les conditions réseau) :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
NSE: Chargé 0 scripts pour le balayage.
Lancement d'un balayage Ping à 10:10
Balayage de 192.168.1.1 [2 ports]
Balayage Ping terminé à 10:10, 0.00s écoulé (1 hôte au total)
Lancement d'un balayage FIN à 10:10
Balayage de 192.168.1.1 [1000 ports]
Balayage FIN terminé à 10:10, 2.12s écoulé (1000 ports au total)
Rapport de balayage Nmap pour 192.168.1.1
Hôte actif (0.00038s de latence).
Non affiché : 999 ports fermés
PORT    ÉTAT    SERVICE
22/tcp  filtré ssh

Lecture des fichiers de données à partir de : /usr/bin/../share/nmap
Nmap terminé : 1 adresse IP (1 hôte actif) balayé en 2.18 secondes
Paquets bruts envoyés : 1001 (44.044KB) | Reçus : 1 (44B)

Remarquez les informations supplémentaires fournies, telles que le chargement du script NSE, les horaires d'initiation et de fin des balayages Ping et FIN, et le nombre de paquets envoyés et reçus. Ce niveau de détail peut être précieux lors du dépannage de problèmes de réseau ou de l'analyse des résultats de balayage.

Enregistrez les résultats du balayage FIN avec nmap -sF -oN fin.txt 127.0.0.1

Dans cette étape, vous allez apprendre à enregistrer les résultats de votre balayage FIN Nmap dans un fichier. Cela est utile pour une analyse ultérieure, la rédaction de rapports ou la comparaison avec d'autres balayages.

Nmap propose plusieurs options pour enregistrer les résultats de balayage dans différents formats. L'option -oN enregistre les résultats au format "normal" lisible par l'homme.

Ouvrez votre terminal Xfce.

Exécutez la commande suivante :

sudo nmap -sF -oN fin.txt 127.0.0.1
  • -sF : Cette option indique à Nmap d'effectuer un balayage FIN.
  • -oN fin.txt : Cette option spécifie que vous voulez enregistrer les résultats au format normal dans un fichier nommé fin.txt. Le fichier sera enregistré dans votre répertoire courant (~/projet).
  • 127.0.0.1 : C'est l'adresse IP cible, qui dans ce cas est votre propre machine (localhost).

Une fois le balayage terminé, vous pouvez consulter les résultats enregistrés en ouvrant le fichier fin.txt avec un éditeur de texte tel que nano.

nano fin.txt

Le fichier contiendra les mêmes informations qui ont été affichées à l'écran pendant le balayage, mais au format structuré.

Contenu exemple de fin.txt :

## Nmap 7.80 scan initiated Tue Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000027s latency).
Not shown: 999 closed ports
PORT    STATE    SERVICE
22/tcp  filtered ssh

## Nmap done at Tue Oct 27 10:15:02 2023 -- 1 IP address (1 host up) scanned in 1.89 seconds

Vous pouvez désormais utiliser ce fichier pour une analyse ou une rédaction de rapport plus approfondie.

Comparez le balayage FIN avec le balayage TCP dans le terminal Xfce

Dans cette étape, vous allez comparer les résultats d'un balayage FIN avec ceux d'un balayage TCP connect. Cette comparaison mettra en évidence les différences dans la manière dont ces balayages identifient les ports ouverts et la manière dont les pare-feu peuvent les traiter différemment.

Un balayage TCP connect (-sT) établit une connexion TCP complète avec la cible, ce qui le rend plus fiable mais également plus facilement détectable. Un balayage FIN (-sF), quant à lui, envoie un paquet FIN, qui est moins susceptible d'être journalisé par les pare-feu mais peut ne pas toujours fournir des résultats précis.

Ouvrez votre terminal Xfce.

Tout d'abord, effectuez un balayage TCP connect sur localhost (127.0.0.1) :

sudo nmap -sT 127.0.0.1

Cette commande tentera d'établir une connexion TCP complète avec chaque port de votre machine locale.

Ensuite, effectuez un balayage FIN sur la même cible :

sudo nmap -sF 127.0.0.1

Maintenant, comparez les résultats des deux balayages. Vous pouvez constater que le balayage TCP connect identifie plus de ports ouverts que le balayage FIN. C'est parce que certains pare-feu ou systèmes peuvent bloquer ou ignorer les paquets FIN, ce qui peut entraîner des résultats inexacts.

Exemple de sortie du balayage TCP connect :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000026s latency).
Not shown: 997 closed ports
PORT     ÉTAT SERVICE
22/tcp   ouvert ssh
631/tcp  ouvert ipp
3306/tcp ouvert mysql

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

Exemple de sortie du balayage FIN :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:21 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000026s latency).
Not shown: 999 closed ports
PORT    ÉTAT    SERVICE
22/tcp  filtré ssh

Nmap done: 1 IP address (1 host up) scanned in 1.89 seconds

Dans cet exemple, le balayage TCP connect indique que les ports 22, 631 et 3306 sont ouverts, tandis que le balayage FIN ne montre que le port 22 comme étant filtré. Cela démontre comment différents types de balayages peuvent produire des résultats différents et pourquoi il est important d'utiliser diverses techniques lors de la reconnaissance réseau. L'état filtré signifie qu'un pare-feu, un filtre ou un autre obstacle réseau bloque le port, empêchant Nmap de déterminer s'il est ouvert ou fermé.

Analyser les ports ouverts dans le terminal Xfce

Dans cette étape, vous allez analyser les ports ouverts identifiés dans les balayages précédents pour comprendre les services en cours d'exécution sur le système cible. Cela implique d'interpréter la sortie de Nmap et de rechercher le but de chaque port ouvert.

Ouvrez votre terminal Xfce.

Supposons que vous avez effectué un balayage TCP connect (sudo nmap -sT 127.0.0.1) dans l'étape précédente et que vous avez obtenu la sortie suivante :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000026s latency).
Not shown: 997 closed ports
PORT     ÉTAT SERVICE
22/tcp   ouvert ssh
631/tcp  ouvert ipp
3306/tcp ouvert mysql

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

Cette sortie indique que les ports 22, 631 et 3306 sont ouverts sur votre machine locale. Maintenant, analysons chacun de ces ports :

  • Port 22 (ssh) : Ce port est généralement utilisé pour SSH (Secure Shell), un protocole sécurisé pour la connexion distante et l'exécution de commandes. Si ce port est ouvert, cela signifie qu'un serveur SSH est en cours d'exécution sur votre machine, vous permettant de vous connecter à distance.

  • Port 631 (ipp) : Ce port est utilisé pour IPP (Internet Printing Protocol), un protocole pour l'impression sur un réseau. Si ce port est ouvert, cela signifie qu'un service d'impression est en cours d'exécution sur votre machine, vous permettant d'imprimer des documents à distance.

  • Port 3306 (mysql) : Ce port est le port par défaut pour MySQL, un système de gestion de base de données relationnelle open source populaire. Si ce port est ouvert, cela signifie qu'un serveur MySQL est en cours d'exécution sur votre machine, vous permettant d'accéder et de gérer des bases de données.

Pour examiner plus avant ces services, vous pouvez utiliser d'autres outils tels que netstat ou ss pour vérifier quels processus écoutent sur ces ports. Par exemple, pour vérifier le processus qui écoute sur le port 22, vous pouvez utiliser la commande suivante :

sudo netstat -tulnp | grep :22

Cette commande affichera l'identifiant de processus (PID) et le nom du processus qui écoute sur le port 22.

Exemple de sortie :

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd

Cette sortie indique que le processus sshd (daemon SSH) écoute sur le port 22.

En analysant les ports ouverts et les services qui s'exécutent dessus, vous pouvez obtenir des informations précieuses sur la posture de sécurité du système cible et identifier des vulnérabilités potentielles.

Résumé

Dans ce laboratoire, vous avez appris à effectuer un balayage TCP FIN à l'aide de Nmap. Vous avez commencé par effectuer un balayage FIN de base avec la commande nmap -sF suivie d'une adresse IP cible. Vous avez également appris à balayer des ports spécifiques, à ajouter de la verbeosité au balayage et à enregistrer les résultats dans un fichier. De plus, vous avez comparé le balayage FIN avec un balayage TCP et analysé les ports ouverts dans le terminal Xfce. Un balayage FIN envoie un paquet FIN à l'hôte cible, ce qui peut aider à contourner certains pare - feux ou systèmes de détection d'intrusions.