一、 技術背景
SMB(Server Message Block)協議是Windows環境中廣泛使用的網絡文件共享協議,默認開放于445端口。由于其在Windows系統中的核心地位,SMB協議常被用作內網探測的重要切入點。本文系統介紹多種基于SMB的存活主機探測技術,幫助安全人員全面掌握內網資產發現方法。
圖1:SMB協議在Windows內網中的核心地位
二、探測方法詳解
1. Metasploit框架探測法
Metasploit提供了專業的SMB掃描模塊,可準確識別主機存活狀態及SMB版本信息。
use auxiliary/scanner/smb/smb_version
set RHOSTS 192.168.1.0/24
set THREADS 50
run
技術特點:
-
精準識別SMB版本
-
支持大范圍IP掃描
-
多線程加速探測
圖2:Metasploit的SMB掃描模塊執行結果
2. Nmap專業化掃描
Nmap提供多種SMB相關腳本,可深度獲取系統信息。
nmap -p445 --script smb-os-discovery 192.168.1.1-254 --open
關鍵腳本:
-
smb-os-discovery.nse
:獲取操作系統信息 -
smb-security-mode.nse
:檢測安全配置 -
smb-enum-shares.nse
:枚舉共享資源
圖3:Nmap的SMB腳本掃描示例
3. 原生系統命令探測
CMD批處理掃描
for /l %i in (1,1,254) do @(ping -n 1 -w 50 192.168.1.%i | find "TTL" && echo 192.168.1.%i >> alive.txt)
PowerShell高級掃描
# 設置腳本執行策略(如果需要)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
?
# 清空或創建輸出文件
$resultFile = "result.txt"
Clear-Content -Path $resultFile -ErrorAction SilentlyContinue
?
# 掃描192.168.0.0/24網絡中的445端口
1..254 | ForEach-Object {$ip = "192.168.0.$_"try {# 使用Test-Connection檢查IP是否可達,不使用TimeoutSeconds參數if (Test-Connection $ip -Count 1 -Quiet) {try {# 嘗試連接445端口$socket = New-Object Net.Sockets.TcpClient$socket.Connect($ip, 445)$status = "$ip`t445`tOpen"Write-Output $status$status | Out-File -Append $resultFile$socket.Close()} catch {$status = "$ip`t445`tClosed"Write-Output $status$status | Out-File -Append $resultFile}} else {$status = "$ip`t445`tUnreachable"Write-Output $status$status | Out-File -Append $resultFile}} catch {$status = "$ip`t445`tError: $_"Write-Output $status$status | Out-File -Append $resultFile}
}
技術對比:
方法 | 優點 | 缺點 |
---|---|---|
CMD批處理 | 系統原生支持 | 準確性較低 |
PowerShell | 靈活性強 | 需要適當權限 |
Telnet探測 | 簡單直接 | 需開啟服務 |
4. 綜合探測技術
推薦工作流程:
-
使用ICMP初步掃描(快速發現)
-
SMB端口精細確認(準確性驗證)
-
版本信息收集(情報獲取)
-
漏洞匹配分析(安全評估)
三、防御建議
-
網絡層防護:
-
關閉不必要的SMB服務
-
配置防火墻規則限制訪問
-
啟用SMB簽名功能
-
-
系統層加固:
-
及時安裝安全補丁
-
禁用SMBv1協議
-
配置網絡訪問控制(NAC)
-
-
監測與響應:
-
部署IDS/IPS監測掃描行為
-
建立基線監控異常連接
-
制定應急響應流程
-
四、結語
SMB協議作為Windows內網的核心服務,既是資產發現的重要入口,也是攻擊者重點利用的目標。安全人員應當全面掌握相關探測技術,同時做好相應防護措施。本文介紹的方法各有特點,在實際環境中可根據需求組合使用,建議在授權范圍內進行測試,并做好操作日志記錄。