Nmap 扫描产生所有“未知”

信息安全 地图
2021-08-16 12:26:56

我扫描了 localhost 和 LAN 适配器的 IP 地址,这是生成的输出。

Starting Nmap 5.51 ( http://nmap.org ) at 2012-10-12 18:06 Eastern Daylight Time
Skipping SYN Stealth Scan against localhost (127.0.0.1) because Windows does not support scanning your own machine (localhost) this way.
Nmap scan report for localhost (127.0.0.1)
Host is up.
PORT      STATE   SERVICE
1/tcp     unknown tcpmux
3/tcp     unknown compressnet
4/tcp     unknown unknown
6/tcp     unknown unknown
7/tcp     unknown echo
9/tcp     unknown discard
13/tcp    unknown daytime
17/tcp    unknown qotd
19/tcp    unknown chargen
20/tcp    unknown ftp-data
-------redacted-for-posting-purposes-------
60020/tcp unknown unknown
60443/tcp unknown unknown
61532/tcp unknown unknown
61900/tcp unknown unknown
62078/tcp unknown iphone-sync
63331/tcp unknown unknown
64623/tcp unknown unknown
64680/tcp unknown unknown
65000/tcp unknown unknown
65129/tcp unknown unknown
65389/tcp unknown unknown

Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds

对所有扫描的端口未知。然后我继续扫描“scanme.nmap.org”,并在扫描该服务时按预期进行了常规输出。

有什么建议?

4个回答

问题出在 Windows 和扫描本地机器上。由于访问 NIC 的方式不同,Windows 上的 Nmap 与 Linux 上的工作方式不同。它实际上并不是从一个单独的进程连接到每个端口,而是连接到它自己。这就是为什么扫描会列出所有端口,并导致与每个端口的连接被忽略。

作为测试,扫描端口 8 和 18(在上面的扫描中省略)。假设您最初进行了默认扫描,则不会测试这些端口。如果您专门测试它们,它们也应该显示为“未知”。

从 Windows 扫描到 localhost(127.0.0.1、::1 或属于扫描系统本身的 IP 地址)时,会出现此输出,但仅适用于 2016 年 7 月之前发布的 Nmap 版本。Nmap 7.25BETA1 添加了 Windows localhost 扫描使用新的Npcap 数据包捕获库,因此这将不再是问题。

其技术原因可以追溯到 Windows XP。在 XP Service Pack 2 之前的 Windows 版本中,程序可以使用原始套接字来发送 Nmap 用于 SYN 扫描和操作系统检测的自定义探针。但随后 GRC.com 的 Steve Gibson 写了一篇受欢迎的文章,声称原始套接字将被用于整个互联网的 DDoS,因此应该被删除。这当然是不正确的,但在 XP SP2 中,Microsoft 删除了大多数形式的原始套接字

作为回应,Nmap 转向通过 WinPcap(现在的 Npcap)发送原始以太网帧,具有讽刺意味的是,它仍然允许 Gibson 担心的所有相同类型的流量欺骗。但是,它并不完美:它需要在用于发送流量的接口上运行数据包过滤器驱动程序,并且它仅适用于支持/需要以太网帧头的链接类型:以太网、802.11 WiFi 等。其他链接类型那不会工作包括 PPP 隧道、VPN,当然还有环回流量。不支持环回流量,因为它在操作系统的内部网络堆栈中上升得不够高,无法允许 WinPcap NDIS 驱动程序进行拦截或注入。Npcap 通过创建一个新的环回接口来克服这个障碍,以强制本地流量通过可以观察和修改的完整堆栈。

跳过对 localhost (127.0.0.1) 的 SYN Stealth Scan,因为 Windows 不支持以这种方式扫描您自己的计算机 (localhost)。

这就是问题所在。尝试另一种扫描技术(SYN 除外,因为我们已经知道它不起作用),例如 TCP Connect:

nmap -sT 127.0.0.1

您也可以尝试使用此处解释的其余技术进行测试: https ://nmap.org/book/man-port-scanning-techniques.html

看来我已经找出了我的情况的罪魁祸首。这导致当npcap服务&npcap LWF驱动安装失败时,npcap环回接口安装失败,导致这样的问题。我的驱动程序在暂时禁用组策略后终于成功安装Admin Templates\System\Device Installation\Device Installation Restrictions\Prevent Installation of devices using drivers that match these device setup classes\ (显示) {D48179BE-EC20-11D1-B6B8-00C04FA372A7}

此类驱动程序被特别阻止安装,它作为 Windows 的一部分被禁用,通过 Thunderbolt 和 SBP2 设备为 bitlocker内置USB DMA 攻击保护:

支持 SBP2 协议类的 IEEE 1394 设备 = SBP2 ClassGuid = {d48179be-ec20-11d1-b6b8-00c04fa372a7}

奇怪的是,即使重新启用此策略,安装问题似乎也不会持续存在;为什么?我不知道。这是几个月来我第一次能够安装 Npcap。我更改的唯一其他策略和/或设置是将启用的组策略设置"Boot-Start Driver Initialization Policy""Good only". 这意味着可能某些“恶意软件”或“未签名”驱动程序阻止了安装(但不太可能;我已经执行了彻底的在线和离线病毒扫描)并且在线我只使用 Windows Defender,并且在安装成功时从未更改过我的防病毒设置。

无论如何,现在我可以成功扫描 127.0.0.1 而不会出现任何“未知”端口。