hacktricks/network-services-pentesting/137-138-139-pentesting-netbios.md

84 lines
6.3 KiB
Markdown
Raw Normal View History

2023-06-05 18:33:24 +00:00
## Servicio de nombres NetBios
* Servicio de nombres para registro y resolución de nombres (puertos: 137/udp y 137/tcp).
* Servicio de distribución de datagramas para comunicación sin conexión (puerto: 138/udp).
* Servicio de sesión para comunicación orientada a conexión (puerto: 139/tcp).
### Servicio de nombres
Cada máquina debe tener un nombre dentro de la red NetBios. Para solicitar un nombre, una máquina debe enviar un paquete "Consulta de nombre" en difusión y si alguien responde que ya está usando ese nombre, la máquina puede usar ese nombre. Si hay un servidor de Servicio de Nombres, la computadora podría preguntar al servidor de Servicio de Nombres si alguien está usando el nombre que quiere usar.
Para descubrir la dirección IP de un nombre, una PC debe enviar un paquete "Consulta de nombre" y esperar si alguien responde. Si hay un servidor de Servicio de Nombres, la PC puede preguntarle por la IP del nombre.
```bash
PORT STATE SERVICE VERSION
137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP)
```
Enumerar un servicio NetBIOS te permite obtener los nombres que está utilizando el servidor y la dirección MAC del servidor.
```bash
nmblookup -A <IP>
nbtscan <IP>/30
sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n <IP>
```
### Servicio de Distribución de Datagramas
Los datagramas de NetBIOS se envían a través de UDP. Un datagrama se envía con un paquete "Directo Único" o "Directo de Grupo" si se envía a un nombre de NetBIOS en particular, o con un paquete "Broadcast" si se envía a todos los nombres de NetBIOS en la red.
```bash
PORT STATE SERVICE VERSION
138/udp open|filtered netbios-dgm
```
### Servicio de Sesión
El modo de sesión permite que dos computadoras establezcan una conexión para una "conversación", permite manejar mensajes más grandes y proporciona detección y recuperación de errores.
Las sesiones se establecen intercambiando paquetes. La computadora que establece la sesión intenta hacer una conexión [TCP](https://en.wikipedia.org/wiki/Transmission\_Control\_Protocol) al puerto 139 de la computadora con la que se establecerá la sesión. Si se establece la conexión, la computadora que establece la sesión envía a través de la conexión un paquete de "Solicitud de Sesión" con los nombres NetBIOS de la aplicación que establece la sesión y el nombre NetBIOS al que se establecerá la sesión. La computadora con la que se establecerá la sesión responderá con una "Respuesta Positiva de Sesión" indicando que se puede establecer una sesión o una "Respuesta Negativa de Sesión" indicando que no se puede establecer una sesión (ya sea porque esa computadora no está escuchando sesiones que se establecen con ese nombre o porque no hay recursos disponibles para establecer una sesión con ese nombre).
Los datos se transmiten durante una sesión establecida mediante paquetes de Mensaje de Sesión.
TCP maneja el control de flujo y la retransmisión de todos los paquetes de servicio de sesión, y la división del flujo de datos sobre el cual se transmiten los paquetes en datagramas [IP](https://en.wikipedia.org/wiki/Internet\_Protocol) lo suficientemente pequeños como para caber en paquetes de capa de enlace.
Las sesiones se cierran cerrando la conexión TCP.
```bash
PORT STATE SERVICE VERSION
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
```
**Lee la siguiente página para aprender cómo enumerar este servicio:**
{% content-ref url="137-138-139-pentesting-netbios.md" %}
[137-138-139-pentesting-netbios.md](137-138-139-pentesting-netbios.md)
{% endcontent-ref %}
## Comandos Automáticos de 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}
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén la [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) **grupo de Discord** o al [**grupo de telegram**](https://t.me/peass) o **sígueme en** **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>