1. 這是什麼
nbtstat 是 Windows 內建的命令列工具,全名為 NetBIOS over TCP/IP Statistics,用於查詢和顯示與 NetBIOS(Network Basic Input/Output System)協議相關的網路資訊。
NetBIOS 是一種早期的網路通訊協定,雖然已逐漸被 DNS 取代,但在許多企業內網環境中仍被廣泛使用,尤其是 Windows 網路中的檔案共享、印表機共享等服務。
簡單來說,nbtstat 可以幫你:
– 查詢電腦的 NetBIOS 名稱
– 透過 IP 位址反查電腦名稱
– 檢視本機的 NetBIOS 名稱註冊狀態
– 查看 NetBIOS 名稱快取
2. 什麼時候使用
nbtstat 適用於以下情境:
- 網路偵察:在滲透測試中探索內網主機資訊
- 故障排除:診斷 Windows 網路芳鄰無法正常運作的問題
- 資產盤點:快速識別內網中的主機名稱與角色
- 確認網域架構:識別網域控制器(Domain Controller)位置
- 檢查服務狀態:確認特定主機上運行的 NetBIOS 服務
3. 為什麼需要使用
在企業內網環境中,nbtstat 提供了獨特的價值:
對於系統管理員:
– 無需額外安裝,Windows 原生支援
– 快速診斷 NetBIOS 名稱解析問題
– 檢視本機註冊的服務名稱
對於資安人員:
– 不觸發一般防火牆警報(使用合法系統工具)
– 可識別內網中的關鍵資產(如網域控制器)
– 收集目標主機的服務資訊
相較於其他工具的優勢:
| 特點 | nbtstat | nmap | 其他掃描工具 |
|---|---|---|---|
| 內建於 Windows | ✅ | ❌ | ❌ |
| 不易被偵測 | ✅ | ❌ | ❌ |
| 無需安裝 | ✅ | ❌ | ❌ |
| 提供 NetBIOS 詳細資訊 | ✅ | 部分 | 部分 |
4. 怎麼安裝
不需要安裝! nbtstat 是 Windows 作業系統的內建工具。
確認方式:
# 開啟命令提示字元(以系統管理員身份)
nbtstat /?
支援的 Windows 版本:
– Windows 7 / 8 / 10 / 11
– Windows Server 2008 / 2012 / 2016 / 2019 / 2022
注意事項:
– 此工具僅適用於 Windows
– Linux/macOS 使用者可使用 nmblookup(Samba 套件)達成類似功能
5. 怎麼用(參數說明)
基本語法
nbtstat [選項] [參數]
常用參數一覽
| 參數 | 說明 | 範例 |
|---|---|---|
-n |
顯示本機已註冊的 NetBIOS 名稱 | nbtstat -n |
-a <Name> |
用電腦名稱查詢 NetBIOS 資訊 | nbtstat -a WIN-SERVER01 |
-A <IP> |
用 IP 位址查詢 NetBIOS 資訊 | nbtstat -A 192.168.1.100 |
-c |
顯示 NetBIOS 名稱快取 | nbtstat -c |
-r |
顯示名稱解析統計 | nbtstat -r |
-R |
清除並重新載入快取 | nbtstat -R |
-S |
顯示工作階段表(含 IP) | nbtstat -S |
-s |
顯示工作階段表(含電腦名稱) | nbtstat -s |
-RR |
釋放並重新註冊 NetBIOS 名稱 | nbtstat -RR |
實用範例
查看本機 NetBIOS 名稱:
C:\> nbtstat -n
本機區域連線:
節點 IP 位址: [192.168.1.50] 範圍識別碼: []
NetBIOS 本機名稱表
名稱 類型 狀態
---------------------------------------------
WIN-PC01 <00> UNIQUE 已登錄
WIN-PC01 <20> UNIQUE 已登錄
WORKGROUP <00> GROUP 已登錄
用 IP 查詢遠端主機:
C:\> nbtstat -A 192.168.1.100
區域網路連線:
節點 IP 位址: [192.168.1.100] 範圍識別碼: []
NetBIOS 遠端機器名稱表
名稱 類型 狀態
---------------------------------------------
DC-SERVER <00> UNIQUE 已登錄
DOMAIN <00> GROUP 已登錄
DOMAIN <1C> GROUP 已登錄
DC-SERVER <20> UNIQUE 已登錄
6. NetBIOS Suffix 代碼解析
NetBIOS 名稱由 15 個字元 + 1 個 Suffix 字元組成(共 16 bytes)。Suffix 用來識別服務類型:
Unique Names(唯一名稱)
| Suffix | 說明 |
|---|---|
<00> |
Workstation 工作站服務 |
<03> |
Messenger 訊息服務 |
<06> |
RAS 遠端存取服務 |
<1B> |
Domain Master Browser 網域主瀏覽器 |
<1D> |
Master Browser 主瀏覽器 |
<20> |
File Server 檔案伺服器服務 |
<21> |
RAS Client 遠端存取客戶端 |
Group Names(群組名稱)
| Suffix | 說明 |
|---|---|
<00> |
工作群組/網域名稱 |
<1C> |
Domain Controllers 網域控制器群組 |
<1E> |
Browser Service Elections 瀏覽器選舉 |
Type 類型說明
| 類型 | 說明 |
|---|---|
| UNIQUE | 唯一名稱,在區網中僅此一台主機使用 |
| GROUP | 群組名稱,多台主機可共用相同名稱 |
7. 紅隊怎麼用
在滲透測試的偵察階段,nbtstat 是低調收集內網情報的利器:
場景一:內網主機探測
# 掃描整個子網段的 NetBIOS 資訊
for /L %i in (1,1,254) do @nbtstat -A 192.168.1.%i 2>nul | findstr "<" >> netbios_scan.txt
場景二:識別網域控制器
# 尋找帶有 <1C> suffix 的主機(Domain Controller)
nbtstat -A 192.168.1.100 | findstr "1C"
輸出中若出現 <1C> GROUP,代表該網段有網域控制器。
場景三:識別檔案伺服器
# 尋找帶有 <20> suffix 的主機(File Server)
nbtstat -A 192.168.1.100 | findstr "20"
場景四:結合 PowerShell 批次掃描
# 掃描子網段並輸出結果
1..254 | ForEach-Object {
ip = "192.168.1._"
result = nbtstat -Aip 2>null
if (result -match "UNIQUE|GROUP") {
Write-Output "=== ip ==="result | Select-String "<"
}
}
場景五:Living off the Land(就地取材)
由於 nbtstat 是 Windows 內建工具,不會觸發大多數 EDR 的可疑程式警報:
# 低調偵察,不需要上傳任何工具
nbtstat -A 192.168.1.1
nbtstat -c
紅隊技巧小結
| 目標 | 指令 | 關鍵 Suffix |
|---|---|---|
| 找網域控制器 | nbtstat -A <IP> |
<1C> |
| 找檔案伺服器 | nbtstat -A <IP> |
<20> |
| 找工作站 | nbtstat -A <IP> |
<00> UNIQUE |
| 確認網域名稱 | nbtstat -A <IP> |
<00> GROUP |
8. 藍隊怎麼用(偵測特徵)
常見攻擊特徵
| 特徵 | 說明 |
|---|---|
| 大量 UDP 137 流量 | NetBIOS Name Service 使用 UDP 137 |
| 連續 IP 查詢 | 短時間內對連續 IP 發送 nbtstat 查詢 |
| 單一來源多目標 | 同一主機對多個目標發送 NetBIOS 查詢 |
| 非工作時段活動 | 深夜或週末的 NetBIOS 查詢活動 |
網路層偵測
Wireshark 過濾器:
udp.port == 137 && nbns
Suricata 規則範例:
alert udp any any -> any 137 (msg:"Potential NetBIOS Enumeration"; threshold:type both, track by_src, count 10, seconds 60; sid:1000001; rev:1;)
Windows 事件日誌監控
雖然 nbtstat 本身不會產生特定事件日誌,但可監控相關網路活動:
# 監控 NetBIOS 相關服務
Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='NetBT'} -MaxEvents 50
Sysmon 偵測規則
<RuleGroup name="NetBIOS Enumeration Detection" groupRelation="or">
<ProcessCreate onmatch="include">
<CommandLine condition="contains">nbtstat -A</CommandLine>
<CommandLine condition="contains">nbtstat -a</CommandLine>
</ProcessCreate>
</RuleGroup>
防禦建議
1. 停用不必要的 NetBIOS:
# 在網路介面上停用 NetBIOS over TCP/IP
# 控制台 > 網路連線 > 內容 > TCP/IPv4 > 進階 > WINS > 停用 NetBIOS
2. 防火牆規則:
# 封鎖外部 NetBIOS 流量
netsh advfirewall firewall add rule name="Block NetBIOS" dir=in action=block protocol=UDP localport=137,138
netsh advfirewall firewall add rule name="Block NetBIOS TCP" dir=in action=block protocol=TCP localport=139
3. 網路分段:
– 限制 NetBIOS 流量只能在必要的 VLAN 內傳輸
– 在核心交換器上設定 ACL 阻擋跨網段的 UDP 137 流量
SIEM 告警規則範例
IF source_ip sends > 20 UDP packets to port 137
targeting > 10 unique destination IPs
within 60 seconds
THEN alert "Potential NetBIOS Enumeration Scan"
9. 常見問題與故障排除
Q1: nbtstat 查詢沒有回應?
- 目標主機可能已停用 NetBIOS
- 防火牆阻擋 UDP 137 埠
- 目標主機不在同一網段
Q2: 顯示「找不到主機」?
# 確認網路連通性
ping 192.168.1.100
# 確認 NetBIOS 服務是否啟用
sc query netbt
Q3: 快取資訊不正確?
# 清除並重新載入 NetBIOS 快取
nbtstat -R
# 釋放並重新註冊名稱
nbtstat -RR
10. 相關工具比較
| 工具 | 平台 | 用途 | 特點 |
|---|---|---|---|
nbtstat |
Windows | NetBIOS 查詢 | 內建、低調 |
nmblookup |
Linux | NetBIOS 查詢 | Samba 套件 |
nbtscan |
跨平台 | 批次 NetBIOS 掃描 | 速度快 |
nmap --script nbstat |
跨平台 | NetBIOS 掃描 | 功能強大 |
enum4linux |
Linux | SMB/NetBIOS 列舉 | 資訊豐富 |
總結
nbtstat 是一個簡單但強大的 Windows 內建工具。對紅隊而言,它是低調進行內網偵察的利器;對藍隊而言,理解其行為特徵有助於建立有效的偵測機制。
在現代企業環境中,雖然 NetBIOS 逐漸被更安全的協定取代,但許多舊系統仍依賴它運作,因此了解 nbtstat 的使用方式仍具有實戰價值。
