文章目录
- nmap 简介
- 安装 nmap
- nmap 的基本用法
- 发现在线主机
- 端口扫描
- 扫描整个网段的开放端口
- nmap 常见参数
- nmap 进阶应用
- 操作系统识别
- 详细端口和服务探测
- 使用 NSE 脚本扫描漏洞
- 扫描防火墙规则
- 绕过防火墙扫描
- nmap 扫描原理
- 常见扫描方式
- 反制 nmap 扫描
- nmap 实战案例
- 批量扫描多个 IP
- 扫描整个子网并导出结果
- nmap 使用注意事项
- 总结
nmap
(Network Mapper)是一款强大的网络扫描工具,广泛用于端口扫描、主机发现、服务识别等。以下是详细的 nmap
命令指南,包括基本用法、常见参数、示例、扫描原理以及进阶应用。
nmap 简介
nmap
是一个开源的网络探测和安全审计工具,支持多种扫描方式,能够检测开放端口、识别操作系统、探测服务版本等。
安装 nmap
# Debian/Ubuntu
sudo apt install nmap# CentOS/RHEL
sudo yum install nmap# macOS(使用 Homebrew)
brew install nmap
nmap 的基本用法
nmap [选项] <目标>
<目标>
可以是单个 IP、多个 IP、IP 段或者域名。
发现在线主机
nmap -sn 192.168.1.0/24
说明:使用 -sn
仅执行主机发现,不扫描端口。
端口扫描
nmap -p 22,80,443 192.168.1.1
说明:扫描指定主机的 22
、80
、443
端口。
扫描整个网段的开放端口
nmap 192.168.1.0/24
说明:默认扫描 1000
个常见端口。
nmap 常见参数
参数 | 作用 |
---|---|
-sn | 仅主机发现,不扫描端口 |
-p | 指定端口扫描,如 -p 80,443 |
-p- | 扫描所有 0-65535 端口 |
-sS | TCP SYN 扫描(默认方式,隐蔽性高) |
-sT | TCP 连接扫描(不需要 root 权限) |
-sU | UDP 扫描(如 -sU -p 53 扫描 DNS 端口) |
-sV | 识别端口运行的服务及版本 |
-O | 操作系统检测 |
-A | 启用 -O -sV -sC ,增强扫描结果 |
--script | 使用 NSE(Nmap Scripting Engine)脚本 |
-T | 调整扫描速度(T0 -T5 ,默认 T3 ) |
nmap 进阶应用
操作系统识别
sudo nmap -O 192.168.1.1
说明:-O
选项用于识别目标主机的操作系统。
详细端口和服务探测
sudo nmap -sV 192.168.1.1
说明:使用 -sV
探测端口运行的具体服务版本。
使用 NSE 脚本扫描漏洞
sudo nmap --script=vuln 192.168.1.1
说明:--script=vuln
让 nmap
执行漏洞检测脚本。
扫描防火墙规则
sudo nmap -sA 192.168.1.1
说明:-sA
选项用于分析防火墙的过滤策略。
绕过防火墙扫描
nmap -D RND:10 192.168.1.1
说明:-D
选项用于伪造多个来源 IP,使扫描更难被检测。
nmap 扫描原理
常见扫描方式
扫描类型 | 说明 |
---|---|
-sS | SYN 扫描(半开放扫描,隐蔽性高) |
-sT | TCP 连接扫描(适用于非 root 用户) |
-sU | UDP 扫描(检测 UDP 服务) |
-sX | Xmas 扫描(发送特殊 TCP 标志位包) |
-sN | NULL 扫描(发送无标志位的 TCP 包) |
-sF | FIN 扫描(仅发送 FIN 标志位) |
反制 nmap 扫描
- 使用
iptables
限制端口扫描
iptables -A INPUT -p tcp --dport 22 -m recent --name SSHSCAN --set
iptables -A INPUT -p tcp --dport 22 -m recent --name SSHSCAN --update --seconds 60 --hitcount 4 -j DROP
说明:如果 nmap
扫描 22
端口 4 次,则封禁该 IP 60 秒。
nmap 实战案例
批量扫描多个 IP
nmap -sS -p 22,80,443 192.168.1.1 192.168.1.2 192.168.1.3
说明:同时扫描多个 IP 的 22
、80
、443
端口。
扫描整个子网并导出结果
nmap -p 22,80,443 -oN result.txt 192.168.1.0/24
说明:将扫描结果保存到 result.txt
文件中。
nmap 使用注意事项
- 权限:部分扫描方式(如
-sS
)需要 root 权限。 - 法律合规:请勿在未授权的情况下扫描他人网络,以免触犯法律。
- 扫描时间:大型网络扫描可能需要较长时间,建议适当调整
-T
选项加快扫描速度。
总结
nmap
是一款强大的网络扫描工具,适用于安全审计、端口探测、主机发现等任务。通过灵活使用 nmap
的参数,我们可以获取目标主机的详细信息,从而提高网络安全性。