Nmap 被广泛认为是网络探索和安全审计的事实上的标准工具。网络管理员使用 Nmap 来识别在其系统上运行的设备,发现可用主机及其提供的服务,查找开放端口并检测安全风险。虽然 Nmap 通常用于此类安全审核,但许多系统和网络管理员发现该工具有助于处理日常任务,例如网络库存、管理服务升级计划以及监控主机或服务正常运行时间。
Nmap 使用原始 IP 数据包来确定网络上可用的主机、这些主机提供的服务(应用程序名称和版本)、它们运行的操作系统(和操作系统版本)、正在使用的数据包过滤器/防火墙的类型,以及其他数十种特性。
该软件旨在快速扫描具有数千个设备和大量子网的大型网络,尽管它也可以监控单个主机。
喜欢图形界面的用户可以使用附带的 Zenmap 前端。
安装
大多数流行的 Linux 发行版都提供方便的软件包来安装软件。还有适用于 Mac OS X 和 Windows 的二进制文件。开发人员还为 FreeBSD、OpenBSD、NetBSD、Sun Solaris、Amiga、HP-UX 和其他操作系统创建了安装指南。
完整的源代码可供下载、编译和安装。
上图显示了 Nmap 进行的简单探测。
Nmap 的功能包括:
-
使用传输层协议,包括 TCP(传输控制协议)、UDP(用户数据报协议)和 SCTP(流控制传输协议),以及 ICMP(互联网控制消息协议)等支持协议,用于发送错误消息。
-
主机发现 – 识别网络上的主机。例如,列出响应 TCP 和/或 ICMP 请求或打开特定端口的主机。
-
端口扫描 – 枚举目标主机上的开放端口。
-
版本检测——查询远程设备上的网络服务以确定应用程序名称和版本号。 [7]
-
操作系统检测——确定网络设备的操作系统和硬件特性。
-
与目标的脚本化交互——使用 Nmap 脚本引擎 (NSE) 和 Lua 编程语言。编写、保存和共享自动执行不同类型扫描的脚本。
-
扫描不必产生大量流量,也不需要在一定范围内非常具有侵入性。
-
跨平台支持 – 在 Linux、macOS、Windows 和其他操作系统下运行。