一、前言
在渗透测试与网络安全领域,信息收集(Information Gathering) 是至关重要的第一步,而 Nmap(Network Mapper) 则是最经典、最强大的网络扫描工具之一。在 Kali Linux 中,Nmap 几乎是默认必备工具,被广泛用于主机发现、端口扫描、服务识别、操作系统识别以及漏洞探测。
本文将从 基础概念 → 常用命令 → 高级扫描 → 脚本引擎(NSE) → 实战示例,系统性地讲解 Kali 中 Nmap 的详细使用步骤,适合初学者和进阶用户参考。
二、Nmap 基础概念
1. Nmap 能做什么?
Nmap 主要用于:
- 主机发现(哪些主机在线)
- 端口扫描(开放了哪些端口)
- 服务与版本识别
- 操作系统识别
- 漏洞探测(基于 NSE 脚本)
2. Kali 中的 Nmap
Kali Linux 默认已安装 Nmap,可直接使用:
bash
nmap --version
如果未安装:
bash
sudo apt update
sudo apt install nmap
三、Nmap 基本语法
bash
nmap [扫描类型] [选项] <目标>
目标表示方式
- 单个 IP:
192.168.1.1 - IP 段:
192.168.1.0/24 - 多个目标:
192.168.1.1 192.168.1.2 - 域名:
example.com
四、主机发现(Host Discovery)
1. Ping 扫描(不扫端口)
bash
nmap -sn 192.168.1.0/24
常用于判断哪些主机在线。
2. 跳过 Ping(适用于防火墙环境)
bash
nmap -Pn 192.168.1.1
-Pn表示假设主机在线,直接扫描端口。
五、端口扫描详解
1. TCP SYN 扫描(最常用)
bash
sudo nmap -sS 192.168.1.1
- 默认扫描前 1000 个常用端口
- 隐蔽性较好(半开扫描)
2. TCP Connect 扫描
bash
nmap -sT 192.168.1.1
- 不需要 root 权限
- 完整 TCP 连接,易被记录
3. UDP 扫描
bash
sudo nmap -sU 192.168.1.1
- 扫描速度慢
- 常用于 DNS、SNMP、NTP 等服务
4. 指定端口扫描
bash
nmap -p 80,443 192.168.1.1
nmap -p 1-65535 192.168.1.1
六、服务与版本识别
bash
nmap -sV 192.168.1.1
可识别:
- Web 服务(Apache / Nginx)
- SSH / FTP 版本
- 中间件版本信息
组合使用:
bash
sudo nmap -sS -sV -p 1-1000 192.168.1.1
七、操作系统识别
bash
sudo nmap -O 192.168.1.1
增强模式:
bash
sudo nmap -A 192.168.1.1
-A 包含:
- OS 探测
- 版本识别
- 默认脚本扫描
- Traceroute
八、Nmap 脚本引擎(NSE)
1. NSE 简介
Nmap Script Engine(NSE)允许使用脚本进行:
- 漏洞扫描
- 弱口令检测
- 服务枚举
脚本路径:
bash
/usr/share/nmap/scripts/
2. 使用默认脚本
bash
nmap -sC 192.168.1.1
3. 使用指定脚本
bash
nmap --script=vuln 192.168.1.1
示例:扫描 SMB 漏洞
bash
nmap --script smb-vuln* -p 445 192.168.1.1
九、扫描速度与规避策略
1. 扫描速度控制
bash
nmap -T4 192.168.1.1
速度等级:
T0(最慢,隐蔽)T3(默认)T4(快速)T5(极快,易被发现)
2. 分片与伪装(了解即可)
bash
sudo nmap -f 192.168.1.1
十、输出结果保存
bash
nmap -oN result.txt 192.168.1.1
nmap -oX result.xml 192.168.1.1
nmap -oA scan_result 192.168.1.1
适合生成报告或导入其他工具(如 Metasploit)。
十一、实战示例(完整流程)
bash
# 1. 发现主机
nmap -sn 192.168.1.0/24
# 2. 扫描端口
sudo nmap -sS -p 1-65535 192.168.1.100
# 3. 服务识别
nmap -sV 192.168.1.100
# 4. 漏洞扫描
nmap --script=vuln 192.168.1.100
十二、注意事项与法律声明
⚠️ 重要提醒:
- 仅对 授权目标 进行扫描
- 未经授权扫描可能违反法律法规
- 建议在靶机环境(如 Metasploitable、DVWA)中练习
十三、总结
Nmap 是每一位安全人员必须掌握的基础工具,从简单端口扫描到复杂漏洞探测都离不开它。熟练使用 Nmap,不仅能提升信息收集效率,也能为后续渗透测试打下坚实基础。
如果你能将本文内容逐步实践,相信你已经具备了 独立完成目标初步侦察的能力。