网络安全实战第10期:Nmap主机发现之一键扫清整个网段

Nmap 主机发现:一次扫清整个网段,找出所有活着的机器

网络安全实战 90 天 · Week 2 侦察 · 难度 ★★ 入门 | 关键词:Nmap 主机发现 -sn arp-scan ping 扫描 网段存活

渗透测试里最常被跳过的第一步,是把「这个网段里到底有几台机器」搞清楚。不先做主机发现,直接对着一堆 IP 端口扫描,99% 的包都打在空气上。这篇讲 Nmap 的 -sn 主机发现、ARP 扫描、结果落盘,以及我自己踩过的那个「网段抄错一位,扫出 0 台主机」的坑。

一、主机发现和端口扫描的区别

Nmap 的工作可以分成四个阶段:主机发现 → 端口扫描 → 服务版本识别 → 操作系统识别。很多人直接从第二步开始,结果对着 254 个 IP 全扫端口,跑一晚上。

主机发现只做一件事:判断这个 IP 上有没有活着的机器。它不发几百个包,只发一两个探测包看有没有回应。先做这一步,后面所有扫描的范围就从「一个 /24」缩小到「4 台机器」,效率差几十倍。

说明 本文所有扫描在自建隔离环境内进行:Kali 192.168.159.128 扫描本地 Host-Only 网段 192.168.159.0/24,目标为自建 Metasploitable2 靶机。未对任何非授权网段发起扫描。

二、先确认工具和网络

2.1 确认 Nmap 版本

查看版本

bash 复制代码
nmap --version

Kali 自带 Nmap,但先确认一下版本号有好处------不同版本支持的脚本和参数有差异,遇到「参数不认识」时第一时间就该怀疑版本。

2.2 确认自己的 IP 和网段

查看本机网络配置

bash 复制代码
ip addr
ip route

这一步是整篇文章里最关键的准备工作,也是我踩坑的地方。ip addr 看网卡和 IP,ip route 看默认网关和本机所在网段。

Host-Only 网络下,Kali 通常拿到类似 192.168.159.128 的地址,掩码 /24,那么要扫的网段就是 192.168.159.0/24。这一步抄错,后面全废。

三、-sn:主机发现的主力参数

-sn 主机发现

bash 复制代码
nmap -sn 192.168.159.128
nmap -sn 192.168.159.0/24

-sn 是 no port scan 的意思:只做主机发现,不扫端口。第一条先单点验证------扫自己,确认工具能用、网络通;第二条才铺开扫整个网段。

这个「先单点、再铺开」的顺序很重要。直接扫 /24,如果结果是 0 台存活,你没法判断是网段错了、网络不通、还是参数有问题。先扫自己拿到确定结果,再铺开,出问题时排查范围就小得多。

扫出来的结果里,192.168.159.1 是网关、.2 是 VMware 的 DHCP 服务、.128 是本机 Kali、.137 是 Metasploitable2 靶机。这四条就是后续所有工作的范围。

四、ARP 扫描:局域网内更快更准

ARP 层主机发现

bash 复制代码
sudo nmap -sn -PR 192.168.159.0/24
sudo arp-scan -l

同一个二层网络里,ARP 比 ICMP 可靠得多。原因很简单:防火墙可以屏蔽 ping,但基本不会屏蔽 ARP------ARP 是局域网通信的基础,屏蔽了机器就上不了网。

-PR 是强制使用 ARP ping。arp-scan -l 是另一个专用工具,直接扫本机所在网段,输出里带 MAC 地址和厂商。

MAC 地址里的厂商前缀很有用:00:50:56 是 VMware 虚拟机的固定前缀,看到这个就知道对方是虚拟出来的靶机而不是物理设备。这个判断在后面区分「靶机」和「真实设备」时非常关键。

五、结果落盘:别让扫描白跑

输出到文件

bash 复制代码
nmap -sn 192.168.159.0/24 -oN hosts.txt
nmap -sn 192.168.159.0/24 -oA scan_all

-oN 输出普通文本,人看得懂;-oA 一次性输出三种格式(.nmap / .xml / .gnmap),XML 给工具读、普通文本给人看。做侦察一定要落盘------终端滚屏是有上限的,几百行输出滚过去就找不回来了。

六、把结果整理成清单

扫描输出是原始数据,还要整理成能用的清单。我的做法是记三列:IP、MAC 前缀、推测角色。

IP MAC 前缀 推测角色
192.168.159.1 --- 网关(VMware NAT/Host-Only 虚拟网卡)
192.168.159.2 00:50:56 VMware DHCP 服务
192.168.159.128 00:0C:29 本机 Kali(VMware 虚拟机)
192.168.159.137 00:0C:29 Metasploitable2 靶机

这份清单就是下一篇文章(端口扫描)的输入。有了它,就不用再对着 254 个 IP 瞎扫。

七、踩坑记录

现象 原因 解决办法
扫出 0 hosts up 网段抄错一位(192.168.59.0 写成 192.168.159.0) 用 ip addr 重新确认,不要凭记忆写网段
靶机扫不到 靶机网络模式与本机不一致(一个 NAT 一个 Host-Only) 两台虚拟机都设成同一个 Host-Only 网卡
-PR 报权限错误 ARP 原始包需要 root 加 sudo
扫 /24 要等很久 默认时序保守,每个 IP 都等超时 加 -T4 提速,局域网内可放心用

坑 1:扫出 0 台主机,网段抄错一位

第一次跑 nmap -sn 192.168.59.0/24,返回「0 hosts up」。反复检查参数、换参数、加 sudo,全是 0。

折腾了二十分钟才回头看 ip addr------本机是 192.168.159.128,网段是 192.168.159.0/24,我少写了一个 1。扫描器没错,是我抄错了。

教训:网段永远从 ip addr 的输出里复制,不要凭记忆手打。这个错误看起来很低级,但在真实项目里同样高发------尤其是手里同时跟进多个网段的时候。

坑 2:靶机扫不到,网络模式不一致

网段改对之后,扫出了网关、DHCP、本机,但就是没有靶机 .137。

原因:靶机是新建的虚拟机,VMware 默认给它配了 NAT 网络,而 Kali 在 Host-Only 上。两台机器在不同的虚拟交换机里,物理上就不通。

解决:把两台虚拟机的网络适配器都设成同一个 Host-Only 网卡(VMnet1)。改完重启网络,再扫就出来了。

这条经验值得记:做靶场环境时,网络模式不一致是最高频的故障源,比任何工具配置问题都常见。

坑 3:-PR 需要 root

直接跑 nmap -sn -PR 192.168.159.0/24,报权限不足。

ARP 扫描要构造原始以太网帧,这是需要 CAP_NET_RAW 权限的操作,普通用户做不了。加 sudo 即可。同样地,后面要讲的 -sS(SYN 半开扫描)也需要 root,因为它要自己组 TCP 包。

坑 4:扫一个 /24 太慢

默认参数下扫 254 个 IP 要等好几分钟,因为 Nmap 对每个无响应的 IP 都会等超时。

加 -T4 把时序模板提到 aggressive。局域网内延迟极低,-T4 完全安全;只有在跨公网扫或者目标有 IDS 时才需要降到 -T2/-T3。这条在后面的端口扫描里更重要------全端口扫描不加 -T4 能跑半小时。

八、小结

  • 先主机发现、再端口扫描,顺序不能反;否则大量扫描包打在空 IP 上。

  • -sn 只做发现不扫端口,先扫自己单点验证,再铺开扫网段。

  • 局域网优先用 ARP(-PR / arp-scan),比 ICMP 可靠,防火墙基本不拦。

  • MAC 前缀能判断设备类型,00:50:56 / 00:0C:29 是 VMware 虚拟机的标志。

  • 结果必须落盘(-oN / -oA),终端滚屏会丢数据。

  • 网段从 ip addr 复制,别手打;虚拟机网络模式必须一致------这两个坑占了新手问题的八成。

下一篇:Day011 拿到存活主机清单之后,开始对靶机做端口扫描------默认扫描、SYN 半开、服务版本识别、操作系统指纹,一路做到全端口综合扫描。

相关推荐
垚垚学技术_聚焦云原生1 小时前
Ansible Vault 安全实践:敏感密码、密钥加密存储方案
安全·elasticsearch·ansible
北冥you鱼1 小时前
区块链供应链金融如何降低中小企业融资成本
网络·金融·区块链
鬼手点金1 小时前
提示注入:上下文安全的核心威胁
人工智能·安全·microsoft·机器学习·缓存·prompt
Linux_cy1 小时前
nginx 502 排查手册:九种原因分类、定位命令与检查顺序
linux·运维·服务器·网络·数据库·nginx·ssh
前端 贾公子2 小时前
第 6 章:MCP 服务器介绍与接入
运维·服务器·网络
ScilogyHunter2 小时前
Hercules系列安全MCU功能安全原理详解
java·单片机·安全·hercules
Data-Miner3 小时前
不本地部署,大模型怎么安全用?
大数据·人工智能·安全
李纲明3 小时前
WordPress 媒体库上传失败或一直转圈:先核 PHP 上传限制与目录权限,再查安全插件与对象存储
运维·开发语言·安全·php·wordpress·媒体库·devdiy
2301_7807896611 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos