hacktricks/network-services-pentesting/137-138-139-pentesting-netbios.md
2023-06-06 18:56:34 +00:00

6.3 KiB

NetBios Name Service

  • Serviço de nome para registro e resolução de nomes (portas: 137/udp e 137/tcp).
  • Serviço de distribuição de datagramas para comunicação sem conexão (porta: 138/udp).
  • Serviço de sessão para comunicação orientada a conexão (porta: 139/tcp).

Serviço de Nome

Cada máquina deve ter um nome dentro da rede NetBios. Para solicitar um nome, uma máquina deve enviar um pacote "Consulta de Nome" em broadcast e, se alguém responder que já está usando esse nome, a máquina pode usar esse nome. Se houver um servidor de Serviço de Nome, o computador poderá perguntar ao servidor de Serviço de Nome se alguém está usando o nome que ele deseja usar.

Para descobrir o endereço IP de um Nome, um PC deve enviar um pacote "Consulta de Nome" e esperar se alguém responde. Se houver um servidor de Serviço de Nome, o PC pode perguntar a ele o IP do nome.

PORT    STATE SERVICE    VERSION
137/udp open  netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP)

Enumerando um serviço NetBIOS, você pode obter os nomes que o servidor está usando e o endereço MAC do servidor.

nmblookup -A <IP>
nbtscan <IP>/30
sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n <IP>

Serviço de Distribuição de Datagramas

Os datagramas NetBIOS são enviados por UDP. Um datagrama é enviado com um pacote "Direto Único" ou "Direto em Grupo" se estiver sendo enviado para um nome NetBIOS específico, ou um pacote "Broadcast" se estiver sendo enviado para todos os nomes NetBIOS na rede.

PORT    STATE         SERVICE     VERSION
138/udp open|filtered netbios-dgm

Serviço de Sessão

O modo de sessão permite que dois computadores estabeleçam uma conexão para uma "conversa", permitindo que mensagens maiores sejam tratadas e fornecendo detecção e recuperação de erros.

As sessões são estabelecidas trocando pacotes. O computador que estabelece a sessão tenta fazer uma conexão TCP à porta 139 do computador com o qual a sessão deve ser estabelecida. Se a conexão for estabelecida, o computador que estabelece a sessão envia pela conexão um pacote "Solicitação de Sessão" com os nomes NetBIOS do aplicativo que estabelece a sessão e o nome NetBIOS para o qual a sessão deve ser estabelecida. O computador com o qual a sessão deve ser estabelecida responderá com uma "Resposta Positiva de Sessão" indicando que uma sessão pode ser estabelecida ou uma "Resposta Negativa de Sessão" indicando que nenhuma sessão pode ser estabelecida (seja porque esse computador não está ouvindo sessões sendo estabelecidas para esse nome ou porque não há recursos disponíveis para estabelecer uma sessão para esse nome).

Os dados são transmitidos durante uma sessão estabelecida por pacotes de Mensagem de Sessão.

O TCP lida com o controle de fluxo e retransmissão de todos os pacotes de serviço de sessão e a divisão do fluxo de dados sobre o qual os pacotes são transmitidos em datagramas IP pequenos o suficiente para caber em pacotes de camada de link.

As sessões são encerradas fechando a conexão TCP.

PORT      STATE SERVICE      VERSION
139/tcp   open  netbios-ssn  Microsoft Windows netbios-ssn

Leia a próxima página para aprender como enumerar este serviço:

{% content-ref url="137-138-139-pentesting-netbios.md" %} 137-138-139-pentesting-netbios.md {% endcontent-ref %}

Comandos Automáticos do 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 🎥