什么是 Nmap?
Nmap(Network Mapper)是一款开源的网络扫描工具,广泛用于网络发现、端口扫描、服务识别和漏洞检测。它支持多种扫描技术,能够快速识别网络中的主机、服务和操作系统信息,是网络安全工程师的必备工具。
Nmap 的核心功能
- 主机发现:检测网络中的活跃主机。
- 端口扫描:识别目标主机开放的端口及其服务。
- 版本检测:确定运行在端口上的服务及其版本信息。
- 操作系统检测:猜测目标主机的操作系统类型。
- 脚本扫描:通过 Nmap 脚本引擎(NSE)进行高级检测和漏洞扫描。
Nmap 参数大全:从基础到高级
1. 目标指定
**
<目标>
**:直接指定目标 IP 地址、主机名或网段。nmap 192.168.1.1 nmap example.com nmap 192.168.1.0/24
**
iL <文件>
**:从文件中读取目标列表。nmap -iL targets.txt
**
-exclude <目标>
**:排除指定目标不扫描。nmap 192.168.1.0/24 --exclude 192.168.1.100
**
-excludefile <文件>
**:从文件中读取排除的目标列表。nmap 192.168.1.0/24 --excludefile exclude.txt
2. 主机发现
**
sP
**(Ping 扫描):仅检测主机是否在线,不扫描端口。nmap -sP 192.168.1.0/24
**
Pn
**(跳过主机发现):假设所有主机都在线,直接扫描端口。nmap -Pn 192.168.1.1
**
PS <端口>
**:使用 TCP SYN Ping 探测主机。nmap -PS80,443 192.168.1.1
**
PA <端口>
**:使用 TCP ACK Ping 探测主机。nmap -PA80,443 192.168.1.1
**
PU <端口>
**:使用 UDP Ping 探测主机。nmap -PU53 192.168.1.1
**
PE
**(ICMP Echo Ping):使用 ICMP Echo 请求探测主机。nmap -PE 192.168.1.1
**
PP
**(ICMP Timestamp Ping):使用 ICMP Timestamp 请求探测主机。nmap -PP 192.168.1.1
**
PM
**(ICMP Address Mask Ping):使用 ICMP Address Mask 请求探测主机。nmap -PM 192.168.1.1
3. 端口扫描
**
p <端口>
**:扫描指定端口或端口范围。nmap -p 80,443 192.168.1.1 nmap -p 1-1000 192.168.1.1
**
F
**(快速扫描):仅扫描常见端口。nmap -F 192.168.1.1
**
-top-ports <数量>
**:扫描最常见的 N 个端口。nmap --top-ports 100 192.168.1.1
**
sS
**(SYN 扫描):半开放扫描,速度快且隐蔽。nmap -sS 192.168.1.1
**
sT
**(TCP 连接扫描):完整的 TCP 连接扫描,准确性高但速度较慢。nmap -sT 192.168.1.1
**
sU
**(UDP 扫描):扫描 UDP 端口。nmap -sU 192.168.1.1
**
sN
**(Null 扫描):发送无标志位的 TCP 包,用于绕过某些防火墙。nmap -sN 192.168.1.1
**
sF
**(FIN 扫描):发送 FIN 包,用于绕过某些防火墙。nmap -sF 192.168.1.1
**
sX
**(Xmas 扫描):发送 FIN、PSH 和 URG 标志位的 TCP 包。nmap -sX 192.168.1.1
4. 服务与版本检测
**
sV
**(版本检测):识别端口上运行的服务及其版本。nmap -sV 192.168.1.1
**
-version-intensity <级别>
**:控制版本检测的强度(0-9)。nmap -sV --version-intensity 5 192.168.1.1
**
-version-light
**:轻量级版本检测(相当于-version-intensity 2
)。nmap -sV --version-light 192.168.1.1
**
-version-all
**:尝试所有版本检测探针(相当于-version-intensity 9
)。nmap -sV --version-all 192.168.1.1
**
O
**(操作系统检测):猜测目标主机的操作系统。nmap -O 192.168.1.1
**
-osscan-limit
**:仅对可能的目标进行操作系统检测。nmap -O --osscan-limit 192.168.1.1
**
-osscan-guess
**:更激进地猜测操作系统。nmap -O --osscan-guess 192.168.1.1
5. 脚本扫描
**
sC
**(默认脚本扫描):运行 Nmap 默认的脚本集合。nmap -sC 192.168.1.1
**
-script=<脚本名称>
**:运行指定的 Nmap 脚本。nmap --script=http-title 192.168.1.1
**
-script-args=<参数>
**:为脚本提供参数。nmap --script=http-title --script-args=http-title.url=/index.html 192.168.1.1
**
-script-trace
**:显示脚本执行的详细过程。nmap --script=http-title --script-trace 192.168.1.1
**
-script-updatedb
**:更新脚本数据库。nmap --script-updatedb
6. 输出与日志
**
oN <文件>
**:将扫描结果保存为文本文件。nmap -oN result.txt 192.168.1.1
**
oX <文件>
**:将扫描结果保存为 XML 文件。nmap -oX result.xml 192.168.1.1
**
oG <文件>
**:生成便于 grep 处理的输出。nmap -oG result.grep 192.168.1.1
**
oA <前缀>
**:同时生成文本、XML 和 Grepable 格式的输出。nmap -oA result 192.168.1.1
**
v
**(详细输出):增加输出的详细程度。nmap -v 192.168.1.1
**
d
**(调试输出):显示调试信息。nmap -d 192.168.1.1
7. 高级参数
**
T<0-5>
**(时序模板):控制扫描速度,0 最慢,5 最快。nmap -T4 192.168.1.1
**
-min-rate <速率>
**:设置最小发包速率。nmap --min-rate 100 192.168.1.1
**
-max-rate <速率>
**:设置最大发包速率。nmap --max-rate 1000 192.168.1.1
**
-packet-trace
**:显示发送和接收的每个数据包。nmap --packet-trace 192.168.1.1
**
-reason
**:显示端口状态的原因。nmap --reason 192.168.1.1
实际应用场景
- 网络发现:使用
sP
快速发现网络中的活跃主机。 - 端口扫描:使用
p
和sV
识别开放端口及其服务。 - 漏洞检测:使用
-script=vuln
扫描常见漏洞。 - 操作系统识别:使用
O
猜测目标主机的操作系统。
结语
如果您对 Nmap 的使用有任何疑问,欢迎在评论区留言!同时,关注我们的博客,获取更多网络安全相关的教程和技巧。
相关推荐:
欢迎指出任何有错误或不够清晰的表达,可以在下面评论区评论。