Nmap渗透测试指南:信息收集与安全扫描全攻略(2025最新版本)
目录
Nmap 主要功能点
Nmap 支持的协议与场景应用
常见使用场景:
使用 Nmap 探测时的注意事项
实际场景案例:
Nmap 探测出来的端口状态
TCP 扫描分类与 Nmap 的关联
Nmap防火墙--IDS/IPS绕过语句
实际使用案例:
Nmap主机发现命令
实际案例:
Nmap 端口扫描的常用语句
常见的 Nmap 端口扫描命令包括:
Nmap 指纹识别版本探测与 OS 探测命令
参数介绍
Nmap 常用扫描类型及参数说明
1. 基础扫描类型
2. 主机发现类扫描
3. 快速扫描类型
4. 高级扫描类型
关键参数速查表
Nmap主要参数详解
一、主机发现核心参数
二、端口探测协议控制
三、ICMP 探测变体
四、DNS 与路由控制
总结对比表
安装教程
详细Nmap安装教程与配置指南(最新版)-CSDN博客
Nmap 主要功能点
Nmap(Network Mapper)是一个开源的网络探测和安全审计工具,具有多个强大的功能,常用于发现网络上的主机、服务、操作系统、版本信息等。主要功能包括:
- 主机发现:检测网络上是否有主机在线。
Nmap -sn 192.168.1.0/24 探测一个主机段 ip段
- 端口扫描:探测目标主机的开放端口。
- 服务版本探测:识别开放端口上的服务以及其版本。
- 操作系统检测:推测目标主机的操作系统类型。
- 脚本扫描(NSE):通过内置脚本执行更多的安全检测,如漏洞扫描、服务配置弱点等。
- 防火墙、IDS/IPS绕过:通过特殊扫描方法绕过防火墙或入侵检测/防御系统。
- 服务指纹识别:通过对开放端口的服务进行识别,推测操作系统和应用软件的版本,从而查找潜在的漏洞。
- 弱点识别:使用脚本扫描(NSE)检测已知的漏洞,如未修补的 CVE 漏洞。
- 漏洞扫描:配合其他工具或脚本,对目标进行漏洞扫描。
Nmap -Po 192.168.1.0/24 探测主机端 以及扫描出端口
Nmap 支持的协议与场景应用
Nmap 支持多种协议扫描,常见的包括:
- TCP:默认使用 TCP 扫描,适合大多数端口扫描任务。通常用于探测常见的服务端口(例如 HTTP 80、SSH 22)。
- UDP:用于扫描 UDP 服务端口(例如 DNS 53、NTP 123)。UDP 比 TCP 更容易被防火墙屏蔽,需要谨慎使用。
- ICMP:使用 ICMP 探测目标主机是否存活,常用于主机发现。
- SCTP:流控制传输协议(SCTP)扫描,适用于某些特殊应用。
有些时候ping是无法检测出对方主机是否存活的,因为对方主机可以通过防火墙禁用ping,那么你就ping不同它。
比如windows的防火墙,一旦打开就不能ping通了。
能ping通表示肯定在线,ping不通就说不准了。
telnet也可以判断某个主机的端口是否开放了
比如 telnet 192.168.2.111 22 、 telnet 192.168.2.111 445
telnet是一种应用层协议,建立在tcp\ip协议之上。
icmp协议是网络层协议。
SCTP是传输层协议,兼顾了udp和tcp的特点。
常见使用场景:
- TCP 扫描:扫描 Web 服务器的 HTTP(80)、HTTPS(443)端口。
- UDP 扫描:扫描 DNS 服务(53)、SNMP(161)端口。
- ICMP 扫描:检查网络中哪些主机在线。
使用 Nmap 探测时的注意事项
使用 Nmap 时,有几个注意点:
- 扫描时长:扫描大型网络或多个端口时,可能需要较长时间。
- 可以通过
-T
参数调整扫描速度,例如-T4
提高速度。
- 可以通过
- 防火墙和IDS/IPS规避:某些防火墙或 IDS/IPS 会检测到 Nmap 扫描,使用“慢速扫描”或“分片扫描”可以绕过防御。
- 可以使用
-sS
(SYN 扫描)或-sF
(FIN 扫描)。
- 可以使用
- 合法性:未经授权的扫描可能违反法律或组织的政策,进行渗透测试时需要获得目标系统的授权。
实际场景案例:
- 在进行渗透测试时,使用
nmap -sS 192.168.1.1
进行 SYN 扫描- 发现开放的端口
- 然后再使用
nmap -sV -p 80,443 192.168.1.1
进行服务版本探测- 进一步了解目标的 Web 服务。
Nmap 探测出来的端口状态
Nmap 探测结果中的端口状态包括:
- Open:端口开放,服务正在监听。
- Closed:端口关闭,目标主机未监听该端口。
- Filtered:端口被防火墙或路由器过滤,无法确定是否开放。
- Unfiltered:端口未被过滤,但无法确认是否开放。
- Open|Filtered:无法确定端口状态,可能由于防火墙或网络问题。
- Closed|Filtered:无法确认端口状态。
TCP 扫描分类与 Nmap 的关联
Nmap 提供多种 TCP 扫描方式,TCP就会牵扯到UDP 以及应用层的Https的关联包括:
- SYN 扫描(-sS):常见的扫描方法,通过发送 SYN 包并等待响应来检测端口状态,快速且不容易被检测。
- 全连接扫描(-sT):通过建立完整的 TCP 连接来探测端口,容易被目标主机检测到。
- FIN 扫描(-sF):发送一个 FIN 包,试图通过端口响应方式绕过防火墙。
- Xmas 扫描(-sX):发送带有 FIN、URG 和 PSH 标志的包,某些防火墙可能无法识别这种扫描。
- ACK 扫描(-sA):通过发送带有 ACK 标志的包来绕过过滤设备。
Nmap防火墙--IDS/IPS绕过语句
参数 | 描述 | 使用场景及举例 |
---|---|---|
-sS | SYN 扫描(半开放扫描),通过发送 SYN 包探测端口,而不完成完整的 TCP 三次握手。 | 场景:绕过防火墙或 IDS 系统的常规端口扫描。该方法隐蔽,不容易被检测。命令:nmap -sS 192.168.1.1 |
-sF | FIN 扫描,发送带有 FIN 标志的数据包,通常目标主机不会响应此类包,从而探测端口状态。 | 场景:绕过防火墙和 IDS/IPS 系统的常规扫描。FIN 扫描在某些防火墙下能避免被检测。命令:nmap -sF 192.168.1.1 |
-sX | Xmas 扫描,发送带有 FIN、URG 和 PSH 标志的数据包。某些防火墙无法识别此类包。 | 场景:绕过防火墙的端口检测,适用于不常见的扫描方式。命令:nmap -sX 192.168.1.1 |
-sA | ACK 扫描,发送带有 ACK 标志的数据包,用于绕过防火墙检测。ACK 扫描不能准确识别端口状态,但能绕过过滤设备。 | 场景:当防火墙基于状态跟踪规则时,使用 ACK 扫描可以绕过防火墙。命令:nmap -sA 192.168.1.1 |
-T0 | 超低速度扫描,尽可能降低扫描速率,从而减少被 IDS/IPS 系统检测的风险。 | 场景:对目标网络进行极为缓慢的扫描,适用于对抗 IDS 和 IPS。命令:nmap -T0 192.168.1.1 |
-T1 | 低速扫描,仍然较为缓慢,可以减少被 IDS/IPS 系统触发报警的可能性。 | 场景:扫描过程中避免检测到异常流量,尤其适用于具有实时监控的网络环境。命令:nmap -T1 192.168.1.1 |
--data-length | 在扫描数据包中添加额外的负载数据,使数据包的大小不同,能够绕过基于大小的检测机制。 | 场景:利用不寻常的数据包大小通过防火墙或 IDS/IPS 系统。命令:nmap --data-length 50 192.168.1.1 |
-f | 包分片扫描,将数据包分成较小的片段发送,从而避免某些防火墙和 IDS 系统进行深度包检查。 | 场景:绕过防火墙的包过滤,避免被检测为完整的 TCP/IP 包。命令:nmap -f 192.168.1.1 |
-p- | 扫描所有端口(0-65535),这可以让 Nmap 扫描网络中的所有端口,减少漏掉某些端口的风险。 | 场景:扫描所有端口时,配合其他绕过选项来增加隐蔽性。命令:nmap -p- 192.168.1.1 |
-O | 操作系统检测,通过分析目标主机的 TCP/IP 栈来推测操作系统类型。 | 场景:结合绕过扫描,推测目标操作系统并定制后续攻击步骤。命令:nmap -O 192.168.1.1 |
实际使用案例:
-
绕过 IDS/IPS,SYN 扫描:在进行渗透测试时,可以使用 SYN 扫描来绕过一些 IDS 系统的流量监控:
nmap -sS -p 80,443 192.168.1.1
该命令会扫描目标的 HTTP 和 HTTPS 端口,且不会完整建立 TCP 连接。
-
绕过防火墙,使用 ACK 扫描:为了避免被防火墙检测,可以使用 ACK 扫描探测端口状态:
nmap -sA -p 22,53 192.168.1.1
通过 ACK 扫描,能够绕过一些防火墙的端口过滤策略。
-
低速扫描,避免被 IDS 监控:如果目标网络有严格的流量监控,可以使用低速扫描来减少被检测的风险:
nmap -T1 -p 80,443 192.168.1.1
该命令会以低速进行端口扫描,从而避免触发 IDS 系统的警报。
Nmap主机发现命令
参数 | 描述 | 使用场景案例 |
---|---|---|
-sn | Ping 扫描(不进行端口扫描),仅检查目标主机是否在线。 | 场景:快速检查网络中哪些主机在线,避免进行完整的端口扫描。命令:nmap -sn 192.168.1.0/24 |
-Pn | 跳过主机发现,直接进行端口扫描。适用于网络中不响应 ICMP 请求的设备。 | 场景:目标主机可能被防火墙屏蔽了 ICMP 响应。使用此参数可跳过主机发现,直接扫描端口。命令:nmap -Pn 192.168.1.1 |
-PS | 使用 SYN 包进行 Ping 扫描(TCP ping),常用于检测是否可以与目标主机建立连接。 | 场景:检查目标主机的 TCP 服务是否开启,如端口 80 或 443。命令:nmap -PS80 192.168.1.1 |
-PA | 使用 ACK 包进行 Ping 扫描。通过发送 ACK 包探测目标是否可达,适用于绕过防火墙过滤。 | 场景:目标主机可能存在防火墙,阻止普通的 SYN 或 ICMP 响应。使用 ACK 包扫描可以绕过防火墙检测。命令:nmap -PA80 192.168.1.1 |
-PE | 使用 ICMP Echo 请求进行 Ping 扫描(常见的 Ping)。 | 场景:当网络中没有防火墙或 IDS/IPS 时,使用 ICMP Echo 请求进行简单的主机存活探测。命令:nmap -PE 192.168.1.1 |
-PP | 使用 ICMP 时间戳请求进行 Ping 扫描。 | 场景:适用于某些防火墙配置可以阻止 ICMP Echo,但允许 ICMP 时间戳请求。命令:nmap -PP 192.168.1.1 |
-PM | 使用 ICMP 设备信息请求进行主机发现。 | 场景:用于探测主机是否存在,特别是在网络中设备信息协议(例如 ARP)可用时。命令:nmap -PM 192.168.1.1 |
-PU | 使用 UDP 包进行 Ping 扫描。 | 场景:目标主机的防火墙可能允许 UDP 数据包,但阻止 ICMP 或 TCP 数据包。命令:nmap -PU53 192.168.1.1 |
实际案例:
-
场景 1:在一个网络环境中,管理员想要快速检查网络中哪些设备在线,可以使用
-sn
参数:nmap -sn 192.168.1.0/24
该命令仅进行主机发现,不扫描端口,能够快速判断网络中哪些主机响应。
-
场景 2:对于被防火墙保护的主机,可能会丢弃 ICMP 响应。管理员可以使用 SYN Ping 来检查开放的 TCP 端口,例如检测端口 80:
nmap -PS80 192.168.1.1
该命令会发送 SYN 包到端口 80,判断该端口是否响应。
-
场景 3:为了绕过防火墙的过滤,使用 ACK 包进行主机存活检测:
nmap -PA80 192.168.1.1
这会发送 ACK 包到端口 80,帮助绕过某些防火墙的防护。
Nmap 端口扫描的常用语句
常见的 Nmap 端口扫描命令包括:
- 扫描单个端口:
nmap -p 80 192.168.1.1
- 扫描多个端口:
nmap -p 80,443,22 192.168.1.1
- 扫描端口范围:
nmap -p 1-1000 192.168.1.1
- 扫描所有常见端口:
nmap -F 192.168.1.1
- 进行快速扫描:
nmap -T4 192.168.1.1
- TCP 扫描:
nmap -sS 192.168.1.1
- UDP 扫描:
nmap -sU 192.168.1.1
Nmap 指纹识别版本探测与 OS 探测命令
版本探测:
- 命令:
nmap -sV 10.10.16.8
- 作用:探测开放端口上的服务及其版本号。
操作系统探测:
- 命令:
nmap -O 192.168.1.1
- 作用:通过分析主机的 TCP/IP 栈,推测操作系统类型和版本。
综合命令:
- 命令:
nmap -sS -sV -O 10.10.16.8
- 作用:进行 TCP 扫描、服务版本探测和操作系统探测,常用于渗透测试。
使用场景:
- 版本探测:对目标 Web 服务器的 HTTP 服务进行版本探测,确认是否有已知漏洞。
- OS 探测:识别目标主机的操作系统,并根据操作系统选择合适的攻击策略。
参数介绍
参数 | 描述 | 使用场景及举例 |
---|---|---|
-sV | 服务版本探测,探测开放端口上的服务并获取其版本信息。 | 场景:识别目标主机上开放端口的服务版本,帮助分析服务是否有已知漏洞。 命令: nmap -sV 192.168.1.1 |
--version-all | 扩展版本探测,尝试通过更多方法识别服务版本。 | 场景:用于更深度的版本识别,尤其在标准版本探测失败时,使用此参数进一步尝试识别服务。 命令: nmap -sV --version-all 192.168.1.1 |
-p | 指定扫描的端口。 | 场景:仅对指定端口进行服务版本探测,节省扫描时间。 命令: nmap -sV -p 80,443 192.168.1.1 |
-A | 进行全面探测,包括操作系统检测、服务版本探测、脚本扫描等。 | 场景:在进行渗透测试时,全面扫描目标的操作系统、开放端口及其服务版本。 命令: nmap -A 192.168.1.1 |
-sT | 完全连接扫描,用于与服务版本探测结合。 | 场景:当 SYN 扫描无法获取版本信息时,可以使用全连接扫描来获取服务版本。 命令: nmap -sT -sV 192.168.1.1 |
-sU | UDP 扫描,用于探测 UDP 服务的版本。 | 场景:识别目标主机上运行的 UDP 服务及其版本。 命令: nmap -sU -p 53,161 -sV 192.168.1.1 |
--version-intensity | 设置版本探测强度,1 是最低,9 是最高。 | 场景:根据目标网络环境调整版本探测的强度,避免过于激烈的扫描导致被检测。 命令: nmap -sV --version-intensity 5 192.168.1.1 |
-O | 操作系统探测,结合服务版本识别一起使用。 | 场景:获取目标主机的操作系统信息,并与服务版本识别一起使用。 命令: nmap -sV -O 192.168.1.1 |
Nmap 常用扫描类型及参数说明
1. 基础扫描类型
扫描类型 | 命令 | 核心参数说明 | 特点 |
---|---|---|---|
Intense Scan | nmap -T4 -A -v | -T4 加速扫描 -A 综合检测(OS/版本/脚本) -v 详细输出 | 平衡速度与信息收集,适用于常规渗透测试 |
Intense Scan + UDP | nmap -sS -sU -T4 -A -v | -sS TCP SYN 隐蔽扫描 -sU UDP 端口探测 | 覆盖 TCP/UDP 端口,检测防火墙绕过能力 |
Full TCP Port Scan | nmap -p 1-65535 -T4 -A -v | -p 1-65535 全端口扫描 | 全面但耗时,用于深度资产发现 |
2. 主机发现类扫描
扫描类型 | 命令 | 核心参数说明 | 特点 |
---|---|---|---|
No-Ping Scan | nmap -T4 -A -v -Pn | -Pn 跳过主机存活检测 | 强制扫描指定 IP,规避防火墙 ICMP 封锁 |
Ping Scan | nmap -sn | -sn 仅主机发现(无端口扫描) | 快速定位存活主机,但易受防火墙干扰 |
3. 快速扫描类型
扫描类型 | 命令 | 核心参数说明 | 特点 |
---|---|---|---|
Quick Scan | nmap -T4 -F | -F 快速模式(仅扫描常用 100 端口) | 极速完成,适合初步资产盘点 |
Enhanced Quick Scan | nmap -sV -T4 -O -F --version-light | -sV 服务版本探测 -O OS 检测 --version-light 轻量级版本检测 | 在速度与信息深度间折衷,适用于红队快速情报收集 |
4. 高级扫描类型
扫描类型 | 命令 | 核心参数说明 | 特点 |
---|---|---|---|
Traceroute Scan | nmap -sn --traceroute | --traceroute 路由追踪 | 网络路径分析,辅助定位安全边界 |
Comprehensive Scan | nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53 --script all | -PE/PP/PS/PA/PU/PY 多协议主机发现 -g 53 绑定 DNS 端口 --script all 全脚本扫描 | 全面但极慢,用于高价值目标深度渗透 |
关键参数速查表
参数 | 功能描述 |
---|---|
-T4 | 优化扫描速度(共 0-5 级,T4 为常用平衡模式) |
-A | 启用高级检测(OS 识别、版本探测、脚本扫描) |
-sS | TCP SYN 隐蔽扫描(半开连接,规避日志记录) |
-sU | UDP 端口扫描(需 root 权限) |
-Pn | 禁用主机存活检测(强制扫描指定目标) |
--script | 调用 NSE 脚本引擎(例:--script vuln 检测漏洞) |
Nmap主要参数详解
一、主机发现核心参数
参数及命令示例 | 功能描述 | 典型应用场景 | 注意事项 |
---|---|---|---|
-sL nmap -sL 192.168.1.0/24 | 列表扫描:仅解析目标 IP/域名,生成扫描列表,不发送任何探测包。 | 预扫描目标清单确认 | 无实际探测行为,适合测试目标范围定义。 |
-sn nmap -sn 10.0.0.1-100 | 主机发现:发送多类型探测包(ICMP+TCP SYN/ACK+ARP),不扫描端口。 | 快速定位网络内存活主机 | 可能被防火墙拦截;探测包类型取决于目标网络配置。 |
-Pn nmap -Pn 192.168.1.5 | 跳过主机发现:假设目标存活,直接进行端口扫描。 | 目标屏蔽 ICMP 或防火墙严格过滤时使用 | 需配合端口扫描参数(如 -p )以提高效率。 |
二、端口探测协议控制
参数及命令示例 | 功能描述 | 协议细节 |
---|---|---|
-PS[portlist] nmap -PS80,443 10.0.0.1 | TCP SYN 探测:向指定端口发送 SYN 包,检测主机存活。 (默认端口:80) | 无完整 TCP 连接,隐蔽性较高。 |
-PA[portlist] nmap -PA3389 10.0.0.1 | TCP ACK 探测:发送 ACK 包,用于绕过无状态防火墙。 | 触发防火墙规则时可能误判存活。 |
-PU[portlist] nmap -PU40125 10.0.0.1 | UDP 探测:发送空 UDP 包,依赖目标返回 ICMP 不可达错误判断存活。 | 需 root 权限;响应时间较长。 |
-PY[portlist] nmap -PY12345 10.0.0.1 | SCTP INIT 探测:使用 SCTP 协议 INIT 块检测主机。 | 适用于特定网络设备(如蜂窝网络)。 |
三、ICMP 探测变体
参数及命令示例 | 功能描述 | 适用场景 |
---|---|---|
-PE nmap -PE 10.0.0.1 | ICMP Echo 请求:传统 Ping 探测,依赖目标响应 ICMP Echo Reply。 | 允许 ICMP 的内网环境。 |
-PP nmap -PP 10.0.0.1 | ICMP Timestamp 请求:通过时间戳请求探测存活。 | 规避简单 ICMP Echo 过滤。 |
-PM nmap -PM 10.0.0.1 | ICMP Netmask 请求:查询目标子网掩码信息。 | 老旧设备兼容性探测。 |
四、DNS 与路由控制
参数及命令示例 | 功能描述 | 技术细节 |
---|---|---|
-n nmap -n 10.0.0.1 | 禁用 DNS 解析:仅使用 IP 地址,加速扫描。 | 避免因 DNS 延迟影响扫描效率。 |
-R nmap -R 10.0.0.1 | 强制反向 DNS 解析:为所有 IP 执行 PTR 记录查询。 | 用于获取目标域名信息。 |
--dns-servers nmap --dns-servers 8.8.8.8 10.0.0.1 | 指定 DNS 服务器:覆盖系统默认 DNS 设置。 | 规避污染或访问内网专用 DNS。 |
--system-dns nmap --system-dns 10.0.0.1 | 使用系统 DNS:绕过 Nmap 内置解析器,依赖操作系统配置。 | 解决自定义 DNS 兼容性问题。 |
--traceroute nmap --traceroute 10.0.0.1 | 路由追踪:扫描后附加路径跳数分析。 | 需先通过主机发现或 -Pn 跳过探测。 |
实际案例参数:
案例1
nmap -sC -sV -A -v -p- 10.10.16.7
选项解释:
-
-sC
:启用 Nmap 的默认脚本扫描(Script Scan)。这个选项会执行一组默认的 NSE(Nmap Scripting Engine)脚本,通常包括对服务、版本、漏洞和安全配置的检查。例如,检查是否存在常见的漏洞或不安全的服务配置。 -
-sV
:启用服务版本检测。此选项会让 Nmap 尝试检测开放端口上的服务及其版本。通过这个选项,Nmap 能够返回目标主机上开放端口对应的应用程序和版本号(例如 Apache、nginx、SSH 等),帮助了解服务的具体类型和潜在的漏洞。 -
-A
:启用高级扫描功能,包括以下几个方面:- 操作系统检测(OS detection):尝试识别目标主机的操作系统及其版本。
- 版本检测(Version detection):与
-sV
相同,尝试检测服务版本。 - 脚本扫描(Script scanning):与
-sC
相同,运行 NSE 脚本。 - traceroute:追踪到目标主机的路径,可以显示中间的路由器和网络跳点。
总的来说,
-A
是一个包含多个高级扫描选项的开关,能够获取更多关于目标的信息。 -
-v
:启用详细输出模式。这个选项会使 Nmap 显示更多的扫描细节,例如端口状态、服务信息、运行的脚本结果等。 -
-p-
:扫描所有端口。-p
后接端口范围,-p-
表示扫描 1 到 65535 之间的所有端口。这有助于发现目标主机上可能开放的所有端口,而不仅仅是默认端口(如 80、443、22 等)。 -
10.10.16.7
:这是扫描的目标主机 IP 地址。在这个例子中,Nmap 会对10.10.16.7
这个主机进行全面扫描。
总结对比表
需求场景 | 推荐参数组合 | 优势 |
---|---|---|
快速内网存活检测 | nmap -sn -PE 192.168.1.0/24 | 低延迟,兼容性强 |
防火墙绕过探测 | nmap -Pn -PS443,8080 -PA3389 10.0.0.1 | 多协议组合规避过滤 |
深度隐蔽扫描 | nmap -sS -T2 -D RND:5 --max-parallelism 1 | 降低流量特征,规避 IDS 检测 |
喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!