# Nmap 常用扫描参数速查手册 > 说明:仅用于**自己授权/本地靶场**扫描;未经授权扫描公网资产违法。 > 语法基础:`nmap [参数] 目标IP/网段` ## 一、基础扫描(最简) ```bash # 默认扫描:TCP 1000常用端口,默认SYN扫描(root) nmap 192.168.1.100 # 扫描单个端口 nmap -p 80 192.168.1.100 # 扫描多个端口 nmap -p 80,443,3306 192.168.1.100 # 扫描端口范围 nmap -p 1-1000 192.168.1.100 # 扫描全部端口 1-65535(慢) nmap -p- 192.168.1.100 ``` ## 二、扫描类型(核心) ```bash # -sS SYN半开扫描(推荐,root权限,不完成TCP握手,隐蔽) nmap -sS 192.168.1.100 # -sT TCP全连接扫描(无root时默认,容易被日志记录) nmap -sT 192.168.1.100 # -sU UDP扫描(慢!DNS、SNMP、Memcached) nmap -sU -p 53,161 192.168.1.100 # -sn 主机发现,**不扫描端口**,仅探测网段存活主机(内网扫存活机器) nmap -sn 192.168.1.0/24 # -Pn 跳过主机存活检测(目标禁ping,直接扫端口,Web靶场常用) nmap -Pn 192.168.1.100 ``` ## 三、版本、操作系统探测 ```bash # 服务版本探测 -sV nmap -sV 192.168.1.100 # 操作系统识别 -O(root) nmap -O 192.168.1.100 # 组合:SYN + 版本探测 + OS识别 nmap -sS -sV -O 192.168.1.100 ``` ## 四、输出保存(渗透报告取证必备) ```bash # -oN 普通文本输出 nmap -sV 192.168.1.100 -oN scan.txt # -oX xml输出(可导入Metasploit、Nessus,报告常用) nmap -sV 192.168.1.100 -oX scan.xml # -oG grep格式(方便grep筛选开放端口) nmap -sV 192.168.1.100 -oG scan.gnmap ``` ## 五、性能/时序、避坑参数 ```bash # 时序模板:T0~T5;T4推荐(平衡速度与准确性) nmap -T4 192.168.1.100 # --min-parallelism 并行发包数量,提速 # --max-rtt-timeout 缩短超时时间,适合内网 # -F 快速扫描,仅扫描TOP100端口 nmap -F 192.168.1.100 # --reason 显示端口状态原因(推荐,看为什么判定开放/过滤) nmap --reason -sV 192.168.1.100 ``` ## 六、脚本引擎 NSE(最强大功能,漏洞探测、信息收集) ```bash # 基础安全脚本集合(常用) nmap --script=default 192.168.1.100 # 漏洞检测脚本 nmap --script=vuln 192.168.1.100 # 单个脚本,例:检测ms17-010永恒之蓝 nmap --script=smb-vuln-ms17-010 -p 445 192.168.1.100 # 批量脚本,逗号分隔 nmap --script=http-title,http-headers 192.168.1.100 ``` > 常用NSE分类: > `default` 默认信息收集 > `vuln` 漏洞检测 > `auth` 认证相关(smb、ftp弱口令探测) > `discovery` 内网发现 > `http*` Web信息探测 ## 七、网段扫描、IP列表扫描 ```bash # C段扫描 nmap -sn 192.168.1.0/24 # 从文件读取IP列表扫描 nmap -iL ip_list.txt ``` ## 八、端口状态 4种结果(必背) 1. `open`:端口开放,有服务监听 2. `closed`:端口关闭,主机存活 3. `filtered`:防火墙/ACL拦截,无法确认状态 4. `unfiltered`:能收到包,但无法判断开放关闭 ## 九、高频实战组合命令(直接复制用) ```bash # 内网存活主机探测 nmap -sn 192.168.1.0/24 -T4 -oN host_alive.txt # 深度端口+版本扫描(靶场首选) nmap -sS -sV -T4 --reason -Pn 192.168.1.100 -oN target_scan.txt # 全端口扫描(慢,只在靶场用) nmap -sS -sV -p- -T4 -Pn 192.168.1.100 -oN fullport.txt # 漏洞扫描脚本 nmap --script vuln -sV -Pn 192.168.1.100 ``` ## 十、注意事项&踩坑清单 1. `-sS` 需要root/管理员权限;Windows用管理员CMD,Linux加sudo 2. UDP扫描`-sU`速度很慢,不要直接扫全部UDP端口,指定端口 3. 公网扫描容易触发WAF/IDS告警;仅本地靶场练习 4. NSE vuln脚本只是**探测,不是POC利用**,仅做风险提示 5. 遇到防火墙大量`filtered`,可尝试调整`--data-length`、伪装包 ## 十一、常用配套筛选(grep处理扫描结果) ```bash # 提取开放端口 grep "open" scan.txt ```