地图,简称网络映射器,是 Linux 系统和网络管理员使用的开源且高度通用的工具。它通常用于网络探索、安全扫描、审核和检测远程计算机上的开放端口。
Nmap 可以识别实时主机、确定操作系统、检测数据包过滤器并显示远程系统上运行的开放端口。
Nmap命令用法
nmap [Scan Type(s)] [Options] {target specification}
大部分, 喜欢红帽,中央操作系统,软呢帽,德班, 和乌班图,包括地图在他们的默认包管理存储库中(或者),用于安装和管理软件包和更新。
安装地图在 Linux 上,请使用以下适合您的特定 Linux 发行版的命令。
sudo apt install nmap [On Debian, Ubuntu and Mint] sudo dnf install nmap [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] sudo emerge -a sys-apps/nmap [On Gentoo Linux] sudo apk add nmap [On Alpine Linux] sudo pacman -S nmap [On Arch Linux] sudo zypper install nmap [On OpenSUSE] sudo pkg install nmap [On FreeBSD]
1.使用Nmap检查开放端口和服务
这地图工具提供了多种扫描系统的方法。在此示例中,使用主机名执行扫描,,以及系统的 MAC 地址。
nmap tecmint
您还可以通过指定 IP 地址而不是主机名来扫描系统,这在以下环境中非常有用:域名系统未配置或在专用网络中工作时。
nmap 192.168.0.162

2. 在 Nmap 中启用详细模式
使用-v选项,将启用详细模式,该模式在扫描期间提供更详细的输出,这有助于理解扫描过程并显示有关目标系统的其他信息。
nmap -v [target IP or domain]

您还可以通过指定以空格分隔的 IP 地址或主机名来扫描多个主机。
nmap 192.168.0.101 192.168.0.102 192.168.0.103
3. 使用 Nmap 扫描整个子网
您可以使用 Nmap 扫描整个子网或 IP 范围,方法是提供*带有通配符。
nmap 192.168.0.*

在上面的输出中,您可以看到地图扫描整个子网并显示有关活动主机的信息(向上)在网络上。
4. 使用 IP 地址的最后一个八位字节扫描多个服务器
您只需指定 IP 地址的最后一个八位字节即可扫描多个 IP 地址。例如,以下命令对 IP 地址执行扫描192.168.0.101,192.168.0.102, 和192.168.0.103:
nmap 192.168.0.101,102,103
5. 从 Nmap 中的文件扫描主机列表
如果您有多个要扫描的主机,并且它们的详细信息列在一个文件中,您可以指示 Nmap 读取该文件并自动执行扫描。
创建一个名为的文本文件nmaptest.txt并列出您要扫描的服务器的所有 IP 地址或主机名。
cat > nmaptest.txt
接下来,运行以下命令“iL”使用 nmap 命令的选项来扫描文件中列出的所有 IP 地址。
nmap -iL nmaptest.txt
6. 使用 Nmap 扫描 IP 地址范围
您可以指定要扫描的 IP 地址范围,这在您想要扫描网络中的多个主机而不是单独扫描它们时非常有用。通过指定IP范围,您可以快速收集该范围内所有设备的信息。
例如,要扫描以下 IP 地址范围192.168.0.101到192.168.0.110,您可以使用以下命令:
nmap 192.168.0.101-110
该命令将扫描指定范围内的所有IP地址:192.168.0.101,192.168.0.102, 直至192.168.0.110。
7. 扫描网络,排除远程主机
这--exclude选项允许您跳过扫描某些您不想包含在结果中的主机,这在您需要执行大范围扫描但由于各种原因希望避免扫描某些 IP 地址时特别有用。
nmap 192.168.0.* --exclude 192.168.0.100
在这个例子中,Nmap将扫描整个192.168.0.0/24子网(来自的所有地址192.168.0.0到192.168.0.255)但会排除主机192.168.0.100从扫描中。
8. 扫描操作系统信息并执行Traceroute
和地图,您可以检测远程主机上运行的操作系统(OS)及其版本。此外,Nmap 可以执行跟踪路由并启用脚本扫描来收集有关主机配置的更详细信息。
要启用操作系统检测、版本检测、脚本扫描和跟踪路由,请使用-A选项。
nmap -A 192.168.0.162

通过使用-A选项,您可以在一次扫描中全面了解远程主机,包括其操作系统、服务、网络拓扑等。
9. 使用 Nmap 启用操作系统检测
要检测远程主机的操作系统 (OS),请使用-O选项。此外,--osscan-guess当检测不确定时,选项可以帮助对操作系统做出更准确的猜测。
sudo nmap -O [target IP or domain]

10. 扫描主机以检测防火墙
这-sA选项指示 Nmap 使用确认扫描识别可能已安装的过滤装置。这种类型的扫描发送数据包确认设置标志并分析响应以确定主机是否位于防火墙后面或使用数据包过滤。
nmap -sA 192.168.0.162

11. 扫描主机上的防火墙保护
您可以通过绕过主机的 ping 检查来扫描主机以确定其是否受到防火墙或数据包过滤软件的保护。
这-PN(无 ping)选项会跳过主机发现阶段,假设主机已启动并直接扫描它,即使它位于可能阻止 ICMP (ping) 请求的防火墙后面。
nmap -PN 192.168.0.162
12. 查找网络中的实时主机
这“-sP”选项允许您快速识别指定网络中哪些主机处于活动状态(即当前在线且响应)。
nmap -sP 192.168.0.*
在这个例子中,Nmap扫描所有IP地址192.168.0.*范围来识别哪些是正常的并且有响应。
13. 使用Nmap快速扫描
您可以使用以下命令执行快速扫描-F选项,指示工具扫描 nmap-services 文件中列出的一组预定义端口。此扫描侧重于常用端口的较小子集,使其比所有端口的完整扫描更快地完成。
nmap -F 192.168.0.162
通过使用-F选项,您可以快速了解目标计算机上最常见的开放端口,而无需等待所有端口的完整扫描完成。
14.查找Nmap版本
要找出哪个版本地图你正在你的机器上运行,使用-V选项,它将显示当前安装的 Nmap 版本,以及其他与版本相关的信息。
nmap -V
15. 按顺序扫描端口
使用-r标志以禁用随机化端口顺序,确保按升序连续扫描端口。
默认情况下,Nmap 随机化扫描端口的顺序,以避免被入侵检测系统或防火墙检测到。
然而,使用-r选项强制 Nmap 按照端口在目标机器上出现的顺序扫描端口。
nmap -r 192.168.0.162
16. 打印主机接口和路由信息
这--iflist选项,提供有关正在扫描的系统的网络接口和关联路由信息的详细信息,这有助于网络诊断、确定活动网络接口以及了解不同网段之间的路由路径。
nmap --iflist
此命令输出系统上所有可用接口的列表,以及它们各自的 IP 地址和路由详细信息。
17. 使用Nmap扫描特定端口
Nmap 提供了多种用于发现远程计算机上开放端口的选项。默认情况下,Nmap 仅扫描 TCP 端口,但您可以使用以下命令指定要扫描的特定端口或端口范围:-p选项。
例如,如果要扫描远程系统上的端口 80(HTTP 端口),可以使用以下命令:
nmap -p 80 server2.tecmint.com
18. 扫描特定TCP端口
地图允许您扫描特定的端口号和类型(例如传输控制协议或者UDP协议)而不是扫描所有端口。默认情况下,Nmap 扫描传输控制协议端口,但您可以显式定义要定位的 TCP 端口,这在您只对检查特定服务的状态感兴趣时非常有用。
例如,要扫描 TCP 端口 80(常用于 HTTP),可以使用:
nmap -p 80 [target IP or domain]
您还可以通过用逗号分隔来扫描多个端口:
nmap -p 22,80,443 [target IP or domain]
或者扫描一系列端口:
nmap -p 1-1000 [target IP or domain]
19. 扫描特定UDP端口
要扫描 UDP 端口,请使用-sUNmap 的选项。与 TCP 不同,由于 UDP 协议的无状态性质,UDP 扫描速度较慢且更难以解释。
然而,它对于识别通过 UDP 运行的 DNS、SNMP 和 DHCP 等服务至关重要。
sudo nmap -sU -p 53 server2.tecmint.com
20. 识别主机上运行的服务版本
您可以使用以下命令确定远程主机上运行的服务的版本号-sV选项,它将启用版本检测,探测开放端口以识别这些端口上运行的服务的应用程序名称和版本号。
nmap -sV [target IP or domain]
21. 当 ICMP 被阻止时查找活动主机
在某些情况下,远程主机受到阻止标准的防火墙的保护(例如典型的 ping 扫描中使用的那些-PE)。
什么时候ICMP被过滤后,Nmap 的默认主机发现可能无法检测系统是否已启动。要解决此问题,您可以使用TCP同步 (-PS)或者TCP 确认 (-PA)探针使用 TCP 数据包而不是 ICMP 来执行主机发现。
示例:使用 TCP SYN 探测
nmap -PS 192.168.0.101
示例:使用 TCP ACK 探测
nmap -PA 192.168.0.101
您还可以指定要与以下选项一起使用的端口号:
nmap -PS22,80,443 192.168.0.101 nmap -PA22,80,443 192.168.0.101
22. 使用 Nmap 执行隐秘扫描
这-sS选项启动 TCP SYN 扫描,通常称为“隐形扫描“;这种扫描被称为隐形扫描,因为它没有完成完整的 TCP 握手,因此不太可能被目标系统的入侵检测系统 (IDS) 记录。
nmap -sS 192.168.0.101
23. 使用 TCP Connect Scan 扫描常用端口
您可以使用选项-sT检查目标主机上最常用的 TCP 端口,通常在不允许 SYN 扫描时使用(例如,不以 root 身份运行时),因为它完成与每个端口的完整 TCP 握手。
nmap -sT 192.168.0.101
24. 执行 TCP 空扫描以逃避防火墙检测
这-sN选项启动 TCP 空扫描,发送未设置标志的 TCP 数据包(即没有 SYN、FIN、RST、PSH、ACK 或 URG),这是非标准的,可能会迷惑配置不当的防火墙或入侵检测系统 (IDS)。
该技术的目标是绕过标准过滤机制并分析目标系统如何响应不明确的数据包。
nmap -sN 192.168.0.101
结论
有了这些技术,您现在应该具备使用的坚实基础地图用于网络探索和安全扫描。无论您是扫描开放端口、检测服务还是识别防火墙,Nmap 都提供强大的功能来帮助您评估和保护网络。
我鼓励您在自己的环境中尝试这些命令并测试不同的 Nmap 选项。如果您有任何疑问或想分享您的经验,请在下面发表评论。请继续关注更多有创意的 Nmap 技术!
