当前位置: 首页 > article >正文

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绕过语句

参数描述使用场景及举例
-sSSYN 扫描(半开放扫描),通过发送 SYN 包探测端口,而不完成完整的 TCP 三次握手。场景:绕过防火墙或 IDS 系统的常规端口扫描。该方法隐蔽,不容易被检测。命令nmap -sS 192.168.1.1
-sFFIN 扫描,发送带有 FIN 标志的数据包,通常目标主机不会响应此类包,从而探测端口状态。场景:绕过防火墙和 IDS/IPS 系统的常规扫描。FIN 扫描在某些防火墙下能避免被检测。命令nmap -sF 192.168.1.1
-sXXmas 扫描,发送带有 FIN、URG 和 PSH 标志的数据包。某些防火墙无法识别此类包。场景:绕过防火墙的端口检测,适用于不常见的扫描方式。命令nmap -sX 192.168.1.1
-sAACK 扫描,发送带有 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

实际使用案例:

  1. 绕过 IDS/IPS,SYN 扫描:在进行渗透测试时,可以使用 SYN 扫描来绕过一些 IDS 系统的流量监控:

    nmap -sS -p 80,443 192.168.1.1
    

    该命令会扫描目标的 HTTP 和 HTTPS 端口,且不会完整建立 TCP 连接。

  2. 绕过防火墙,使用 ACK 扫描:为了避免被防火墙检测,可以使用 ACK 扫描探测端口状态:

    nmap -sA -p 22,53 192.168.1.1
    

    通过 ACK 扫描,能够绕过一些防火墙的端口过滤策略。

  3. 低速扫描,避免被 IDS 监控:如果目标网络有严格的流量监控,可以使用低速扫描来减少被检测的风险:

    nmap -T1 -p 80,443 192.168.1.1
    

    该命令会以低速进行端口扫描,从而避免触发 IDS 系统的警报。


Nmap主机发现命令

参数描述使用场景案例
-snPing 扫描(不进行端口扫描),仅检查目标主机是否在线。场景:快速检查网络中哪些主机在线,避免进行完整的端口扫描。命令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. 场景 1:在一个网络环境中,管理员想要快速检查网络中哪些设备在线,可以使用 -sn 参数:

    nmap -sn 192.168.1.0/24
    

    该命令仅进行主机发现,不扫描端口,能够快速判断网络中哪些主机响应。

  2. 场景 2:对于被防火墙保护的主机,可能会丢弃 ICMP 响应。管理员可以使用 SYN Ping 来检查开放的 TCP 端口,例如检测端口 80:

    nmap -PS80 192.168.1.1
    

    该命令会发送 SYN 包到端口 80,判断该端口是否响应。

  3. 场景 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 扫描、服务版本探测和操作系统探测,常用于渗透测试。

使用场景:

  1. 版本探测:对目标 Web 服务器的 HTTP 服务进行版本探测,确认是否有已知漏洞。
  2. 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
-sUUDP 扫描,用于探测 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 Scannmap -T4 -A -v-T4 加速扫描 -A 综合检测(OS/版本/脚本) -v 详细输出平衡速度与信息收集,适用于常规渗透测试
Intense Scan + UDPnmap -sS -sU -T4 -A -v-sS TCP SYN 隐蔽扫描 -sU UDP 端口探测覆盖 TCP/UDP 端口,检测防火墙绕过能力
Full TCP Port Scannmap -p 1-65535 -T4 -A -v-p 1-65535 全端口扫描全面但耗时,用于深度资产发现

2. 主机发现类扫描

扫描类型命令核心参数说明特点
No-Ping Scannmap -T4 -A -v -Pn-Pn 跳过主机存活检测强制扫描指定 IP,规避防火墙 ICMP 封锁
Ping Scannmap -sn-sn 仅主机发现(无端口扫描)快速定位存活主机,但易受防火墙干扰

3. 快速扫描类型

扫描类型命令核心参数说明特点
Quick Scannmap -T4 -F-F 快速模式(仅扫描常用 100 端口)极速完成,适合初步资产盘点
Enhanced Quick Scannmap -sV -T4 -O -F --version-light-sV 服务版本探测 -O OS 检测 --version-light 轻量级版本检测在速度与信息深度间折衷,适用于红队快速情报收集

4. 高级扫描类型

扫描类型命令核心参数说明特点
Traceroute Scannmap -sn --traceroute--traceroute 路由追踪网络路径分析,辅助定位安全边界
Comprehensive Scannmap -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 识别、版本探测、脚本扫描)
-sSTCP SYN 隐蔽扫描(半开连接,规避日志记录)
-sUUDP 端口扫描(需 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.1TCP SYN 探测:向指定端口发送 SYN 包,检测主机存活。 (默认端口:80)无完整 TCP 连接,隐蔽性较高。
-PA[portlist] nmap -PA3389 10.0.0.1TCP ACK 探测:发送 ACK 包,用于绕过无状态防火墙。触发防火墙规则时可能误判存活。
-PU[portlist] nmap -PU40125 10.0.0.1UDP 探测:发送空 UDP 包,依赖目标返回 ICMP 不可达错误判断存活。需 root 权限;响应时间较长。
-PY[portlist] nmap -PY12345 10.0.0.1SCTP INIT 探测:使用 SCTP 协议 INIT 块检测主机。适用于特定网络设备(如蜂窝网络)。

三、ICMP 探测变体
参数及命令示例功能描述适用场景
-PE nmap -PE 10.0.0.1ICMP Echo 请求:传统 Ping 探测,依赖目标响应 ICMP Echo Reply。允许 ICMP 的内网环境。
-PP nmap -PP 10.0.0.1ICMP Timestamp 请求:通过时间戳请求探测存活。规避简单 ICMP Echo 过滤。
-PM nmap -PM 10.0.0.1ICMP 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 检测


喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!


http://www.kler.cn/a/559955.html

相关文章:

  • 独立开发者Product Hunt打榜教程
  • WPF布局控件
  • 【C++】 stack和queue以及模拟实现
  • deepseek 导出导入模型(docker)
  • 计算机毕业设计SpringBoot+Vue.js医院管理系统(源码+文档+PPT+讲解)
  • Git与GitHub:深入理解与高效使用
  • 企业终端遭遇勒索病毒威胁?火绒企业版V2.0--企业用户勒索攻击防护建议!
  • wpf 页面切换的实现方式
  • HarmonyOS Next 计时器组件详解
  • 微信小程序 - 条件渲染(wx:if、hidden)与列表渲染(wx:for)
  • 跨境宠物摄像头是一种专为宠物主人设计的智能设备
  • Python的那些事第三十一篇:快速数据帧处理与可视化的高效工具Vaex
  • AWS Bedrock平台引入DeepSeek-R1 模型,推动深度学习
  • 量子计算的数学基础:复数、矩阵和线性代数
  • CSS `transform` 属性详解:打造视觉效果与动画的利器
  • 04 burpsuite的使用
  • AWS-SAA中文版题库
  • 服务端获取远程ip的方法
  • 将DeepSeek接入vscode的N种方法
  • OO设计原则的cpp举例