最新Nmap入门技术
字数 2020 2025-08-18 11:35:32
Nmap 网络扫描工具详解
一、Nmap 简介
Nmap (Network Mapper) 是一款开放源代码的网络探测和安全审核工具,主要用于:
- 快速扫描大型网络
- 主机探测与发现
- 开放端口检测
- 操作系统与服务指纹识别
- WAF 识别
- 常见安全漏洞检测
相关组件:
- 图形化界面:Zenmap
- 分布式框架:DNmap
二、Nmap 主要功能
- 主机探测:发现网络上的存活主机和开放特定端口的主机
- 端口扫描:探测目标主机开放的端口
- 版本检测:识别网络服务名称及版本号
- 系统检测:识别操作系统及网络设备硬件特性
- 脚本探测:使用 NSE (Nmap Scripting Engine) 和 Lua 编程语言编写探测脚本
三、Nmap 安装
从 Nmap 官网下载安装包,按照提示完成安装即可。
四、Nmap 扫描参数详解
1. 目标设置参数
-iL:从文件导入目标主机或网段-iR:随机选择目标主机--exclude:排除指定主机或网段--excludefile:从文件导入要排除的主机或网段
2. 主机发现参数
-sL:列表扫描,仅列举目标IP,不进行主机发现-sn:Ping扫描,只进行主机发现,不扫描端口-Pn:跳过主机发现,假设所有主机都已开启-PS/PA/PU/PY[portlist]:使用TCP SYN/ACK或SCTP INIT/ECHO方式发现主机-PE/PP/PM:使用ICMP echo/timestamp/netmask请求包发现主机-PO[protocollist]:使用IP协议包探测主机-n/-R:不进行DNS解析/总是进行DNS解析--dns-servers <serv1[,serv2],...>:指定DNS服务器--system-dns:使用系统DNS服务器--traceroute:追踪路由节点
3. 端口扫描方法
-sS/sT/sA/sW/sM:TCP SYN/Connect()/ACK/Window/Maimon扫描-sU:UDP扫描-sN/sF/sX:TCP Null/FIN/Xmas秘密扫描--scanflags <flags>:定制TCP包flags-sI <zombie host[:probeport]>:Idle扫描(需僵尸主机)-sY/sZ:SCTP INIT/COOKIE-ECHO扫描-sO:IP协议扫描-b <FTP relay host>:FTP bounce扫描
4. 端口参数与扫描顺序
-p <port ranges>:扫描指定端口-F:快速模式,仅扫描Top100端口-r:不随机打乱端口顺序--top-ports <number>:扫描最可能开放的指定数量端口--port-ratio <ratio>:扫描开放概率高于指定值的端口
5. 版本侦测参数
-sV:启用版本侦测--version-intensity <level>:设置侦测强度(0-9,默认7)--version-light:轻量级侦测--version-all:尝试所有probes--version-trace:显示详细侦测过程
五、常用扫描命令
基本扫描格式
nmap [扫描参数] [目标地址或网段]
示例命令
-
完整扫描示例:
nmap -T4 -A -v ip-T4:高速时序-A:进攻性扫描-v:显示详细信息
-
扫描单个目标:
nmap 10.172.10.254 -
扫描多个目标:
nmap 10.172.10.254 10.172.10.2 -
扫描连续范围:
nmap 10.172.10.1-10 -
扫描整个网段:
nmap 10.172.10.1/24 -
从文件导入目标:
nmap -iL targets.txt -
排除特定目标:
nmap 10.172.10.1/24 --exclude 10.172.10.100 -
从文件排除目标:
nmap 10.172.10.1/24 --excludefile exclude.txt -
扫描指定端口:
nmap 10.172.10.254 -p 21,22,23,80 -
路由跟踪:
nmap --traceroute 10.172.10.254 -
探测网段在线主机:
nmap -sP 10.172.10.1/24 -
操作系统识别:
nmap -O 192.168.0.105 -
服务版本检测:
nmap -sV 10.172.10.254 -
探测防火墙状态:
nmap -sF -T4 10.172.10.38
六、端口状态解释
Nmap 扫描结果中端口可能显示以下状态:
| 状态 | 含义 |
|---|---|
| open | 端口开放,应用程序正在监听 |
| filtered | 端口被防火墙/网络设备阻止 |
| closed | 端口关闭,目标主机未开启该端口 |
| unfiltered | Nmap无法确定状态,需进一步探测 |
| open/filtered | 可能是开放的或被过滤的 |
| closed/filtered | 可能是关闭的或被过滤的 |
七、实用技巧
-
时序选择:
-T0(极慢)到-T5(极快),网络状况好时推荐-T4 -
隐蔽扫描:
- 使用
-sS(SYN扫描)比-sT(完全连接扫描)更隐蔽 -sN/-sF/-sX秘密扫描方式可绕过简单防火墙
- 使用
-
服务识别:结合
-sV和--version-intensity可提高版本识别准确度 -
脚本引擎:使用
--script参数调用NSE脚本进行高级探测 -
结果输出:使用
-oN(普通)、-oX(XML)、-oG(Grepable)等参数保存扫描结果