## Service de noms NetBios * Service de noms pour l'enregistrement et la résolution de noms (ports : 137/udp et 137/tcp). * Service de distribution de datagrammes pour la communication sans connexion (port : 138/udp). * Service de session pour la communication orientée connexion (port : 139/tcp). ### Service de noms Chaque machine doit avoir un nom à l'intérieur du réseau NetBios. Pour demander un nom, une machine doit envoyer un paquet "Requête de nom" en diffusion et si quelqu'un répond qu'il utilise déjà ce nom, la machine peut utiliser ce nom. S'il y a un serveur de service de noms, l'ordinateur peut demander au serveur de service de noms si quelqu'un utilise le nom qu'il veut utiliser. Pour découvrir l'adresse IP d'un nom, un PC doit envoyer un paquet "Requête de nom" et attendre si quelqu'un répond. S'il y a un serveur de service de noms, le PC peut lui demander l'adresse IP du nom. ```bash PORT STATE SERVICE VERSION 137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP) ``` En énumérant un service NetBIOS, vous pouvez obtenir les noms que le serveur utilise et l'adresse MAC du serveur. ```bash nmblookup -A nbtscan /30 sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n ``` ### Service de distribution de datagrammes Les datagrammes NetBIOS sont envoyés via UDP. Un datagramme est envoyé avec un paquet "Direct Unique" ou "Direct Group" s'il est envoyé à un nom NetBIOS particulier, ou un paquet "Broadcast" s'il est envoyé à tous les noms NetBIOS sur le réseau. ```bash PORT STATE SERVICE VERSION 138/udp open|filtered netbios-dgm ``` ### Service de session Le mode de session permet à deux ordinateurs d'établir une connexion pour une "conversation", permet de gérer des messages plus volumineux et fournit une détection et une récupération d'erreurs. Les sessions sont établies en échangeant des paquets. L'ordinateur établissant la session tente d'établir une connexion [TCP](https://fr.wikipedia.org/wiki/Transmission\_Control\_Protocol) sur le port 139 de l'ordinateur avec lequel la session doit être établie. Si la connexion est établie, l'ordinateur établissant la session envoie ensuite sur la connexion un paquet "Demande de session" avec les noms NetBIOS de l'application établissant la session et le nom NetBIOS vers lequel la session doit être établie. L'ordinateur avec lequel la session doit être établie répondra avec une "Réponse de session positive" indiquant qu'une session peut être établie ou une "Réponse de session négative" indiquant qu'aucune session ne peut être établie (soit parce que cet ordinateur n'écoute pas les sessions établies à ce nom, soit parce qu'aucune ressource n'est disponible pour établir une session à ce nom). Les données sont transmises pendant une session établie par des paquets de message de session. TCP gère le contrôle de flux et la retransmission de tous les paquets de service de session, et la division du flux de données sur lequel les paquets sont transmis en datagrammes IP suffisamment petits pour tenir dans des paquets de couche de liaison. Les sessions sont fermées en fermant la connexion TCP. ```bash PORT STATE SERVICE VERSION 139/tcp open netbios-ssn Microsoft Windows netbios-ssn ``` **Lisez la page suivante pour apprendre comment énumérer ce service:** {% content-ref url="137-138-139-pentesting-netbios.md" %} [137-138-139-pentesting-netbios.md](137-138-139-pentesting-netbios.md) {% endcontent-ref %} ## Commandes Automatiques HackTricks ``` Protocol_Name: Netbios #Protocol Abbreviation if there is one. Port_Number: 137,138,139 #Comma separated if there is more than one. Protocol_Description: Netbios #Protocol Abbreviation Spelled out Entry_1: Name: Notes Description: Notes for NetBios Note: | Name service for name registration and resolution (ports: 137/udp and 137/tcp). Datagram distribution service for connectionless communication (port: 138/udp). Session service for connection-oriented communication (port: 139/tcp). Every machine should have a name inside the NetBios network. To request a name, a machine should send a "Name Query" packet in broadcast and if anyone answer that it is already using that name, the machine can use that name. If there is a Name Service server, the computer could ask the Name Service server if someone is using the name that it wants to use. https://book.hacktricks.xyz/pentesting/137-138-139-pentesting-netbios Entry_2: Name: Find Names Description: Three scans to find the names of the server Command: nmblookup -A {IP} &&&& nbtscan {IP}/30 &&&& nmap -sU -sV -T4 --script nbstat.nse -p 137 -Pn -n {IP} ```
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * Travaillez-vous dans une entreprise de **cybersécurité** ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) **groupe Discord** ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-moi** sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live). * **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).