基础扫描
扫描目标
nmap 192.168.1.1 # single host nmap 192.168.1.0/24 # entire subnet nmap 192.168.1.1-50 # IP range nmap -iL targets.txt # hosts from file
目标规格
192.168.1.1单个 IP 地址
192.168.1.0/24CIDR 表示法(256 台主机)
192.168.1.1-254IP 范围
example.com主机名(解析为 IP)
-iL file.txt从文件读取目标
--exclude 192.168.1.1排除特定主机
--excludefile skip.txt从文件排除主机
端口扫描
扫描类型
-sSTCP SYN 扫描(默认,隐蔽,需 root)
-sTTCP 全连接扫描(完整握手,不需 root)
-sUUDP 扫描(速度慢,常被过滤)
-sATCP ACK 扫描(检测防火墙)
-sNTCP NULL 扫描(无标志位)
-sFTCP FIN 扫描(仅 FIN 标志)
-sXXmas 扫描(FIN+PSH+URG 标志)
端口选择
nmap -p 80,443 target # specific ports nmap -p 1-1000 target # port range nmap -p- target # all 65535 ports nmap --top-ports 100 target # most common 100 ports
端口状态
open应用程序正在接受连接
closed端口可达但无服务监听
filtered防火墙拦截,无法确定状态
unfiltered端口可访问,但开/关未知
open|filtered无法区分开放还是被过滤
主机发现
发现方法
-sn仅 Ping 扫描(不扫描端口)
-Pn跳过主机发现(全部视为在线)
-PS 80,443在指定端口进行 TCP SYN 发现
-PA 80TCP ACK 发现
-PU 53UDP 发现
-PEICMP 回显请求
-PRARP 发现(本地网络)
网络扫描
nmap -sn 192.168.1.0/24 # ping sweep subnet nmap -sn -n 10.0.0.0/24 # sweep, skip DNS nmap -sn -PR 192.168.1.0/24 # ARP scan (fastest)
服务检测
版本检测
nmap -sV target # detect service versions nmap -sV --version-intensity 5 target # deeper probing nmap -sV --version-all target # try every probe (slow) nmap -A target # OS + version + scripts + traceroute
服务检测标志
-sV对开放端口探测服务/版本
--version-intensity 0-9探测强度(默认 7)
--version-light轻量探测(强度 2)
--version-all尝试所有探测(强度 9)
-A激进模式:-sV -O --script=default -traceroute
-sC运行默认 NSE 脚本
操作系统检测
OS 指纹识别
nmap -O target # OS detection (needs root) nmap -O --osscan-limit target # only scan promising hosts nmap -O --osscan-guess target # aggressive OS guessing nmap -A target # includes OS detection
OS 检测标志
-O启用 OS 检测
--osscan-limit跳过没有开放+关闭 TCP 端口的主机
--osscan-guess更激进地猜测 OS
--max-os-tries N每台主机最大 OS 检测尝试次数
脚本(NSE)
脚本用法
nmap --script=default target # default category nmap --script=vuln target # vulnerability scripts nmap --script=http-headers target nmap --script="http-*" target # wildcard match
脚本类别
default安全实用的脚本(-sC 简写)
vuln检查已知漏洞
safe非侵入性脚本
intrusive可能导致目标崩溃或触发 IDS
discovery网络与服务发现
auth认证相关检查
brute暴力破解凭据测试
exploit主动漏洞利用
常用脚本
http-title获取网页标题
ssl-cert显示 SSL 证书详情
ssh-hostkey显示 SSH 主机密钥指纹
dns-brute枚举 DNS 子域名
smb-os-discovery通过 SMB 检测 Windows OS
vuln运行所有漏洞检查
输出格式
输出选项
nmap -oN scan.txt target # normal text output nmap -oX scan.xml target # XML output nmap -oG scan.gnmap target # grepable output nmap -oA scan_all target # all formats at once
输出标志
-oN file普通文本输出到文件
-oX fileXML 输出(适合工具解析)
-oG file可 grep 格式(每行一台主机)
-oA basename三种格式同时输出
-v增加详细程度(-vv 更多)
-d调试输出(-dd 更多)
--open仅显示开放端口
--reason显示端口状态的原因
速度与性能
时序模板
-T0(偏执)极慢,IDS 规避(探测间隔 5 分钟)
-T1(鬼鬼祟祟)慢速,IDS 规避(探测间隔 15 秒)
-T2(礼貌)降低速度,减少带宽占用
-T3(正常)默认时序
-T4(激进)快速,假设网络可靠
-T5(疯狂)最快,可能遗漏结果
精细调优
--min-rate 1000每秒至少发送 1000 个数据包
--max-rate 500每秒最多 500 个数据包
--max-retries 2最大重传次数
--host-timeout 30m扫描超过 30 分钟则跳过
--scan-delay 1s探测间隔
--min-parallelism 10最小并行探测组数
防火墙规避
规避技术
-f分片数据包(8 字节块)
-D RND:5使用 5 个随机 IP 进行诱骗扫描
-S spoof_ip伪造源 IP(需要原始数据包)
-e eth0使用指定网络接口
--source-port 53使用指定源端口(如 DNS)
--data-length 25在数据包中追加随机数据
--spoof-mac 0随机化 MAC 地址
规避示例
nmap -f -D RND:3 target # fragments + decoys nmap --source-port 53 target # DNS port (often allowed) nmap -T1 --scan-delay 5s target # slow to evade IDS
常见模式
快速侦察
nmap -T4 -F target # fast common ports nmap -T4 -A -v target # OS + service detection nmap -sV --top-ports 1000 target # top 1000 + versions
全面扫描
# Full TCP + service + OS + scripts nmap -sS -sV -O -sC -p- -T4 -oA full target # UDP scan on common ports nmap -sU --top-ports 50 target
Web 服务器审计
nmap -p 80,443 --script=http-title,http-headers,\ ssl-cert,http-methods target # Check for open proxies and vulns nmap -p 80,443,8080 --script=http-open-proxy,vuln target
网络资产清单
# Discover all live hosts with OS info nmap -sn 192.168.1.0/24 -oG - | grep "Up" # Service inventory for subnet nmap -sV -T4 192.168.1.0/24 -oX inventory.xml