Nmap 使用手册¶
简介¶
Nmap (Network Mapper) 是一个开源的网络探测和安全审计工具。它被设计用于快速扫描大型网络,也可以用于单个主机。Nmap使用原始IP数据包来确定网络上可用的主机、这些主机提供的服务、运行的操作系统、使用的防火墙类型等信息。
主要功能¶
🔍 主机发现 (Host Discovery)
🚪 端口扫描 (Port Scanning)
🔬 服务版本检测 (Version Detection)
💻 操作系统检测 (OS Detection)
🔥 防火墙/IDS规避 (Firewall Evasion)
📝 脚本引擎 (NSE - Nmap Scripting Engine)
安装¶
macOS¶
# Homebrew安装
brew install nmap
# 验证安装
nmap --version
Linux (Debian/Ubuntu)¶
sudo apt update
sudo apt install nmap
# 验证安装
nmap --version
Linux (RHEL/CentOS/Fedora)¶
sudo yum install nmap
# 或
sudo dnf install nmap
Windows¶
从官网下载安装包: https://nmap.org/download.html
基本用法¶
基本语法¶
nmap [扫描类型] [选项] {目标}
目标指定方式¶
# 单个IP
nmap 192.168.1.1
# 主机名
nmap scanme.nmap.org
# 多个目标
nmap 192.168.1.1 192.168.1.2 192.168.1.3
# IP范围
nmap 192.168.1.1-254
nmap 192.168.1.0/24
# CIDR表示法
nmap 192.168.1.0/24
# 从文件读取目标
nmap -iL targets.txt
# 随机选择目标
nmap -iR 100 # 随机扫描100个主机
# 排除目标
nmap 192.168.1.0/24 --exclude 192.168.1.1
nmap 192.168.1.0/24 --excludefile exclude.txt
主机发现¶
主机发现用于确定网络中哪些主机是活动的。
主机发现选项¶
选项 |
说明 |
|---|---|
|
列表扫描,仅列出目标 |
|
Ping扫描,禁用端口扫描 |
|
跳过主机发现,假定所有主机在线 |
|
TCP SYN Ping |
|
TCP ACK Ping |
|
UDP Ping |
|
ICMP Ping (Echo/Timestamp/Netmask) |
|
ARP Ping (局域网) |
|
不进行DNS解析 |
|
始终进行DNS解析 |
|
指定DNS服务器 |
|
使用系统DNS解析器 |
主机发现示例¶
# 列表扫描(仅列出目标,不扫描)
nmap -sL 192.168.1.0/24
# Ping扫描(仅发现主机,不扫描端口)
nmap -sn 192.168.1.0/24
# 跳过主机发现(假定所有主机在线)
nmap -Pn 192.168.1.1
# TCP SYN Ping(向80端口发送SYN包)
nmap -PS80 192.168.1.1
# TCP ACK Ping(向443端口发送ACK包)
nmap -PA443 192.168.1.1
# UDP Ping
nmap -PU53 192.168.1.1
# ICMP Echo Ping
nmap -PE 192.168.1.1
# ARP Ping(局域网最有效)
nmap -PR 192.168.1.0/24
# 不进行DNS解析(加快扫描速度)
nmap -n 192.168.1.1
# 组合使用
nmap -sn -PS22,80,443 -PA80,443 192.168.1.0/24
端口扫描技术¶
端口扫描类型¶
选项 |
扫描类型 |
说明 |
|---|---|---|
|
TCP SYN扫描 |
半开放扫描,默认扫描方式,需要root权限 |
|
TCP Connect扫描 |
完整TCP连接,不需要特权 |
|
UDP扫描 |
UDP端口扫描,速度较慢 |
|
TCP ACK扫描 |
用于检测防火墙规则 |
|
TCP窗口扫描 |
类似ACK扫描,可区分开放/关闭端口 |
|
TCP Maimon扫描 |
发送FIN/ACK包 |
|
TCP NULL/FIN/Xmas扫描 |
隐蔽扫描技术 |
|
空闲扫描 |
极其隐蔽的扫描 |
|
SCTP INIT扫描 |
SCTP协议扫描 |
|
SCTP COOKIE-ECHO扫描 |
SCTP协议扫描 |
|
IP协议扫描 |
确定支持的IP协议 |
|
FTP反弹扫描 |
通过FTP服务器扫描 |
端口扫描示例¶
# TCP SYN扫描(默认,隐蔽且快速)
sudo nmap -sS 192.168.1.1
# TCP Connect扫描(无需root)
nmap -sT 192.168.1.1
# UDP扫描(查找DNS、SNMP等服务)
sudo nmap -sU 192.168.1.1
# 同时扫描TCP和UDP
sudo nmap -sS -sU 192.168.1.1
# TCP ACK扫描(探测防火墙规则)
sudo nmap -sA 192.168.1.1
# TCP NULL扫描(隐蔽扫描)
sudo nmap -sN 192.168.1.1
# TCP FIN扫描
sudo nmap -sF 192.168.1.1
# TCP Xmas扫描
sudo nmap -sX 192.168.1.1
# 空闲扫描(使用僵尸主机)
sudo nmap -sI zombie_host target_host
# IP协议扫描
sudo nmap -sO 192.168.1.1
端口指定¶
# 扫描特定端口
nmap -p 22 192.168.1.1
nmap -p 22,80,443 192.168.1.1
# 端口范围
nmap -p 1-100 192.168.1.1
nmap -p 1-65535 192.168.1.1
# 常用端口(默认扫描1000个常用端口)
nmap 192.168.1.1
# 快速扫描(100个最常用端口)
nmap -F 192.168.1.1
# 扫描所有65535个端口
nmap -p- 192.168.1.1
nmap -p 1-65535 192.168.1.1
# 按服务名指定端口
nmap -p http,https,ssh 192.168.1.1
# 按协议指定端口
nmap -p U:53,T:80,443 192.168.1.1 # U=UDP, T=TCP
# 扫描前N个常用端口
nmap --top-ports 10 192.168.1.1
nmap --top-ports 100 192.168.1.1
# 按端口使用频率扫描
nmap --port-ratio 0.1 192.168.1.1 # 扫描出现频率>10%的端口
服务和版本检测¶
版本检测选项¶
选项 |
说明 |
|---|---|
|
探测开放端口的服务版本 |
|
设置版本检测强度(默认7) |
|
轻量级版本检测(强度2) |
|
尝试所有探测(强度9) |
|
显示版本检测详细信息 |
服务检测示例¶
# 基本版本检测
nmap -sV 192.168.1.1
# 轻量级版本检测(更快但可能不准确)
nmap -sV --version-light 192.168.1.1
# 高强度版本检测(更准确但更慢)
nmap -sV --version-all 192.168.1.1
# 指定检测强度(0-9)
nmap -sV --version-intensity 5 192.168.1.1
# 显示版本检测详细过程
nmap -sV --version-trace 192.168.1.1
# 组合使用
nmap -sS -sV -p- 192.168.1.1
操作系统检测¶
OS检测选项¶
选项 |
说明 |
|---|---|
|
启用OS检测 |
|
限制OS检测只针对有希望的主机 |
|
猜测OS检测结果 |
|
模糊OS检测 |
OS检测示例¶
# 基本OS检测
sudo nmap -O 192.168.1.1
# OS检测+版本检测
sudo nmap -O -sV 192.168.1.1
# 激进的OS检测和猜测
sudo nmap -O --osscan-guess 192.168.1.1
# 限制OS检测范围(提高准确性)
sudo nmap -O --osscan-limit 192.168.1.1
# 完整的信息收集扫描
sudo nmap -A 192.168.1.1 # 包含OS、版本、脚本、路由追踪
NSE脚本引擎¶
Nmap脚本引擎(NSE)允许用户编写和共享简单的脚本来自动化各种网络任务。
脚本类别¶
类别 |
说明 |
|---|---|
|
认证相关脚本 |
|
网络广播发现 |
|
暴力破解 |
|
默认脚本(-sC使用) |
|
网络发现 |
|
拒绝服务测试 |
|
漏洞利用 |
|
使用外部资源 |
|
模糊测试 |
|
可能影响目标的脚本 |
|
恶意软件检测 |
|
安全的脚本 |
|
版本检测增强 |
|
漏洞检测 |
NSE脚本选项¶
选项 |
说明 |
|---|---|
|
使用默认脚本集 |
|
运行指定脚本 |
|
传递脚本参数 |
|
从文件读取脚本参数 |
|
显示脚本执行详情 |
|
更新脚本数据库 |
|
显示脚本帮助 |
NSE脚本示例¶
# 使用默认脚本
nmap -sC 192.168.1.1
# 使用特定脚本
nmap --script=http-title 192.168.1.1
# 使用多个脚本
nmap --script=http-title,http-headers 192.168.1.1
# 使用脚本类别
nmap --script=vuln 192.168.1.1
nmap --script=default,safe 192.168.1.1
# 使用通配符
nmap --script="http-*" 192.168.1.1
nmap --script="ssh-*" 192.168.1.1
# 排除特定脚本
nmap --script="default and not http-slowloris" 192.168.1.1
# 传递脚本参数
nmap --script=http-put --script-args http-put.url='/uploads/test.txt',http-put.file='test.txt' 192.168.1.1
# 显示脚本帮助
nmap --script-help=http-title
# 更新脚本数据库
nmap --script-updatedb
# 脚本调试
nmap --script=http-title --script-trace 192.168.1.1
常用NSE脚本¶
漏洞扫描¶
# 通用漏洞扫描
nmap --script=vuln 192.168.1.1
# SMB漏洞(如永恒之蓝)
nmap --script=smb-vuln-* 192.168.1.1
# HTTP漏洞
nmap --script=http-vuln-* 192.168.1.1
# SSL/TLS漏洞
nmap --script=ssl-heartbleed,ssl-poodle 192.168.1.1
暴力破解¶
# HTTP基本认证暴力破解
nmap --script=http-brute --script-args userdb=users.txt,passdb=pass.txt 192.168.1.1
# SSH暴力破解
nmap -p 22 --script=ssh-brute --script-args userdb=users.txt 192.168.1.1
# FTP暴力破解
nmap -p 21 --script=ftp-brute 192.168.1.1
# MySQL暴力破解
nmap -p 3306 --script=mysql-brute 192.168.1.1
信息收集¶
# HTTP信息收集
nmap --script=http-title,http-headers,http-methods 192.168.1.1
# SMB信息收集
nmap --script=smb-os-discovery,smb-enum-shares 192.168.1.1
# DNS信息收集
nmap --script=dns-brute domain.com
# WHOIS查询
nmap --script=whois-domain,whois-ip 192.168.1.1
# 地理位置
nmap --script=ip-geolocation-* 192.168.1.1
Web应用扫描¶
# 检测WAF
nmap --script=http-waf-detect 192.168.1.1
# 目录枚举
nmap --script=http-enum 192.168.1.1
# 备份文件检测
nmap --script=http-backup-finder 192.168.1.1
# SQL注入检测
nmap --script=http-sql-injection 192.168.1.1
# XSS检测
nmap --script=http-unsafe-output-escaping 192.168.1.1
# 检测HTTP方法
nmap --script=http-methods 192.168.1.1
数据库扫描¶
# MySQL枚举
nmap -p 3306 --script=mysql-enum 192.168.1.1
# MySQL数据库列表
nmap -p 3306 --script=mysql-databases --script-args mysqluser=root,mysqlpass=pass 192.168.1.1
# MongoDB信息
nmap -p 27017 --script=mongodb-info 192.168.1.1
# PostgreSQL信息
nmap -p 5432 --script=pgsql-brute 192.168.1.1
邮件服务¶
# SMTP枚举用户
nmap -p 25 --script=smtp-enum-users 192.168.1.1
# SMTP命令
nmap -p 25 --script=smtp-commands 192.168.1.1
# 开放中继检测
nmap -p 25 --script=smtp-open-relay 192.168.1.1
时序和性能¶
时序模板¶
选项 |
模板 |
说明 |
|---|---|---|
|
Paranoid |
极慢,用于IDS规避 |
|
Sneaky |
慢,用于IDS规避 |
|
Polite |
降低扫描速度,减少带宽和目标资源占用 |
|
Normal |
默认速度 |
|
Aggressive |
快速扫描,假定处于快速可靠的网络 |
|
Insane |
非常快,可能丢失信息 |
性能选项¶
选项 |
说明 |
|---|---|
|
并行扫描主机组的最小大小 |
|
并行扫描主机组的最大大小 |
|
最小并行探测数 |
|
最大并行探测数 |
|
最小RTT超时 |
|
最大RTT超时 |
|
初始RTT超时 |
|
最大重试次数 |
|
主机超时 |
|
探测间延迟 |
|
最大探测间延迟 |
|
最小发包速率 |
|
最大发包速率 |
性能示例¶
# 快速扫描
nmap -T4 192.168.1.1
# 慢速隐蔽扫描
nmap -T0 192.168.1.1
# 自定义性能参数
nmap --min-rate=1000 --max-rate=5000 192.168.1.1
# 设置超时
nmap --host-timeout 30m 192.168.1.0/24
# 控制并行度
nmap --max-parallelism 100 192.168.1.0/24
# 添加延迟(避免触发IDS)
nmap --scan-delay 1s 192.168.1.1
防火墙/IDS规避¶
规避技术¶
选项 |
说明 |
|---|---|
|
分片数据包 |
|
使用指定MTU |
|
使用诱饵扫描 |
|
源地址欺骗 |
|
使用指定网络接口 |
|
使用指定源端口 |
|
添加自定义有效载荷 |
|
添加自定义ASCII字符串 |
|
添加随机数据 |
|
使用IP选项 |
|
设置IP TTL |
|
MAC地址欺骗 |
|
使用错误的TCP/UDP校验和 |
规避示例¶
# 分片数据包
sudo nmap -f 192.168.1.1
# 指定MTU
sudo nmap --mtu 24 192.168.1.1
# 诱饵扫描(隐藏真实IP)
sudo nmap -D RND:10 192.168.1.1
sudo nmap -D decoy1,decoy2,ME,decoy3 192.168.1.1
# 源地址欺骗
sudo nmap -S 192.168.1.100 -e eth0 -Pn 192.168.1.1
# 指定源端口(如53 DNS端口可能不被过滤)
sudo nmap --source-port 53 192.168.1.1
sudo nmap -g 53 192.168.1.1
# 添加随机数据
nmap --data-length 25 192.168.1.1
# MAC地址欺骗
sudo nmap --spoof-mac 0 192.168.1.1 # 随机MAC
sudo nmap --spoof-mac Apple 192.168.1.1 # Apple厂商
sudo nmap --spoof-mac 00:11:22:33:44:55 192.168.1.1 # 指定MAC
# 组合规避技术
sudo nmap -f -T2 -D RND:10 --source-port 53 --data-length 20 192.168.1.1
输出选项¶
输出格式¶
选项 |
格式 |
说明 |
|---|---|---|
|
Normal |
标准输出 |
|
XML |
XML格式 |
|
Script Kiddie |
脚本小子格式 |
|
Grepable |
易于grep的格式 |
|
All |
同时输出以上所有格式 |
输出选项¶
选项 |
说明 |
|---|---|
|
增加详细级别 |
|
更详细 |
|
调试输出 |
|
更详细的调试 |
|
显示端口状态原因 |
|
只显示开放端口 |
|
显示所有发送和接收的数据包 |
|
显示接口和路由 |
|
追加到输出文件 |
|
恢复中断的扫描 |
|
设置XSL样式表 |
|
使用Nmap.org的样式表 |
|
不使用XSL样式表 |
输出示例¶
# 标准输出到文件
nmap -oN scan_result.txt 192.168.1.1
# XML输出
nmap -oX scan_result.xml 192.168.1.1
# Grepable输出
nmap -oG scan_result.gnmap 192.168.1.1
# 所有格式输出
nmap -oA scan_result 192.168.1.1
# 详细输出
nmap -v 192.168.1.1
nmap -vv 192.168.1.1
# 只显示开放端口
nmap --open 192.168.1.1
# 显示端口状态原因
nmap --reason 192.168.1.1
# 数据包追踪
nmap --packet-trace 192.168.1.1
# 调试输出
nmap -d 192.168.1.1
# 恢复中断的扫描
nmap --resume scan_result.xml
# 追加输出
nmap --append-output -oN scan.txt 192.168.1.1
实战案例¶
1. 快速网络扫描¶
# 发现局域网活动主机
nmap -sn 192.168.1.0/24
# 快速扫描常用端口
nmap -F 192.168.1.1-254
# 扫描前100个常用端口
nmap --top-ports 100 192.168.1.0/24
2. 全面扫描单个主机¶
# 综合扫描(OS、版本、脚本、路由)
sudo nmap -A -T4 192.168.1.1
# 详细扫描所有端口
sudo nmap -sS -sV -O -p- -T4 -v 192.168.1.1
# 保存结果到文件
sudo nmap -A -T4 -oA full_scan 192.168.1.1
3. Web服务器扫描¶
# 扫描Web服务
nmap -p 80,443 --script=http-enum,http-headers,http-methods,http-title 192.168.1.1
# 检测Web漏洞
nmap -p 80,443 --script=http-vuln-* 192.168.1.1
# 检测WAF
nmap -p 80,443 --script=http-waf-detect,http-waf-fingerprint 192.168.1.1
4. 数据库服务扫描¶
# MySQL扫描
nmap -p 3306 --script=mysql-info,mysql-databases,mysql-variables 192.168.1.1
# MongoDB扫描
nmap -p 27017 --script=mongodb-info,mongodb-databases 192.168.1.1
# Redis扫描
nmap -p 6379 --script=redis-info 192.168.1.1
5. 漏洞扫描¶
# 通用漏洞扫描
nmap --script=vuln 192.168.1.1
# SMB漏洞扫描(永恒之蓝等)
nmap --script=smb-vuln-ms17-010,smb-vuln-ms08-067 192.168.1.1
# SSL/TLS漏洞
nmap --script=ssl-heartbleed,ssl-poodle,ssl-ccs-injection 192.168.1.1
6. 隐蔽扫描¶
# 慢速SYN扫描,使用诱饵
sudo nmap -sS -T2 -f -D RND:10 --source-port 53 192.168.1.1
# 分片+随机诱饵+源端口欺骗
sudo nmap -sS -f --mtu 24 -D RND:5 -g 53 --data-length 20 192.168.1.1
7. 内网渗透¶
# 发现内网活动主机
nmap -sn -T4 192.168.1.0/24 -oG alive_hosts.txt
# 扫描常见服务端口
nmap -p 21,22,23,25,80,110,139,443,445,1433,3306,3389,8080 192.168.1.0/24
# 识别操作系统
sudo nmap -O -sV --osscan-guess 192.168.1.1-254
8. IPv6扫描¶
# IPv6主机发现
nmap -6 fe80::1
# IPv6端口扫描
nmap -6 -p- 2001:db8::1
# IPv6服务检测
nmap -6 -sV 2001:db8::1
9. 大规模扫描¶
# 扫描整个C类网段
nmap -sS -T4 --min-rate=1000 192.168.1.0/24
# 扫描多个网段
nmap -iL network_list.txt -oA large_scan
# 使用并行化加速
nmap --min-hostgroup 256 --max-parallelism 100 192.168.0.0/16
10. CTF/渗透测试场景¶
# 快速信息收集
nmap -sS -sV -T4 --script=default,vuln -oA ctf_recon target.com
# 查找特定服务
nmap -p- --open -sV | grep -i "ssh\|ftp\|smtp"
# 检测防火墙规则
sudo nmap -sA -p 1-1000 192.168.1.1
# 综合扫描并保存结果
sudo nmap -A -T4 -p- --script=default,vuln -oA comprehensive_scan target.com
常用组合命令¶
基础扫描¶
# 快速扫描Top 100端口
nmap --top-ports 100 192.168.1.1
# 扫描所有TCP端口
nmap -p- 192.168.1.1
# 扫描特定端口范围
nmap -p 1-1000 192.168.1.1
服务识别¶
# 基本服务版本检测
nmap -sV 192.168.1.1
# 服务版本+OS检测
sudo nmap -sV -O 192.168.1.1
# 使用脚本增强检测
nmap -sV -sC 192.168.1.1
全面扫描¶
# 激进扫描(OS、版本、脚本、路由)
sudo nmap -A 192.168.1.1
# 完整扫描所有端口+详细输出
sudo nmap -sS -sV -O -p- -v -oA full_scan 192.168.1.1
# 最全面扫描
sudo nmap -sS -sU -T4 -A -v -p- -oA ultimate_scan 192.168.1.1
隐蔽扫描¶
# 基本隐蔽扫描
nmap -sS -T2 192.168.1.1
# 高级隐蔽扫描
sudo nmap -sS -T1 -f -D RND:10 -g 53 192.168.1.1
端口状态说明¶
Nmap扫描后会显示端口的状态:
状态 |
说明 |
|---|---|
|
应用程序正在监听该端口 |
|
端口可访问,但没有应用程序监听 |
|
无法确定端口状态(被防火墙过滤) |
|
端口可访问,但无法确定开放或关闭 |
`open |
filtered` |
`closed |
filtered` |
脚本位置和管理¶
脚本位置¶
# macOS (Homebrew)
/opt/homebrew/share/nmap/scripts/
# Linux
/usr/share/nmap/scripts/
# 查看所有可用脚本
ls /usr/share/nmap/scripts/ | grep -i http
# 搜索特定功能脚本
nmap --script-help "*vuln*"
更新和管理¶
# 更新脚本数据库
nmap --script-updatedb
# 查看脚本帮助
nmap --script-help=http-title
# 查看脚本源代码
cat /usr/share/nmap/scripts/http-title.nse
常见问题和技巧¶
1. 提高扫描速度¶
# 使用快速时序模板
nmap -T4 target
# 限制端口扫描范围
nmap --top-ports 1000 target
# 跳过主机发现(如果确定主机在线)
nmap -Pn target
# 不进行DNS解析
nmap -n target
# 增加并行度
nmap --min-parallelism 100 target
2. 避免检测¶
# 慢速扫描
nmap -T1 target
# 添加延迟
nmap --scan-delay 1s target
# 随机目标顺序
nmap --randomize-hosts target1 target2 target3
# 使用诱饵
nmap -D RND:10 target
3. 解决权限问题¶
# SYN扫描需要root权限
sudo nmap -sS target
# 无需root的Connect扫描
nmap -sT target
# macOS可能需要禁用防火墙
sudo pfctl -d
4. 处理大规模扫描¶
# 使用目标文件
nmap -iL targets.txt
# 分段扫描
nmap 192.168.1.1-100
nmap 192.168.1.101-200
# 使用Grepable输出便于后续处理
nmap -oG results.gnmap target
# 提取开放端口
grep "open" results.gnmap
5. 调试扫描问题¶
# 显示详细输出
nmap -v target
nmap -vv target
# 显示调试信息
nmap -d target
nmap -dd target
# 数据包追踪
nmap --packet-trace target
# 显示端口状态原因
nmap --reason target
Nmap输出解析¶
XML输出处理¶
# 扫描并输出XML
nmap -oX scan.xml target
# 使用xsltproc转换为HTML
xsltproc scan.xml -o scan.html
# 使用Python解析XML
python3 -c "import xml.etree.ElementTree as ET; tree = ET.parse('scan.xml'); root = tree.getroot(); [print(host.find('address').get('addr')) for host in root.findall('.//host')]"
Grepable输出处理¶
# 提取所有开放端口
grep "open" scan.gnmap | cut -d " " -f 2
# 提取特定端口
grep "80/open" scan.gnmap
# 统计开放端口数量
grep -o "open" scan.gnmap | wc -l
安全和法律注意事项¶
⚠️ 重要提示:
授权: 只扫描你有明确授权的系统
合法性: 未经授权的端口扫描在某些司法管辖区可能是非法的
网络影响: 大规模扫描可能影响网络性能
IDS/IPS: 扫描活动可能触发入侵检测系统警报
服务中断: 某些扫描技术可能导致服务中断
合法使用场景¶
✅ 自己的系统和网络
✅ 有书面授权的渗透测试
✅ 漏洞赏金计划(遵循规则)
✅ 安全研究(在隔离环境)
✅ CTF比赛和练习环境
禁止行为¶
❌ 扫描未经授权的系统
❌ 使用扫描结果进行攻击
❌ 干扰正常业务运营
❌ 未经许可的漏洞测试
参考资源¶
官方资源¶
官方网站: https://nmap.org/
官方文档: https://nmap.org/book/
NSE脚本库: https://nmap.org/nsedoc/
邮件列表: https://nmap.org/mailman/listinfo/
学习资源¶
Nmap Network Scanning: Gordon Lyon的官方书籍
Nmap Cookbook: 实用技巧和方案
SecWiki Nmap: 中文Nmap资源
HackTricks Nmap: 渗透测试技巧
在线工具¶
Nmap Online: 在线Nmap扫描器(谨慎使用)
Shodan: 互联网设备搜索引擎
Censys: 互联网扫描数据库
快速参考卡¶
常用命令速查¶
# 基础扫描
nmap 192.168.1.1 # 基本扫描
nmap -v 192.168.1.1 # 详细扫描
nmap -A 192.168.1.1 # 激进扫描
nmap -p- 192.168.1.1 # 全端口扫描
# 主机发现
nmap -sn 192.168.1.0/24 # Ping扫描
nmap -Pn 192.168.1.1 # 跳过Ping
# 端口扫描
nmap -sS 192.168.1.1 # SYN扫描
nmap -sT 192.168.1.1 # Connect扫描
nmap -sU 192.168.1.1 # UDP扫描
# 服务检测
nmap -sV 192.168.1.1 # 版本检测
nmap -O 192.168.1.1 # OS检测
nmap -sC 192.168.1.1 # 默认脚本
# 输出
nmap -oN file.txt 192.168.1.1 # 标准输出
nmap -oX file.xml 192.168.1.1 # XML输出
nmap -oA basename 192.168.1.1 # 所有格式
# 性能
nmap -T4 192.168.1.1 # 快速扫描
nmap -T0 192.168.1.1 # 慢速扫描
# 规避
nmap -f 192.168.1.1 # 分片
nmap -D RND:10 192.168.1.1 # 诱饵扫描
版本: Nmap 7.98 文档更新: 2025-10 适用平台: Linux, macOS, Windows 许可证: GPL-2.0