如何使用Nmap:网络映射器免费安全扫描器

如何使用Nmap:网络映射器免费安全扫描器

Nmap,全称Network Mapper,是网络发现和安全审计中使用最广泛的免费开源工具之一。无论您是系统管理员映射内部网络、开发人员检查服务器上暴露了哪些服务,还是注重隐私的用户验证路由器实际向互联网开放了什么,Nmap都能以数据包级别的精确视图,让您了解哪些主机可达以及正在运行什么服务。

本指南将介绍Nmap的功能、安装方法、最实用的扫描命令、如何解读输出结果,以及如何在扫描时遵守法律。同时,也会讨论在快速检查时,基于浏览器的替代工具(如BrowserScan)何时更合适。

什么是Nmap,它能做什么?

如何使用Nmap:网络映射器免费安全扫描器 - 什么是Nmap,它能做什么?

如何使用Nmap:网络映射器免费安全扫描器 - 什么是Nmap,它能做什么?.

如何使用Nmap:网络映射器免费安全扫描器 - 什么是Nmap,它能做什么?。

Nmap使用原始IP数据包来确定网络上有哪些主机可用、这些主机提供哪些服务、运行什么操作系统,以及存在何种数据包过滤器或防火墙。它旨在快速扫描大型网络,但同样适用于单个主机。

常见用例包括:

  • 网络清单:发现子网中连接的每个设备
  • 安全审计:识别开放端口和过时服务
  • 服务监控:检查特定端口或服务是否仍在运行
  • 防火墙测试:验证哪些端口被过滤或阻止
  • 操作系统指纹识别:确定远程主机的操作系统和版本

官方Nmap套件还包括Zenmap(图形界面和结果查看器)、Ncat(用于数据传输和调试)、Ndiff(用于比较扫描结果)以及Nping(用于数据包生成和响应分析)。

Nmap是免费的吗?需要注册账户吗?

如何使用Nmap:网络映射器免费安全扫描器 - Nmap是免费的吗?需要注册账户吗?

如何使用Nmap:网络映射器免费安全扫描器 - Nmap是免费的吗?需要注册账户吗?.

如何使用Nmap:网络映射器免费安全扫描器 - Nmap是免费的吗?需要注册账户吗?。

Nmap完全免费且开源。您无需创建账户或登录即可下载和使用。源代码基于GNU GPL许可证发布,这意味着您可以修改和重新分发。官方二进制包适用于Linux、Windows和macOS,并且许多Linux发行版默认包含该工具。

如果您刚开始使用,Nmap登录和设置指南详细介绍了Windows、macOS和Linux的安装步骤。

如何安装Nmap

如何使用Nmap:网络映射器免费安全扫描器 - 如何安装Nmap

如何使用Nmap:网络映射器免费安全扫描器 - 如何安装Nmap.

如何使用Nmap:网络映射器免费安全扫描器 - 如何安装Nmap。

Windows

  1. 从nmap.org下载官方Nmap安装程序。
  2. 运行安装程序并接受默认选项,包括用于原始数据包支持的Npcap驱动程序。
  3. 打开命令提示符或PowerShell窗口,输入nmap --version验证安装。

macOS

通过Homebrew安装:

brew install nmap

或者,从官方下载页面下载macOS安装程序。

Linux

在Debian或Ubuntu上:

sudo apt update
sudo apt install nmap

在Fedora或RHEL上:

sudo dnf install nmap

运行您的第一次Nmap扫描

如何使用Nmap:网络映射器免费安全扫描器 - 运行您的第一次Nmap扫描

如何使用Nmap:网络映射器免费安全扫描器 - 运行您的第一次Nmap扫描.

如何使用Nmap:网络映射器免费安全扫描器 - 运行您的第一次Nmap扫描。

最简单的扫描针对单个主机:

nmap scanme.nmap.org

这将执行对前1000个最常见端口的默认TCP SYN扫描。输出显示每个开放端口、服务名称和端口状态:

PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
443/tcp  open  https

端口状态可能报告为open、closed、filtered、unfiltered、open|filtered或closed|filtered。filtered通常表示防火墙或数据包过滤器干扰了扫描。

基本Nmap命令和扫描类型

主机发现:查找网络上的活动设备

在扫描端口之前,您通常需要知道哪些主机在线。Ping扫描向一个范围发送ICMP回显请求、TCP SYN数据包和其他探测:

nmap -sn 192.168.1.0/24

这将列出本地子网上所有响应的设备,而不执行端口扫描。

TCP SYN扫描:默认的隐蔽扫描

nmap -sS 192.168.1.1

SYN扫描发送TCP SYN数据包并等待SYN/ACK响应。它比完整的TCP连接扫描更快,且不太可能被记录,因为它从不完成三次握手。

TCP连接扫描:当您没有原始数据包权限时

nmap -sT 192.168.1.1

这使用操作系统的正常连接系统调用。当您没有root或管理员权限时,它更可靠,但更容易被目标系统检测到。

UDP扫描:查找开放的UDP服务

nmap -sU -p 53,67,68,123,161 192.168.1.1

UDP扫描比TCP扫描慢且可靠性较低,但许多重要服务(如DNS、DHCP、NTP和SNMP)运行在UDP上。

版本检测:识别运行的软件

nmap -sV scanme.nmap.org

版本检测探测开放端口以确定应用程序名称和版本。这对于识别过时或易受攻击的软件至关重要。

操作系统检测:指纹识别远程系统

nmap -O scanme.nmap.org

操作系统检测分析TCP/IP协议栈行为的细微差异,以猜测远程操作系统和版本。这需要root或管理员权限。

激进扫描:组合多种技术

nmap -A scanme.nmap.org

-A标志在单个命令中启用操作系统检测、版本检测、脚本扫描和路由跟踪。它产生大量输出,但提供目标的全面视图。

扫描特定端口或端口范围

nmap -p 22,80,443 scanme.nmap.org
nmap -p 1-1024 scanme.nmap.org
nmap -p- scanme.nmap.org

第一个命令扫描三个特定端口。第二个扫描前1024个端口。第三个扫描所有65535个TCP端口,速度较慢但更彻底。

使用Nmap脚本引擎

Nmap脚本引擎(NSE)通过数百个脚本扩展了Nmap,用于漏洞检测、暴力破解测试、服务枚举等。脚本按类别组织,如safe、default、vuln、auth和discovery。

运行所有默认脚本:

nmap -sC scanme.nmap.org

运行与漏洞相关的脚本:

nmap --script vuln scanme.nmap.org

运行特定脚本:

nmap --script http-title scanme.nmap.org

列出所有可用脚本:

ls /usr/share/nmap/scripts/

读取和保存Nmap输出

Nmap支持多种输出格式,可以组合使用:

nmap -oN normal.txt -oX xml.xml -oG grepable.txt scanme.nmap.org
  • -oN保存普通人类可读输出
  • -oX保存XML输出,供其他工具解析
  • -oG保存可grep输出,用于快速命令行过滤
  • -oA以通用基础名称保存所有三种格式

对于重复扫描,使用Ndiff比较结果:

ndiff scan1.xml scan2.xml

法律和道德考虑

Nmap是一个强大的工具,随之而来的是责任。扫描您不拥有或没有明确许可测试的网络或主机可能违反法律、服务条款或可接受使用政策。在某些司法管辖区,未经授权的端口扫描已导致民事诉讼甚至刑事指控。

最佳实践:

  • 只扫描您拥有或获得书面授权测试的系统
  • 使用官方测试主机scanme.nmap.org进行练习
  • 注意激进扫描可能触发入侵检测系统
  • 避免在工作时间或高速率扫描第三方基础设施
  • 在扫描外部目标之前,检查您的ISP的可接受使用政策

官方Nmap网络扫描书籍包含详细的法律章节,每个新用户在对自己的设备以外的任何东西进行扫描之前都应阅读。

Nmap与基于浏览器的端口扫描器

Nmap是深度、数据包级网络侦察的黄金标准,但并不总是最方便的选择。基于浏览器的端口扫描器(如BrowserScan中包含的)可以在不安装任何软件的情况下检查您公共IP地址上的常见开放端口。

何时选择Nmap:

  • 您需要操作系统检测、版本检测或NSE脚本
  • 您正在扫描内部网络或一系列主机
  • 您需要原始数据包控制和高级扫描类型
  • 您熟悉命令行

何时基于浏览器的扫描器更实用:

  • 您想从任何设备快速检查您的面向公共的端口
  • 您在公司网络后面,无法安装软件
  • 您只需要验证少数常见端口是否开放
  • 您正在从外部角度测试您的VPN或防火墙

要更全面地了解您的浏览器和网络暴露了什么,BrowserScan教程展示了如何检查浏览器指纹、检测DNS和WebRTC泄漏,并在一个地方扫描端口。如果您特别担心VPN是否泄漏您的真实IP地址,在线匿名指南解释了如何测试外部观察者实际能看到什么。

相关阅读

来源和进一步阅读

常见问题解答

Nmap真的免费吗?

是的。Nmap是免费且开源的,基于GNU GPL许可证发布。没有付费层级、账户或高级功能。该项目由社区和Npcap相关项目的赞助商支持。

Nmap会导致目标计算机崩溃吗?

Nmap设计为非破坏性,但激进扫描,尤其是UDP扫描或某些NSE脚本,可能会压垮脆弱设备,如旧打印机、物联网硬件或配置错误的服务器。官方文档警告说,扫描生产系统偶尔会导致不稳定,这也是只扫描您授权测试的系统的另一个原因。

Nmap和Zenmap有什么区别?

Nmap是命令行扫描器。Zenmap是官方图形前端,提供可视化界面来构建命令、运行扫描和比较结果。Zenmap不再积极开发,但对于许多喜欢GUI的用户来说仍然有效。

Nmap扫描需要多长时间?

对单个主机的默认扫描通常需要几秒到一分钟。使用-p-扫描所有65535个端口、运行版本检测或扫描大型子网可能需要更长的时间。-T时序模板标志,从-T0(偏执)到-T5(疯狂),调整扫描速度和隐蔽性。

我可以使用Nmap扫描自己的公共IP地址吗?

可以,但结果可能与外部观察者看到的不同。从您自己的网络内部扫描公共IP通常测试的是您的路由器,而不是您的实际机器。要获得真正的外部视图,请使用基于浏览器的端口扫描器或从网络外部的系统运行Nmap。

什么是官方Nmap测试目标?

Nmap项目提供scanme.nmap.org作为公共主机,供练习扫描。对此主机的扫描应保持合理,避免使用激进流量淹没它。

结论

Nmap仍然是了解网络上实际可达内容的最灵活、最强大的免费工具。学习核心命令——主机发现、SYN扫描、版本检测、操作系统指纹识别和Nmap脚本引擎——为您提供了一套实用的技能,用于安全审计、网络管理和故障排除。

从对您拥有的主机进行简单扫描开始,阅读官方Nmap文档,并在您感到舒适时扩展到NSE脚本。当您需要快速、无需安装的公共端口或浏览器隐私设置检查时,像BrowserScan这样的基于浏览器的工具可以很好地补充Nmap,无需命令行即可显示您的网络从外部看起来的样子。