hacktricks/network-services-pentesting/137-138-139-pentesting-netbios.md
carlospolop 63bd9641c0 f
2023-06-05 20:33:24 +02:00

6.3 KiB

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.

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.

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.

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 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 lo suficientemente pequeños como para caber en paquetes de capa de enlace.

Las sesiones se cierran cerrando la conexión TCP.

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 {% 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}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥