Nmap快速上手:第一部分
字数 3082 2025-08-15 21:31:23
Nmap 网络扫描工具全面指南
一、Nmap 简介
Nmap (Network Mapper) 是一款开源的网络探测和安全审计工具,用于网络发现和安全扫描。它可以快速扫描大型网络,也可以对单个主机进行深入扫描。Nmap 提供了丰富的功能,包括:
- 主机发现
- 端口扫描
- 服务版本检测
- 操作系统检测
- 脚本扫描(NSE)
二、安装与靶机搭建
1. 安装
从官方网站下载安装:https://nmap.org/
2. 靶机搭建
推荐使用 OWASP Broken Web Applications Project:
https://sourceforge.net/projects/owaspbwa/
示例靶机地址:
- 192.168.154.128
- 192.168.3.7
三、基本命令与参数
1. 帮助命令
nmap --help
2. 目标指定
- 单个目标:
nmap 192.168.154.128 - 多个目标:
nmap 192.168.154.128 192.168.3.7 - IP范围:
nmap 192.168.3.1-10 - 从文件导入:
nmap -iL targets.txt - 排除目标:
nmap 192.168.3.1/28 --exclude 192.168.3.7nmap --excludefile targets.txt
3. 主机发现
-sL:列表扫描,仅列举IP-sn:Ping扫描,不进行端口扫描-Pn:跳过主机发现,假设所有主机在线-PS/PA/PU/PY:TCP SYN/ACK, UDP或SCTP发现-PE/PP/PM:ICMP echo, timestamp, netmask请求-PO:IP协议Ping--traceroute:追踪路由
4. 扫描技术
-sS:TCP SYN扫描(半开放扫描)-sT:TCP连接扫描-sA:TCP ACK扫描-sW:TCP窗口扫描-sM:TCP Maimon扫描-sU:UDP扫描-sN/sF/sX:TCP Null, FIN和Xmas扫描-sI:Idle扫描(僵尸扫描)-sO:IP协议扫描
5. 端口指定
- 指定端口:
-p 21,22,80,443 - 端口范围:
-p 1-65535 - 排除端口:
--exclude-ports 21,22 - 快速模式:
-F(仅扫描TOP100端口) - 顺序扫描:
-r(不随机化端口顺序) - 常用端口:
--top-ports 1000
6. 服务/版本检测
-sV:版本探测--version-intensity:设置探测强度(0-9)--version-light:轻量级探测(intensity 2)--version-all:尝试所有探测(intensity 9)--version-trace:显示详细版本探测过程
7. 脚本扫描(NSE)
-sC或--script=default:使用默认脚本--script=<脚本名>:使用特定脚本--script-args:传递脚本参数--script-trace:显示发送/接收数据--script-updatedb:更新脚本数据库--script-help:查看脚本帮助
8. 操作系统检测
-O:启用操作系统检测--osscan-limit:只对有希望的目标进行OS检测--osscan-guess:更激进地猜测OS
9. 时间与性能
-T<0-5>:时间模板(数字越大越快)--min-hostgroup/max-hostgroup:并行扫描主机数量--min-parallelism/max-parallelism:探测并行化--max-retries:最大探测重传次数--host-timeout:目标超时时间--scan-delay/--max-scan-delay:探测间隔时间--min-rate/--max-rate:每秒最小/最大发包数
10. 防火墙/IDS绕过
-f:分片-D:使用诱饵IP-S:伪造源地址-e:使用指定接口-g/--source-port:使用指定源端口--proxies:通过HTTP/SOCKS4代理--data:添加自定义payload--ttl:设置IP存活时间--spoof-mac:MAC欺骗--badsum:发送错误的校验和
11. 输出选项
-oN:普通格式-oX:XML格式-oS:脚本小子格式-oG:Grepable格式-oA:同时输出三种主要格式-v:增加详细程度-d:增加调试级别--open:仅显示开放端口--packet-trace:显示所有发送/接收包--iflist:打印主机接口和路由
12. 其他选项
-6:启用IPv6扫描-A:启用OS检测、版本检测、脚本扫描和路由追踪-V:打印版本号-h:打印帮助摘要
四、初级使用示例
-
扫描单个目标:
nmap 192.168.154.128 -
扫描多个目标:
nmap 192.168.154.128 192.168.3.7 nmap 192.168.3.1-10 192.168.154.100-130 -
扫描除某个目标之外的目标:
nmap 192.168.3.1/28 --exclude 192.168.3.7 nmap --excludefile targets.txt -
扫描指定文件内的目标:
nmap -iL targets.txt -
扫描指定端口:
nmap 192.168.154.128 -p 21,22,23,80,443,3306 -
扫描端口开放与服务版本:
nmap -sV 192.168.154.128 -
路由跟踪:
nmap --traceroute 192.168.154.128 -
主机存活情况:
nmap -sP 192.168.3.0/24 192.168.154.0/24 -T5 -
OS版本探测:
nmap -O 192.168.154.128 -
防火墙状态:
nmap -sF -T5 192.168.154.128
五、端口状态解释
| 状态 | 含义 |
|---|---|
| open | 端口处于开放状态,应用程序正在监听 |
| filtered | 端口被防火墙或其他安全设备阻止 |
| closed | 目标主机未开放该端口 |
| unfiltered | Nmap无法确认端口状态,需进一步探测 |
| open/filtered | Nmap不能识别是开放还是被过滤 |
| closed/filtered | Nmap不能识别是关闭还是被过滤 |
六、进阶脚本使用
Nmap脚本默认存放在/xx/nmap/scripts目录下
1. 脚本分类
- auth:处理鉴权证书
- broadcast:局域网服务探查
- brute:暴力破解
- default:默认脚本
- discovery:网络信息收集
- dos:拒绝服务攻击
- exploit:利用已知漏洞
- external:利用第三方资源
- fuzzer:模糊测试
- intrusive:入侵性脚本
- malware:检测恶意软件
- safe:安全性脚本
- version:增强版本检测
- vuln:常见漏洞检查
2. 常用脚本示例
-
鉴权扫描:
nmap --script=auth 192.168.154.128 -
暴力破解:
nmap --script=brute 192.168.154.128 -
漏洞扫描:
nmap --script=vuln 192.168.154.128 -
应用服务扫描:
nmap --script=realvnc-auth-bypass 192.168.154.128 -
局域网服务探测:
nmap -n -p 443 --script=broadcast 192.168.154.128 -
Whois解析:
nmap --script external baidu.com
3. 漏洞扫描增强
3.1 nmap-vulners
-
下载脚本:
cd /usr/share/nmap/scripts/ -
更新数据库:
nmap --script-updatedb -
扫描:
nmap --script nmap-vulners -sV -p 80 192.168.154.128
3.2 Vulscan
-
克隆存储库:
git clone https://github.com/scipag/vulscan.git -
更新漏洞库(Linux):
cd vulscan/utilities/updater/ chmod +x updateFiles.sh ./updateFiles.sh -
扫描:
nmap -sV --script=vulscan/vulscan.nse www.example.com -
Windows更新:
- 下载漏洞库文件并复制到scripts目录
- 使用时指定数据库:
--script-args vulscandb=your_own_database
七、参考资源
- Nmap官方文档:https://nmap.org/book/man.html
- Nmap-vulners:https://github.com/vulnersCom/nmap-vulners
- Vulscan:https://github.com/scipag/vulscan.git
这份文档涵盖了Nmap从基础到进阶的全面使用方法,包括安装、基本命令、扫描技术、脚本使用和漏洞扫描等内容。通过掌握这些知识,您可以有效地使用Nmap进行网络探测和安全评估。