使用 Nmap 查找 SMBv1 状态

信息安全 地图 smb
2021-09-09 11:24:28

nmap 的脚本选项是否有现成的方法来查找仍然启用服务器端的 SMB 1 的机器?如果可以的话,对我来说监控我的补救措施会快得多。

我宁愿不必为这条信息运行完整的 OpenVAS 扫描。

3个回答

目前没有脚本可以检查这一点。这将是对现有smbv2-enabled脚本的微不足道的更改。目前,该脚本具有三种可能的输出:

  • 无输出:任何版本的 SMB 失败。
  • “服务器支持 SMBv2 协议”:服务器至少支持 SMBv2,也可能支持 SMBv1。
  • “服务器不支持 SMBv2 协议”:服务器支持 SMBv1 但不支持 SMBv2。

如您所见,启用 SMBv2 的主机是否也支持 SMBv1 存在一些不确定性。但是修改脚本以依次测试每种方言将非常简单。

编辑:这很快就会出现在 Nmap 中。https://github.com/nmap/nmap/pull/943

编辑 2:现在 Nmap 7.60 中的smb-protocols脚本支持此功能。

有一个名为smb-vuln-ms08-067&的脚本与smb-vuln-cve2009-3103其他答案相反。您可以通过nmap -sU --script smb-vuln-ms08-067.nse -p U:137 <host>nmap --script smb-vuln-ms08-067.nse -p445 <host>

nmap --script smb-os-discovery.nse -p445 127.0.0.1 将检测主机和协议,您只需要使用 grep 来查看它是否仍然支持 smbv1。

对于最新的 SMBv2 漏洞检测,请使用:https ://github.com/countercept/doublepulsar-c2-traffic-decryptor

示例用法

nmap --script smb-vuln-ms08-067.nse -p445 nmap -sU --script smb-vuln-ms08-067.nse -p U:137

需要

msrpc nmap smb stdnse 字符串表 vulns

参考:https ://nmap.org/nsedoc/scripts/smb-vuln-ms08-067.html

通过采用启用 smbv2 的脚本并删除所有其他方言,我能够制作一个半功能的 smbv1-enabled.nse,只留下 NT LM .12

请记住,SMBv1 确实是 NT LM .12

一旦你这样做,你会得到两个结果之一。如果在服务器上启用了 SMBv1,您将收到服务器不支持 smbv2 的虚假错误;如果 SMBv1 被禁用,您将不会收到任何消息(因为 SMB 握手失败)。