[資安工具] 007 nbtstat 指令教學:NetBIOS 查詢與紅藍隊實戰應用

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 的使用方式仍具有實戰價值。

飛飛
飛飛

講師學歷:臺科資工所、逢甲資工系畢業。
技術專長:OSINT、滲透測試、網站開發、專業易懂教育訓練。
證照書籍:OSCP、OSCE³、著《資安這條路:領航新手的 Web Security 指南》。
教學經驗:60+ 企業教學經驗、指導過上百位學員。
教學特色:新手友善、耐心指導、擅長圖解(流程圖、心智圖)引導學習。
社群經驗:目前經營全臺資安社群 CURA,曾任臺科資安社社長、逢甲黑客社社長。
社群交流:LINE 社群《飛飛的資安大圈圈》,即時分享經驗、鼓勵交流。
社群分享:FB 粉專《資安這條路,飛飛來領路》,分享文章與圖卡整理。
個人網站:feifei.tw 分享資安技術文章;pbtw.tw 分享 AI 相關應用;ssdlc.feifei.tw 分享軟體安全開發流程文章。