Nmap

網路探索與安全審計工具

Nmap网络映射器)是一款用于网络发现安全审计网络安全工具,在其首次发布后的前几年之间是 GPL 自由软件,但最近版本的 nmap 是否是 FOSS 自由软件还存在许多质疑和争议。[6] [7] 软件名字Nmap是Network Mapper的简称。通常情况下,Nmap用于:

  • 列举网络主机清单
  • 管理服务升级调度
  • 监控主机
  • 服务运行状况
Nmap Security Scanner
5.21版的Nmap屏幕截图
5.21版的Nmap屏幕截图
原作者Gordon Lyon (Fyodor)
首次发布1997年9月 (1997-09)
当前版本
  • 7.95 (2024年4月23日;稳定版本)[1][2]
编辑维基数据链接
原始码库 编辑维基数据链接
编程语言C, C++, Python, Lua
操作系统跨平台
语言英语
类型电脑安全网络管理
许可协议NPSL [3] 或 被修改过的 GPLv2 [4]专有软件 [5]
网站nmap.org

Nmap可以检测目标主机是否在线、端口开放情况、侦测运行的服务类型及版本资讯、侦测操作系统与装置类型等资讯。 它是网络管理员必用的软件之一,用以评估网络系统安全。

Nmap 是不少骇客脚本小子爱用的工具 。系统管理员可以利用Nmap来探测工作环境中未经批准使用的伺服器,骇客通常会利用Nmap来搜集目标电脑的网络设定,从而计划攻击的方法。

Nmap通常用在资讯搜集阶段,用于搜集目标机主机的基本状态资讯。扫描结果可以作为漏洞扫描漏洞利用权限提升阶段的输入。例如,业界流行的漏洞扫描工具Nessus与漏洞利用工具Metasploit都支持导入Nmap的XML格式结果,而Metasploit框架内也集成了Nmap工具(支持Metasploit直接扫描)。

Nmap不仅可以用于扫描单个主机,也可以适用于扫描大规模的电脑网络(例如,扫描英特网上数万台电脑,从中找出感兴趣的主机和服务)。

Nmap 核心功能 编辑

主机发现 编辑

用于发现目标主机是否处于活动状态。
Nmap 提供了多种检测机制,可以更有效地辨识主机。例如可用来列举目标网络中哪些主机已经开启,类似于Ping命令的功能。

端口扫描 编辑

用于扫描主机上的端口状态。
Nmap可以将端口识别为开放(Open)、关闭(Closed)、过滤(Filtered)、未过滤(Unfiltered)、开放或过滤(Open|Filtered)、关闭或过滤(Closed|Filtered)。默认情况下,Nmap会扫描1660个常用的端口[8],可以覆盖大多数基本应用情况。

版本侦测 编辑

用于识别端口上运行的应用程式与程序版本。
Nmap目前可以识别数千种应用的签名(Signatures),检测数百种应用协议。而对于不识别的应用,Nmap默认会将应用的指纹(Fingerprint)打印出来,如果用户确知该应用程式,那么用户可以将资讯提交到社区,为社区做贡献。

操作系统侦测 编辑

用于识别目标主机的操作系统类型、版本编号及装置类型。
Nmap目前提供1500个操作系统或装置的指纹数据库[9],可以识别通用PC系统、路由器、交换机等装置类型。

防火墙/IDS规避和哄骗 编辑

Nmap提供多种机制来规避防火墙、IDS的的屏蔽和检查,便于秘密地探查目标主机的状况。
基本的规避方式包括:数据包分片、IP诱骗、IP伪装、MAC地址伪装。

NSE脚本引擎 编辑

NSE是Nmap最强大最灵活的特性之一,可以用于增强主机发现、端口扫描、版本侦测和操作系统侦测等功能,还可以用来扩展高级的功能如web扫描、漏洞发现和漏洞利用等。Nmap使用Lua语言来作为NSE脚本语言,目前的Nmap脚本库已经支持350多个脚本。

Nmap基本命令和典型用法 编辑

  • Nmap 基本指令
nmap [ <掃描類型> ...] [ <選項> ] { <掃描目標說明> }
  • 全方位扫描(包括Host Discovery、端口扫描、端口服务版本扫描、OS类型扫描及默认脚本扫描):
nmap -A target_ip
  • Ping扫描:
nmap -sn target_ip
  • 快速端口扫描(前100个常用端口):
nmap -F target_ip
  • 版本扫描:
nmap -sV target_ip 
  • 作业系统类型扫描:
nmap -O target_ip
  • 运行标记为safe的nse script
nmap -sC target_ip
  • 运行完整tcp握手扫描(虽然nmap默认使用tcp半开放扫描,即选项-sS。但却容易被今日大多资安厂商入侵侦测系统发现,因此使用“完整握手扫描-sT”还比“隐形扫描-sS”来得更隐匿)
nmap -sT target_ip
  • 发送碎片数据包,躲避ids侦测和绕过防火墙(8-bytes为单位),但实际上碎片数据包特征过于明显,不建议于实际红队攻击中使用
nmap -f target_ip
  • 使用同网段上闲置主机(zombie_host)作为跳板扫描
nmap -sI zombie_host:zombie_port target_ip
  • 使用大量虚假的源地址,混淆被扫描方日后鉴识、分析的能力,即诱饵扫描
nmap -D ip1,ip2,ip3,... target_ip  

nmap -D RND:10 target_ip (隨機產生10組ipv4掩護)

其他 编辑

Nmap 常被跟评估系统漏洞软件Nessus混为一谈。Nmap 以隐秘的手法,避开入侵检测系统的监控,并尽可能不影响目标系统的日常操作。

Nmap 在电影《黑客帝国》中,连同SSH1英语SSH132位循环冗余校验漏洞,被崔妮蒂用以入侵发电站的能源管理系统。

参见 编辑

外部链接 编辑

参考资料 编辑

  1. ^ Nmap Change Log. 2024年4月23日 [2024年4月26日]. 
  2. ^ Nmap 7.95 released: OS and service detection signatures galore!. 2024年5月5日 [2024年5月5日] (英语). 
  3. ^ Nmap Public Source License. [2021-12-15]. (原始内容存档于2023-02-16). 
  4. ^ Nmap license. [2019-01-21]. (原始内容存档于2018-07-20). 
  5. ^ Did nmap just become non-free?. [2023-02-16]. (原始内容存档于2022-05-11). 
  6. ^ NPSL License Improvements · Issue #2199 · nmap/nmap · GitHub. [2023-02-16]. (原始内容存档于2023-02-16). 
  7. ^ 因为nmap 开发者将其软件的许可证更改为 NPSL(Nmap Public Source License),这个 NPSL 是 nmap 开发者自己写出的许可证文件,其内容源自于 GPLv2 但是增加了一些额外的具有争议性的限制条款)。一些 "注重自由软件的许可证问题" 的 GNU/Linux 发行版已经将 nmap 移出其包管理存储库 或者是将其固定在最后一个使用原版 GPLv2 许可证的版本(例如 Debian apt 存储库里的 nmap 就是因为NPSL许可证问题 所以一直停留在最后一个符合dfsg的版本上)。
  8. ^ 端口扫描基础. [2016-05-09]. (原始内容存档于2016-06-04). 
  9. ^ 操作系统探测. [2016-05-09]. (原始内容存档于2016-06-04).