# 137,138,139 - Pentesting NetBios {{#include ../banners/hacktricks-training.md}} ## NetBios Name Service **NetBIOS Name Service** відіграє важливу роль, включаючи різні сервіси, такі як **реєстрація та розв'язання імен**, **розподіл датаграм** та **сесійні сервіси**, використовуючи специфічні порти для кожного сервісу. [From Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP): - Сервіс імен для реєстрації та розв'язання імен (порти: 137/udp та 137/tcp). - Сервіс розподілу датаграм для без'єднаної комунікації (порт: 138/udp). - Сесійний сервіс для орієнтованої на з'єднання комунікації (порт: 139/tcp). ### Name Service Щоб пристрій міг брати участь у мережі NetBIOS, він повинен мати унікальне ім'я. Це досягається через **процес широкомовлення**, де надсилається пакет "Запит імені". Якщо заперечень не надходить, ім'я вважається доступним. Альтернативно, можна безпосередньо запитати **сервер служби імен**, щоб перевірити доступність імені або розв'язати ім'я в IP-адресу. Інструменти, такі як `nmblookup`, `nbtscan` та `nmap`, використовуються для перерахунку сервісів NetBIOS, виявляючи імена серверів та MAC-адреси. ```bash PORT STATE SERVICE VERSION 137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP) ``` Перераховуючи службу NetBIOS, ви можете отримати імена, які використовує сервер, та MAC-адресу сервера. ```bash nmblookup -A nbtscan /30 sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n ``` ### Datagram Distribution Service NetBIOS датаграми дозволяють безконнектне спілкування через UDP, підтримуючи прямі повідомлення або трансляцію на всі мережеві імена. Ця служба використовує порт **138/udp**. ```bash PORT STATE SERVICE VERSION 138/udp open|filtered netbios-dgm ``` ### Сесійна служба Для орієнтованих на з'єднання взаємодій, **Сесійна служба** полегшує спілкування між двома пристроями, використовуючи **TCP** з'єднання через порт **139/tcp**. Сесія починається з пакета "Запит сесії" і може бути встановлена на основі відповіді. Служба підтримує більші повідомлення, виявлення помилок і відновлення, при цьому TCP обробляє управління потоком і повторну передачу пакетів. Передача даних у межах сесії включає **пакети повідомлень сесії**, при цьому сесії завершуються закриттям TCP з'єднання. Ці служби є невід'ємною частиною функціональності **NetBIOS**, що забезпечує ефективне спілкування та обмін ресурсами в мережі. Для отримання додаткової інформації про протоколи TCP та IP, зверніться до їх відповідних [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) та [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol) сторінок. ```bash PORT STATE SERVICE VERSION 139/tcp open netbios-ssn Microsoft Windows netbios-ssn ``` **Прочитайте наступну сторінку, щоб дізнатися, як перерахувати цю службу:** {{#ref}} 137-138-139-pentesting-netbios.md {{#endref}} ## 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). 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}}