137,138,139 - Pentesting NetBios

Reading time: 5 minutes

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks

NetBios Name Service

NetBIOS Name Service 在其中扮演着至关重要的角色,涉及各种服务,如 名称注册和解析数据报分发会话服务,为每项服务利用特定端口。

From Wikidepia:

  • 名称注册和解析的名称服务(端口:137/udp 和 137/tcp)。
  • 用于无连接通信的数据报分发服务(端口:138/udp)。
  • 用于面向连接通信的会话服务(端口:139/tcp)。

Name Service

为了使设备能够参与 NetBIOS 网络,它必须具有唯一的名称。这是通过 广播过程 实现的,其中发送一个 "名称查询" 数据包。如果没有收到异议,则该名称被视为可用。或者,可以直接查询 名称服务服务器 以检查名称的可用性或将名称解析为 IP 地址。工具如 nmblookupnbtscannmap 被用于枚举 NetBIOS 服务,揭示服务器名称和 MAC 地址。

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

枚举 NetBIOS 服务时,您可以获取服务器使用的名称和服务器的 MAC 地址。

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

数据报分发服务

NetBIOS 数据报允许通过 UDP 进行无连接通信,支持直接消息传递或广播到所有网络名称。此服务使用端口 138/udp

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

Session Service

对于面向连接的交互,Session Service 促进了两个设备之间的对话,通过 TCP 连接利用端口 139/tcp。会话以 "Session Request" 数据包开始,并可以根据响应建立。该服务支持更大的消息、错误检测和恢复,TCP 处理流控制和数据包重传。

会话内的数据传输涉及 Session Message packets,会话通过关闭 TCP 连接来终止。

这些服务是 NetBIOS 功能的核心,能够在网络中实现高效的通信和资源共享。有关 TCP 和 IP 协议的更多信息,请参阅它们各自的 TCP WikipediaIP Wikipedia 页面。

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

阅读下一页以了解如何枚举此服务:

137,138,139 - Pentesting NetBios

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}

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks