Nmap(又名Zenmap)是一款非常流行的端口扫描工具,功能强大且实用。它不仅可以发现主机状态、扫描端口,还能识别操作系统和服务版本,甚至可以绕过防火墙和入侵检测系统。新增的NSE脚本引擎让它变得更加强大,支持多种高级功能,比如Web扫描和漏洞发现。最新版本v7.99做了很多改进,比如更新了指纹库、修复了一些性能问题,并且提升了对不同平台的支持。作为一个系统管理员,我觉得Nmap简直是必备工具,无论是日常维护还是安全审计,都能让我事半功倍!

Nmap主要功能
主机发现(Host Discovery)
用于发现目标主机是否处于活动状态(Active)。
Nmap提供了多种检测机制,可以更有效地辨识主机。例如可用来列举目标网络中哪些主机已经开启,类似于Ping命令的功能。
端口扫描(Port Scanning)
用于扫描主机上的端口状态。
Nmap可以将端口识别为开放(Open)、关闭(Closed)、过滤(Filtered)、未过滤(Unfiltered)、开放|过滤(Open|Filtered)、关闭|过滤(Closed|Filtered)。默认情况下,Nmap会扫描1000个常用的端口,可以覆盖大多数基本应用情况。
版本侦测(Version Detection)
用于识别端口上运行的应用程序与程序版本。
Nmap目前可以识别数千种应用的签名(Signatures),检测数百种应用协议。而对于不识别的应用,Nmap默认会将应用的指纹(FingERPrint)打印出来,如果用户确知该应用程序,那么用户可以将信息提交到社区,为社区做贡献。
操作系统侦测(OS detection)
用于识别目标机的操作系统类型、版本编号及设备类型。
Nmap目前提供了上千种操作系统或设备的指纹数据库,可以识别通用PC系统、路由器、交换机等设备类型。
防火墙/IDS规避(Firewall/IDS evasion)
Nmap提供多种机制来规避防火墙、IDS的的屏蔽和检查,便于秘密地探查目标机的状况。
基本的规避方式包括:分片(Fragment)/IP诱骗(IP decoys)/IP伪装(IP spoofing)/MAC地址伪装(MAC spoofing)等等。
NSE脚本引擎(Nmap Scripting Engine)
NSE是Nmap最强大最灵活的特性之一,可以用于增强主机发现、端口扫描、版本侦测、操作系统侦测等功能,还可以用来扩展高级的功能如web扫描、漏洞发现、漏洞利用等等。Nmap使用Lua语言来作为NSE脚本语言,目前的Nmap脚本库已经支持350多个脚本。
更新日志
v7.99版本
集成了许多最常提交的 IPv4 和 IPv6 操作系统指纹,以及数十个更新的服务指纹。
升级的包含库:OpenSSL 3.0.19、libpcap 1.10.6、libpcre2 10.47、liblinear 2.50、zlib 1.3.2
将内置的 Npcap 版本从 1.83 升级到 1.87,修复了多个崩溃和稳定性问题。
Zenmap 现在以通用 wheel 文件 (zenmap-7.99-py3-none-any.whl) 的形式分发,而不是 RPM 包,以便它可以安装在任何安装了 Python 3 的系统上。[Daniel Miller]
限制了使用 -e 参数启动的子进程继承的句柄数量,防止在使用 -e 和 --keep-open 参数时客户端之间相互干扰。由 Nimish Verma 报告。
[Ncat] 修复了多个回归问题或长期存在的故障案例 ncat-test.pl [Daniel Miller]:
[Windows] 修复了使用 --exec 处理套接字 EOF 的问题
修复了监听模式下的 -i(空闲超时)选项,该选项在 Ncat 7.96 中添加 -q 选项时出现故障。
使用 SSL 时,固定 HTTP 代理服务器。
DTLS(基于 UDP 的 SSL)在 stdin EOF 处关闭连接。
[Windows][GH#2711] Nmap 现在支持扫描各种 VPN 虚拟适配器,例如 OpenVPN TAP 适配器。[Daniel Miller]
[GH#3280] 修复 Nmap 7.98 中反向 DNS 的性能退化问题。#3130 的修复导致 Nmap 发送请求的速度过慢。[Daniel Miller]
[macOS][GH#3289] 修复了 libdnet 中导致报告 MAC 地址错误的配置时故障。[Daniel Miller]
[Zenmap][GH#3189] 修复 Zenmap 拓扑和主机查看器中的崩溃问题:“TypeError: format requires a mapping” [Daniel Miller]
[GH#2955] 修复与 #2206 相关的 -e 和 -S 路由问题,该问题会导致错误“setup_target: failed to determine route” [Daniel Miller]
[GH#3214] 改进构建过程在不同平台上的兼容性,并在 GitHub 工作流中添加多平台自动构建功能。[Jordan Ritter]
[NSE][GH#2183][GH#3239] 脚本 hostmap-crtsh 现在默认只报告给定目标主机名的真正子域名。过去,它会报告任何包含目标主机名作为子字符串(但不一定是后缀)的 DNS 名称。可以通过设置脚本参数 hostmap-crtsh .lax 来启用旧的行为。[Sweekar-cmd, nnposter]
[NSE] 函数 url.parse_query 无法将加号识别为空格。[nnposter]
[NSE] 函数 url.parse 无法正确解析包含查询字符串但路径为空的 URL。[nnposter]
[NSE][GH#3287] 当输入表具有自定义的 __pairs 元方法时,函数 tableaux.tcopy 和 tableaux.shallow_tcopy 的行为不一致。现在这两个函数都执行原始复制,忽略元方法。[nnposter]
[NSE] 函数 tableaux.shallow_tcopy 对具有布尔键的表无法正常工作。[nnposter]
[NSE] IPP 打印队列作业详情无法正确填充,因为它严重依赖于苹果特有的属性。[nnposter]
[NSE][GH#3245] 由于 connect 和 close 函数已不再使用,因此已从 IPP 库中移除。[nnposter]
[NSE] ipOps.expand_ip 在处理格式错误的 IPv6 地址时会崩溃。[nnposter]
[NSE][GH#3262] FTP 横幅解析现在更符合 RFC 959 第 4.2 节的要求。[nnposter]
[NSE][GH#3253] 函数 stdnse.make_buffer 现在接受一个额外的参数,允许预先将数据加载到新创建的缓冲区中。[nnposter]
[NSE][GH#3191][GH#3218] 脚本 http-internal-ip-disclosure 已得到增强,新增了对 IPv6 和 HTTPS 的支持,并能更准确地处理目标响应。[nnposter]
[NSE][GH#3194] 由于特权端口冲突,基于 RPC 的脚本偶尔会失败。[nnposter]
[NSE][GH#3196] 脚本 rlogin-brute 偶尔会失败,原因是其特权端口使用了差一范围,且未处理潜在的端口冲突。[nnposter]
















共有 0条评论