用途限制声明,本文仅用于网络安全技术研究、教育与知识分享。文中涉及的渗透测试方法与工具,严禁用于未经授权的网络攻击、数据窃取或任何违法活动。任何因不当使用本文内容导致的法律后果,作者及发布平台不承担任何责任。渗透测试涉及复杂技术操作,可能对目标系统造成数据损坏、服务中断等风险。读者需充分评估技术能力与潜在后果,在合法合规前提下谨慎实践。
这款工具相信大家都很熟悉,这里不再介绍,这里主要介绍其常见的语法,因为作者经常会忘记其语法,导致需要经常去查,所以这里我就总结一些常见的语法。
一、Nmap 核心语法结构
Nmap 基础命令格式高度统一,所有功能均通过「基础参数 + 功能参数 + 目标」组合实现,核心结构如下:
nmap [扫描类型] [选项] [目标地址/范围]
目标地址:支持单 IP(如 192.168.1.1)、IP 段(如 192.168.1.0/24)、域名(如 baidu.com)、目标列表文件(如 -iL target.txt)。
二、四大核心功能与全用法
1. 主机发现(Host Discovery)
不进行端口扫描,仅探测目标是否在线,常用于网络存活主机排查。
| 命令 | 功能说明 | 适用场景 |
| nmap -sn 192.168.1.0/24 | 「Ping 扫描」:发送 ICMP 回声请求 + TCP SYN(443 端口)+TCP ACK(80 端口),默认不扫描端口 | 常规局域网存活主机探测 |
| nmap -sP 192.168.1.1 | 旧版「Ping 扫描」,功能与 -sn 一致(兼容旧版本 Nmap) | 低版本 Nmap 环境 |
| nmap -Pn 192.168.1.100 | 「无 Ping 扫描」:跳过主机存活检测,直接扫描端口 | 目标屏蔽 ICMP(如禁 Ping)时 |
| nmap -PS80,443 192.168.1.1 | 「TCP SYN Ping」:仅向目标 80/443 端口发送 SYN 包探测存活 | 需隐蔽探测(避免 ICMP 被拦截) |
| nmap -PU53 192.168.1.0/24 | 「UDP Ping」:向目标 53(DNS)端口发送 UDP 包探测 | 检测 UDP 服务主机(如 DNS 服务器) |
2. 端口扫描(Port Scanning)
Nmap 核心功能,通过不同 TCP/UDP 协议包探测端口开放状态,需结合「端口范围」(默认扫描 1000 个常用端口,-p 指定自定义范围)使用。
(1)TCP 端口扫描(最常用)
| 命令 | 扫描类型 | 原理 | 优点 | 适用场景 |
| nmap -sT 192.168.1.1 -p 1-1000 | TCP 全连接扫描 | 完成 TCP 三次握手(SYN→SYN-ACK→ACK) | 结果准确,无权限要求 | 常规端口探测(不隐蔽) |
| nmap -sS 192.168.1.1 -p 80,443 | TCP SYN 半连接扫描(「隐身扫描」) | 发送 SYN 包,收到 SYN-ACK 则认为端口开放(不发 ACK 完成握手) | 隐蔽性高,速度快 | 需规避防火墙日志(渗透测试常用) |
| nmap -sA 192.168.1.1 -p 22 | TCP ACK 扫描 | 发送 ACK 包,通过 RST 包判断端口是否被防火墙过滤 | 检测防火墙规则(开放 / 过滤) | 排查目标端口是否被防火墙屏蔽 |
| nmap -sF 192.168.1.1 -p 1-500 | TCP FIN 扫描 | 发送 FIN 包(正常连接关闭包),无响应则认为端口开放 | 绕过部分简单防火墙 | 对 Windows 目标无效(Windows 会回复 RST) |
(2)UDP 端口扫描
UDP 扫描速度慢(无确认机制),需指定 -sU,常用于探测 DNS(53)、SNMP(161)等 UDP 服务:
nmap -sU 192.168.1.1 -p 53,161
技巧:结合 TCP 扫描提升效率,如 nmap -sS -sU 192.168.1.1 -p 53(同时扫 TCP+UDP 53 端口)。
(3)端口扫描技巧
扫描所有端口:nmap -p- 192.168.1.1(-p- 代表 1-65535 全端口,耗时较长)
扫描常用端口:nmap -F 192.168.1.1(-F 快速扫描,仅扫 100 个高频端口)
扫描指定端口:nmap -p 80,443,22 192.168.1.1(多端口用逗号分隔)
3. 服务与版本识别(Service & Version Detection)
通过端口响应包的「指纹信息」识别服务类型与版本(如 nginx 1.20.1、OpenSSH 8.2p1),核心参数 -sV。
| 命令 | 功能说明 | 备注 |
| nmap -sV 192.168.1.1 | 基础版本探测:默认强度(--version-intensity 3) | 平衡速度与准确率 |
| nmap -sV --version-intensity 9 192.168.1.1 | 高强度版本探测:发送更多探测包,准确率最高 | 对复杂服务(如自定义协议)有效 |
| nmap -sV --version-light 192.168.1.1 | 轻量版本探测:仅发送少量包,速度快 | 大规模网段快速排查 |
| nmap -sV -p 80 192.168.1.1 --script http-title | 结合脚本:识别 80 端口 HTTP 服务的网页标题 | 进一步确认服务用途(如是否为网站) |
4. 操作系统探测(OS Detection)
通过 TCP/IP 栈指纹(如 TTL 值、窗口大小)判断目标操作系统(如 Windows 10、Linux 5.4.x),核心参数 -O(大写字母 O)。
| 命令 | 功能说明 | 适用场景 |
| nmap -O 192.168.1.1 | 基础 OS 探测:输出 OS 类型、版本范围、设备类型 | 常规系统识别 |
| nmap -O --osscan-limit 192.168.1.0/24 | 限制 OS 探测:仅对「确定存活 + 开放至少 1 个端口」的主机探测 | 减少无效扫描(提升速度) |
| nmap -O --osscan-guess 192.168.1.1 | 模糊 OS 猜测:对指纹不明确的目标,输出可能的 OS 列表 | 目标系统较特殊(如嵌入式系统) |
三、高级功能:NSE 脚本扫描
Nmap 脚本引擎(NSE)是其强大扩展能力的核心,内置 600+ 脚本(按功能分类:auth 认证、vuln 漏洞、http Web 服务等),通过 -script 调用。
常用 NSE 脚本命令
| 命令 | 功能 | 适用场景 |
| nmap -p 22 --script ssh-brute 192.168.1.1 | SSH 暴力破解:尝试默认账号密码(需配合字典,如 --script-args ssh-brute.userdb=users.txt) | 弱口令检测 |
| nmap -p 80 --script http-vuln-cve2017-5638 192.168.1.1 | 检测 Struts2 S2-045 漏洞(CVE-2017-5638) | Web 框架漏洞排查 |
| nmap --script vuln 192.168.1.1 | 运行所有「漏洞类」脚本:检测 SQL 注入、XSS、弱口令等 | 目标快速漏洞扫描 |
| nmap -p 443 --script ssl-cert 192.168.1.1 | 提取 HTTPS 证书信息:包括有效期、颁发机构、Common Name | SSL 证书合规检查 |
| nmap -p 53 --script dns-brute 192.168.1.1 | DNS 子域名爆破:尝试猜测目标子域名(如 www、mail) | 子域名枚举 |
四、实用优化参数(提升效率 / 隐蔽性)
| 参数 | 功能 | 示例 |
| -T<0-5> | 扫描速度等级(0 最慢 / 最隐蔽,5 最快 / 易被拦截) | nmap -T4 192.168.1.0/24(平衡速度与隐蔽) |
| -oN <文件> | 输出结果到文本文件(便于后续分析) | nmap -sS 192.168.1.1 -oN scan.txt |
| -oX <文件> | 输出 XML 格式结果(可导入 Metasploit 等工具) | nmap -O 192.168.1.1 -oX scan.xml |
| -iL <文件> | 从文件读取目标列表(每行一个目标) | nmap -sn -iL targets.txt |
| -D <假 IP> | 欺骗扫描(用假 IP 混淆目标,提升隐蔽性) | nmap -sS -D 192.168.1.10,192.168.1.11 192.168.1.20 |
| --open | 仅显示「开放端口」的主机 / 结果 | nmap -sT 192.168.1.0/24 --open(过滤无效结果) |
五、常见场景组合命令
全端口深度扫描(渗透测试初始探测):
nmap -sS -sV -O -p- 192.168.1.1 -T4 -oN full_scan.txt
(半连接扫描 + 版本识别 + OS 探测 + 全端口 + 中等速度 + 结果保存)
局域网存活主机与常用端口扫描:
nmap -sn -sV 192.168.1.0/24 -p 22,80,443 --open
(存活探测 + 常用端口 + 仅显示开放结果)
Web 服务漏洞快速排查:
nmap -p 80,443 --script http-vuln-cve2021-41773,http-title 192.168.1.1
(检测 Apache 2.4.49 路径穿越漏洞 + 提取网页标题)
最后我也会上传其总结,需要的可自行下载【免费】网络安全基于Nmap的端口扫描与服务识别技术:主机发现及漏洞检测工具应用解析资源-优快云下载

1150

被折叠的 条评论
为什么被折叠?



