news 2026/9/21 11:30:13

nmap你看我这篇就够了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
nmap你看我这篇就够了

💻 Nmap 扫描技术与原理详解

一、端口的六种状态(Port States)

Nmap 通过分析对发送探测包的响应来确定端口状态。

状态含义探测响应通常原因
1.打开 (Open)表示目标端口上有一个服务正在监听。这是渗透测试中最需要关注的状态。目标响应SYN-ACK(TCP) 或服务响应 (UDP)。端口正在被应用程序使用。
2.已关闭 (Closed)表示指定端口上没有服务监听,但端口可访问目标响应RST(TCP) 或ICMP 端口不可达(UDP)。端口未被应用程序使用。
3.已过滤 (Filtered)Nmap 无法确定端口是开放还是关闭,因为该端口不可访问无响应或 目标发送ICMP 主机/网络/端口不可达错误。通常是防火墙阻止了探测包到达或阻止了响应返回。
4.未过滤 (Unfiltered)Nmap 无法确定端口是打开还是关闭,但端口可访问目标响应RST(仅限 TCP ACK 扫描-sA或 Window 扫描-sW)。意味着探测包穿过了防火墙,但无法确定服务状态。
5.开放|过滤 (Open|Filtered)Nmap 无法确定端口是Open还是Filtered无响应(常见于 UDP 扫描或 IP 协议扫描)。常见于 UDP 扫描或无法收到明确的 RST/SYN-ACK 响应时。
6.关闭|过滤 (Closed|Filtered)Nmap 无法判断端口是Closed还是Filtered仅在使用少数不常见的扫描类型时出现。类似于 `Open

二、TCP 头部标志位(Flags)详解

TCP 标志位是 Nmap 高级扫描技术(如 Null、FIN、XMAS 扫描)的核心。

标志位全称作用补充说明
URGUrgent紧急指针字段有效。表示数据流中含有紧急数据,需优先处理。
ACKAcknowledge确认号字段有效。最常用。用于确认已收到的 TCP 数据段。
PSHPush推送功能。要求 TCP 立即将数据传递给应用程序,而不是等待缓冲区满。
RSTReset重置连接。立即终止连接。端口关闭、收到非法包或连接错误时发送。
SYNSynchronize同步序列号。用于发起TCP三次握手的第一步。
FINFinish发送方完成数据发送。用于终止TCP 连接。

三、主机发现(Host Discovery)原理与命令

主机发现(也称 Ping 扫描)是确定目标网络中哪些主机在线的过程。-sn选项禁用端口扫描,只进行主机发现。

1. 局域网内(Local Network)主机发现
  • 原理:ARP 请求 (Address Resolution Protocol)

    • 为什么有效?ARP 属于 OSI 模型的链路层,只在局域网内(同一子网)有效。Nmap 发出 ARP 请求询问哪个 MAC 地址拥有该 IP,在线主机直接用 MAC 地址回复。

    • 优点:无法被防火墙阻止(防火墙通常工作在三层及以上),最可靠

  • 命令:nmap -PR -sn <目标网络/CIDR>

    • -PR: 强制使用 ARP Ping 扫描。
2. 局域网外(External Network)主机发现
  • 默认流程:Nmap 尝试使用ICMP Echo Request (Ping)TCP ACKSYN探测 80 端口。

  • ICMP Ping 请求 (-PE)

    • 原理:发送 ICMP Echo Request(标准的 Ping 包)。如果主机在线,会回复 Echo Reply。

    • 问题:现代系统(如 Windows)和网络防火墙经常过滤ICMP Echo Request,导致判断失误。

  • TCP SYN/ACK 请求 (-PS/-PA)

    • 原理:

      • -PS(SYN Ping):发送 SYN 包到常见端口(默认 80)。如果在线,会回复 SYN-ACK 或 RST。

      • -PA(ACK Ping):发送 ACK 包到常见端口(默认 80)。如果在线且未被防火墙过滤,会回复 RST。

    • 优点:比 ICMP 难被防火墙阻止,因为它模拟了正常的 TCP 流量。

  • UDP 探测 (-PU)

    • 原理:发送空的 UDP 报文到常见端口。

    • 响应:如果端口关闭,目标会回复ICMP 端口不可达。如果端口开放或被过滤,通常无响应(Open|Filtered)。收到“端口不可达”则可确定主机在线。

探测类型选项工作层级典型响应主要用途
ARP-PR链路层 (L2)ARP Reply局域网内,最可靠。
ICMP Ping-PE网络层 (L3)ICMP Echo Reply局域网外,易被过滤。
ICMP Timestamp-PP网络层 (L3)Timestamp Reply用于绕过 ICMP Echo 过滤器。
TCP SYN Ping-PS传输层 (L4)SYN-ACK 或 RST探测目标是否对 TCP 端口有响应。
TCP ACK Ping-PA传输层 (L4)RST探测目标是否对 TCP ACK 有响应,善于绕过防火墙

四、核心扫描技术(Port Scanning Techniques)

扫描类型选项标志位工作原理端口状态判断
TCP Connect 扫描-sTSYNNmap 完成完整三次握手Open→ SYN-ACK→ \toACK;Closed→ RST→ \toN/A
TCP SYN 扫描-sSSYN发送 SYN,收到 SYN-ACK 后立即发送 RST 中断连接(不完成握手)。Open→ SYN-ACK→ \toRST;Closed→ RST→ \toN/A
UDP 扫描-sUN/A发送 UDP 报文。Closed→ \toICMP Port Unreachable;Open|Filtered$KaTeX parse error: Undefined control sequence: \t at position 1: \̲t̲无响应
1. 隐蔽性扫描(Evasion Scans)

这些扫描利用 TCP 协议的特殊行为来绕过一些简单的防火墙和 IDS。

  • 空扫描 (Null Scan)→ \to-sN

    • 标志位:URG=0, ACK=0, PSH=0, RST=0, SYN=0, FIN=0 \text{URG=0, ACK=0, PSH=0, RST=0, SYN=0, FIN=0}URG=0, ACK=0, PSH=0, RST=0, SYN=0, FIN=0(所有标志位为 0)。

    • 原理:发送一个不包含任何标志位的 TCP 包。

    • 判断:

      • Open:无响应(符合 RFC 793 规范)。

      • Closed:目标返回RST包。

  • FIN 扫描→ \to-sF

    • 标志位:FIN=1 \text{FIN=1}FIN=1(仅设置 FIN 标志)。

    • 原理:发送一个只设置了 FIN 标志的 TCP 包。

    • 判断:

      • Open:无响应(符合 RFC 793 规范)。

      • Closed:目标返回RST包。

  • XMAS 扫描→ \to-sX

    • 标志位:FIN=1, PSH=1, URG=1 \text{FIN=1, PSH=1, URG=1}FIN=1, PSH=1, URG=1(FIN, PSH, URG 标志全设置,像圣诞树灯饰)。

    • 原理:发送一个设置了 FIN/PSH/URG 的 TCP 包。

    • 判断:

      • Open:无响应。

      • Closed:目标返回RST包。

🔔 注意:并非所有操作系统(尤其是 Windows)都严格遵守 RFC 793,它们可能会对 Null/FIN/XMAS 扫描的开放端口返回 RST 包,导致隐蔽扫描失败。

2. 防火墙探测扫描
  • TCP ACK 扫描→ \to-sA

    • 标志位:ACK=1 \text{ACK=1}ACK=1(仅设置 ACK 标志)。

    • 原理:发送一个只设置了 ACK 标志的 TCP 包。

    • 目标响应:

      • 无防火墙:端口 Open/Closed 都会回复RST→ \toNmap 报告Unfiltered (未过滤)

      • 有状态防火墙(阻止):防火墙丢弃 ACK 包→ \to无响应→ \toNmap 报告Filtered (已过滤)

    • 用途:无法判断端口开放状态,但是判断防火墙是否存在及其状态的最有效方法

  • 窗口扫描→ \to-sW

    • 标志位:ACK=1 \text{ACK=1}ACK=1(类似 ACK 扫描)。

    • 原理:检查返回的RST包中的TCP 窗口大小字段。

    • 判断:

      • Open:RST 包中的窗口大小≠ 0 \ne 0=0(非零)。

      • Closed:RST 包中的窗口大小≈ 0 \approx 00(零或很小)。

    • 用途:在一些老旧或特定系统上,可以通过窗口大小区分 Open/Closed。不适用于有防火墙的环境。

五、高级隐蔽与逃逸技术

技术选项作用与原理补充说明
IP 地址欺骗-S <伪造 IP>伪造源 IP 地址,将响应引向其他机器。仅在您能截获响应(如位于同一子网或通过 ARP 欺骗)时有效。
诱饵扫描-D <诱饵IP1,ME,诱饵IP2,...>通过多个伪造 IP 发送扫描包,将真实 IP (ME) 混在其中。增加日志分析难度。目标日志会记录多个 IP 尝试扫描。
MAC 地址伪造--spoof-mac <MAC地址>伪造源设备的 MAC 地址。仅在局域网内有效,用于隐藏真实设备身份。
数据包分片-f--mtu <大小>将 TCP/IP 头部切分为多个小数据包。旨在绕过检查 TCP 头部完整性的简单防火墙或 IDS
空闲扫描-sI <ZOMBIE_IP>利用僵尸主机的 IP ID 增量间接扫描目标。极度隐蔽,目标日志记录的是僵尸 IP。需要找到合适的“僵尸”主机(IP ID 增量可预测)。

六、常用 Nmap 选项速查表

选项类别描述
-p-端口扫描所有 65535 个端口。
-F端口快速扫描,只扫描100 个最常用的端口
-r端口按顺序扫描端口(不随机)。
-O侦查尝试进行操作系统 (OS) 检测
-sV侦查尝试进行服务版本识别(如 Apache 2.4.49)。
-Pn发现禁用 Ping 扫描,将所有目标视为在线。用于目标过滤 ICMP 时。
-t<0-5>时序设置扫描时序模板(T0 最慢/隐蔽,T5 最快/响亮)。
--max-rate <N>时序限制发送速率(数据包/秒)。
-v/-vv输出增加冗余级别,显示更多详细信息。
--reason输出显示 Nmap 对特定状态的判断依据
-oX <file.xml>输出将结果输出为 XML 格式,方便脚本解析。

如果你想要查看更详细的命令请点击https://nmap.org/
在你的一开始练习中这篇笔记绝对够用,整理了三四天。nmap的功能非常强大,点个赞吧制作不易。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 23:31:22

软件测试面试题个人总结

前面看到了一些面试题&#xff0c;总感觉会用得到&#xff0c;但是看一遍又记不住&#xff0c;所以我把面试题都整合在一起&#xff0c;都是来自各路大佬的分享&#xff0c;为了方便以后自己需要的时候刷一刷&#xff0c;不用再到处找题&#xff0c;今天把自己整理的这些面试题…

作者头像 李华
网站建设 2026/9/21 16:14:02

OpenWrt智能路由终极指南:如何实现多线路带宽叠加

OpenWrt智能路由终极指南&#xff1a;如何实现多线路带宽叠加 【免费下载链接】OpenWrt 基于 Lean 源码编译的 OpenWrt 固件——适配X86、R2C、R2S、R4S、R4SE、R5C、R5S、香橙派 R1 Plus、树莓派3B、树莓派4B、R66S、R68S、M68S、H28K、H66K、H68K、H88K、H69K、E25、N1、S905…

作者头像 李华
网站建设 2026/9/21 15:46:30

bibliometrix:科学文献分析的终极指南与快速上手教程

想要深入了解某个研究领域的发展脉络&#xff1f;希望快速识别学术热点和合作趋势&#xff1f;bibliometrix这款强大的文献计量分析工具就是你的最佳选择&#xff01;&#x1f680; 作为一款专业的R语言工具包&#xff0c;它能够帮助你从海量科学文献中挖掘有价值的信息&#x…

作者头像 李华
网站建设 2026/9/21 20:37:12

React JSON Schema Form终极指南:3步构建专业表单应用

React JSON Schema Form终极指南&#xff1a;3步构建专业表单应用 【免费下载链接】react-jsonschema-form A React component for building Web forms from JSON Schema. 项目地址: https://gitcode.com/gh_mirrors/re/react-jsonschema-form React JSON Schema Form&a…

作者头像 李华
网站建设 2026/9/21 15:31:10

低价游陷阱专坑老年人?

「莫道桑榆晚&#xff0c;为霞尚满天」现在有越来越多退休的朋友&#xff0c;不再只是想着在家带带孙子孙女这类事情&#xff0c;而是跟老伙伴约好背上背包&#xff0c;到处去游历大江南北&#xff0c;朋友圈里那些拍摄美景时的笑容&#xff0c;就是老年人重新焕发出生机活力的…

作者头像 李华
网站建设 2026/9/21 1:52:34

Hazel引擎揭秘:如何用开源技术打造高性能2D/3D游戏开发平台

Hazel引擎揭秘&#xff1a;如何用开源技术打造高性能2D/3D游戏开发平台 【免费下载链接】Hazel Hazel Engine 项目地址: https://gitcode.com/gh_mirrors/ha/Hazel 你是否曾梦想开发属于自己的游戏&#xff0c;却被复杂的商业引擎吓退&#xff1f;&#x1f914; Hazel引…

作者头像 李华