基于SMB协议的内网存活主机探测技术研究

发布于:2025-06-19 ⋅ 阅读:(17) ⋅ 点赞:(0)

一、 技术背景

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. 综合探测技术

推荐工作流程

  1. 使用ICMP初步扫描(快速发现)

  2. SMB端口精细确认(准确性验证)

  3. 版本信息收集(情报获取)

  4. 漏洞匹配分析(安全评估)

三、防御建议

  1. 网络层防护

    • 关闭不必要的SMB服务

    • 配置防火墙规则限制访问

    • 启用SMB签名功能

  2. 系统层加固

    • 及时安装安全补丁

    • 禁用SMBv1协议

    • 配置网络访问控制(NAC)

  3. 监测与响应

    • 部署IDS/IPS监测扫描行为

    • 建立基线监控异常连接

    • 制定应急响应流程

四、结语

SMB协议作为Windows内网的核心服务,既是资产发现的重要入口,也是攻击者重点利用的目标。安全人员应当全面掌握相关探测技术,同时做好相应防护措施。本文介绍的方法各有特点,在实际环境中可根据需求组合使用,建议在授权范围内进行测试,并做好操作日志记录。


网站公告

今日签到

点亮在社区的每一天
去签到