# 137,138,139 - Pentesting NetBios {{#include ../banners/hacktricks-training.md}} ## NetBios Name Service **NetBIOS Name Service** spielt eine entscheidende Rolle und umfasst verschiedene Dienste wie **Namensregistrierung und -auflösung**, **Datagrammauslieferung** und **Sitzungsdienste**, die spezifische Ports für jeden Dienst nutzen. [From Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP): - Namensdienst für Namensregistrierung und -auflösung (Ports: 137/udp und 137/tcp). - Datagrammauslieferungsdienst für verbindungslose Kommunikation (Port: 138/udp). - Sitzungsdienst für verbindungsorientierte Kommunikation (Port: 139/tcp). ### Name Service Damit ein Gerät an einem NetBIOS-Netzwerk teilnehmen kann, muss es einen eindeutigen Namen haben. Dies wird durch einen **Broadcast-Prozess** erreicht, bei dem ein "Name Query"-Paket gesendet wird. Wenn keine Einwände erhoben werden, wird der Name als verfügbar betrachtet. Alternativ kann ein **Name Service-Server** direkt abgefragt werden, um die Verfügbarkeit eines Namens zu überprüfen oder um einen Namen in eine IP-Adresse aufzulösen. Tools wie `nmblookup`, `nbtscan` und `nmap` werden verwendet, um NetBIOS-Dienste zu enumerieren, wobei Servernamen und MAC-Adressen offengelegt werden. ```bash PORT STATE SERVICE VERSION 137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP) ``` Durch das Auflisten eines NetBIOS-Dienstes können Sie die Namen abrufen, die der Server verwendet, und die MAC-Adresse des Servers. ```bash nmblookup -A nbtscan /30 sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n ``` ### Datagram-Verteilungsdienst NetBIOS-Datagramme ermöglichen verbindungslose Kommunikation über UDP und unterstützen direkte Nachrichtenübermittlung oder Broadcasts an alle Netzwerknamen. Dieser Dienst verwendet den Port **138/udp**. ```bash PORT STATE SERVICE VERSION 138/udp open|filtered netbios-dgm ``` ### Session Service Für verbindungsorientierte Interaktionen erleichtert der **Session Service** ein Gespräch zwischen zwei Geräten, indem er **TCP**-Verbindungen über den Port **139/tcp** nutzt. Eine Sitzung beginnt mit einem "Session Request"-Paket und kann basierend auf der Antwort eingerichtet werden. Der Dienst unterstützt größere Nachrichten, Fehlererkennung und -wiederherstellung, wobei TCP die Flusskontrolle und die Paketübertragung übernimmt. Die Datenübertragung innerhalb einer Sitzung erfolgt über **Session Message-Pakete**, wobei Sitzungen durch das Schließen der TCP-Verbindung beendet werden. Diese Dienste sind integraler Bestandteil der **NetBIOS**-Funktionalität und ermöglichen eine effiziente Kommunikation und Ressourcenteilung über ein Netzwerk. Für weitere Informationen zu TCP- und IP-Protokollen siehe die jeweiligen [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) und [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol) Seiten. ```bash PORT STATE SERVICE VERSION 139/tcp open netbios-ssn Microsoft Windows netbios-ssn ``` **Lies die nächste Seite, um zu lernen, wie man diesen Dienst enumeriert:** {{#ref}} 137-138-139-pentesting-netbios.md {{#endref}} ## HackTricks Automatische Befehle ``` 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). For a device to participate in a NetBIOS network, it must have a unique name. This is achieved through a broadcast process where a "Name Query" packet is sent. If no objections are received, the name is considered available. Alternatively, a Name Service server can be queried directly to check for name availability or to resolve a name to an IP address. https://book.hacktricks.wiki/en/network-services-pentesting/137-138-139-pentesting-netbios.html 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} ``` {{#include ../banners/hacktricks-training.md}}