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

76 lines
4.3 KiB
Markdown

# 137,138,139 - Pentesting NetBios
{{#include ../banners/hacktricks-training.md}}
## Servizio Nome NetBios
**Il Servizio Nome NetBIOS** gioca un ruolo cruciale, coinvolgendo vari servizi come **registrazione e risoluzione dei nomi**, **distribuzione dei datagrammi** e **servizi di sessione**, utilizzando porte specifiche per ciascun servizio.
[From Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
- Servizio nome per registrazione e risoluzione dei nomi (porte: 137/udp e 137/tcp).
- Servizio di distribuzione dei datagrammi per comunicazione senza connessione (porta: 138/udp).
- Servizio di sessione per comunicazione orientata alla connessione (porta: 139/tcp).
### Servizio Nome
Affinché un dispositivo partecipi a una rete NetBIOS, deve avere un nome unico. Questo viene realizzato attraverso un **processo di broadcast** in cui viene inviato un pacchetto "Name Query". Se non si ricevono obiezioni, il nome è considerato disponibile. In alternativa, è possibile interrogare direttamente un **server del Servizio Nome** per controllare la disponibilità del nome o per risolvere un nome in un indirizzo IP. Strumenti come `nmblookup`, `nbtscan` e `nmap` vengono utilizzati per enumerare i servizi NetBIOS, rivelando nomi dei server e indirizzi MAC.
```bash
PORT STATE SERVICE VERSION
137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP)
```
Enumerando un servizio NetBIOS puoi ottenere i nomi che il server sta utilizzando e l'indirizzo MAC del server.
```bash
nmblookup -A <IP>
nbtscan <IP>/30
sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n <IP>
```
### Servizio di Distribuzione Datagram
I datagrammi NetBIOS consentono comunicazioni senza connessione tramite UDP, supportando messaggi diretti o trasmissioni a tutti i nomi di rete. Questo servizio utilizza la porta **138/udp**.
```bash
PORT STATE SERVICE VERSION
138/udp open|filtered netbios-dgm
```
### Session Service
Per interazioni orientate alla connessione, il **Session Service** facilita una conversazione tra due dispositivi, sfruttando le connessioni **TCP** attraverso la porta **139/tcp**. Una sessione inizia con un pacchetto "Session Request" e può essere stabilita in base alla risposta. Il servizio supporta messaggi più grandi, rilevamento degli errori e recupero, con TCP che gestisce il controllo del flusso e la ritrasmissione dei pacchetti.
La trasmissione dei dati all'interno di una sessione coinvolge pacchetti **Session Message**, con le sessioni che vengono terminate chiudendo la connessione TCP.
Questi servizi sono integrali per la funzionalità di **NetBIOS**, consentendo una comunicazione efficiente e la condivisione delle risorse attraverso una rete. Per ulteriori informazioni sui protocolli TCP e IP, fare riferimento alle rispettive pagine [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) e [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol).
```bash
PORT STATE SERVICE VERSION
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
```
**Leggi la pagina successiva per imparare come enumerare questo servizio:**
{{#ref}}
137-138-139-pentesting-netbios.md
{{#endref}}
## Comandi Automatici 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}}