概述
nmap 是网络管理员和安全专家探索网络和审计安全问题的必备工具。它支持多种扫描技术,并可通过脚本引擎扩展功能。
主要功能
- 主机发现 (识别网络上的活动主机)
- 端口扫描 (检查开放的端口和服务)
- 操作系统 (OS) 检测
- 服务版本检测
- 绕过防火墙和过滤器
- 通过 Nmap 脚本引擎 (NSE) 扩展功能
主要选项
nmap 提供非常广泛的选项,这里主要介绍主要的扫描类型和输出相关的选项。
扫描类型
目标指定及其他
生成的命令:
请尝试组合命令。
描述:
`nmap` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
使用示例
使用 nmap 的各种扫描功能的示例。
基本端口扫描
nmap scanme.nmap.org
对目标主机最常见的 1000 个端口进行 SYN 扫描。
特定端口扫描
nmap -p 80,443 scanme.nmap.org
仅扫描目标主机的 80 (HTTP) 和 443 (HTTPS) 端口。
操作系统和版本检测
nmap -A scanme.nmap.org
检测目标主机的操作系统和开放端口的服务版本。
扫描整个子网
nmap 192.168.1.0/24
扫描指定子网 (例如: 192.168.1.0/24) 内的所有活动主机。
将扫描结果保存到文件
nmap -sS -oN results.txt -oX results.xml scanme.nmap.org
将扫描结果分别保存到纯文本文件和 XML 文件。
安装
nmap 通常不包含在大多数 Linux 发行版的默认安装中,需要通过包管理器进行安装。
Debian/Ubuntu
sudo apt update && sudo apt install nmap
使用 APT 包管理器安装 nmap。
CentOS/RHEL/Fedora
sudo yum install nmap
# 或者
sudo dnf install nmap
使用 YUM 或 DNF 包管理器安装 nmap。
Arch Linux
sudo pacman -S nmap
使用 Pacman 包管理器安装 nmap。
技巧与注意事项
使用 nmap 时的一些有用技巧和需要注意的事项。
道德使用
nmap 是一个强大的网络扫描工具,因此必须仅在您拥有或获得授权的网络上使用。未经授权的扫描可能被视为非法行为。
- 始终获得扫描目标的明确许可。
- 未经授权扫描公共网络或他人系统可能导致法律问题。
绕过和检测防火墙
nmap 可以使用各种技术来绕过防火墙或检测防火墙的存在。可以使用 `-f` (分片数据包)、`--data-length` (添加随机数据)、`--badsum` (发送校验和错误的数据包) 等选项。
- `-Pn` 选项跳过 ping 扫描,即使防火墙阻止 ICMP 响应也能继续扫描。
- 可以使用 `-T<0-5>` 选项调整扫描速度,以避免被 IDS/IPS 系统检测 (0: Paranoid, 5: Insane)。
Nmap 脚本引擎 (NSE)
NSE 是一套强大的脚本集合,用于扩展 nmap 的功能。它可以执行漏洞检测、后门检测、信息收集等多种任务。
- 使用 `--script <脚本名称>` 或 `--script <类别>` 选项。
- 例如: `nmap --script vuln <target>` (通用漏洞扫描)
- 例如: `nmap --script http-enum <target>` (Web 服务器目录枚举)