一、 Nmap 是什么?
Nmap 的全称是 Network Mapper,是一款开源的网络扫描和安全审计工具。它用于:
-
发现网络中的主机(主机发现)。
-
探测主机开放的端口(端口扫描)。
-
识别主机运行的服务及其版本(服务版本检测)。
-
推断主机运行的操作系统(操作系统检测)。
-
利用 Nmap 脚本引擎(NSE)进行高级检测,如漏洞检测、后门检测、暴力破解等。
与追求极致速度的 Masscan 不同,Nmap 的核心目标是全面、深入、精确地获取目标信息。它是网络管理员、安全工程师、渗透测试人员的“瑞士军刀”。
基本命令语法
nmap [扫描类型] [选项] {目标规格}
最简单的例子:扫描一个主机
nmap 192.168.1.1
核心扫描技术与原理详解
常用脚本示例
# 运行默认脚本扫描(通常与 -sV 一起使用)
nmap -sC -sV 192.168.1.1
# 运行漏洞检测脚本
nmap --script vuln 192.168.1.1
# 运行多个类别的脚本
nmap --script "default,safe,vuln" 192.168.1.1
# 运行特定脚本 - 检测 HTTP 标题
nmap --script http-title 192.168.1.1
# 运行特定脚本 - 对 SMB 共享进行审计
nmap --script smb-enum-shares -p445 192.168.1.1
典型扫描工作流与命令示例
基础网络普查
# 发现网段内存活的主机
nmap -sn 192.168.1.0/24
# 对存活主机进行快速常用端口扫描
nmap -F 192.168.1.1/24
对单台主机进行深入扫描(渗透测试标准流程)
# 全面扫描:全端口 + 服务版本 + 操作系统检测 + 默认脚本
nmap -p- -sV -sC -O -T4 192.168.1.105 -oA full_scan
-p-:扫描所有 65535 个端口。
-sV:探测服务版本。
-sC:运行默认脚本。
-O:进行操作系统检测。
-T4:快速扫描。
-oA full_scan:将结果输出为三种格式(full_scan.nmap, .xml, .gnmap)。
结合 Masscan 和 Nmap 的高效工作流
# 第一步:使用 Masscan 快速发现整个网段的开放端口
sudo masscan 10.0.0.0/16 -p1-65535 --rate 10000 -oX masscan_results.xml
# 第二步:使用工具从 masscan 结果中提取 IP:Port 列表,生成给 Nmap 的指令
# (例如,可以使用 Python 脚本,或使用以下命令简单处理)
grep 'portid=' masscan_results.xml | grep -oP 'addr="\K[^"]+' | sort -u > targets.txt
# 第三步:使用 Nmap 对发现的目标进行精细化验证和深度探测
nmap -sV -sC -iL targets.txt -oA detailed_nmap_scan
Nmap常用的一些参数(注意区分大小写)
| 参数 | 说明 |
|---|---|
| -sP | 使用Ping扫描 |
| -sL | 列表扫描,仅将指定的目标IP列举出来,不进行主机发现。 |
| -Pn | 不检测主机存活,默认当前主机存活。 |
| -PS | 使用TCP SYN Ping扫描。 |
| -PA | 使用TCP ACK Ping扫描。 |
| -PU | 使用UDP Ping扫描 |
| -sS | TCP SYN扫描。 |
| -sT | TCP连接扫描。 |
| -sU | UDP扫描。 |
| -sA | TCP ACK扫描。 |
| -sW | TCP窗口扫描。 |
| -sN/-sF/-sX | 隐蔽扫描。 |
| -sI | 空闲扫描 |
常用端口扫描相关参数
| 参数 | 说明 |
|---|---|
| -p | 指定端口,指定的端口范围在1-65535之间。 |
| -r | 按照端口号大小,从小到大进行扫描。 |
| -F | 扫描最常用的100个端口。 |
| –exclede-ports | 指定排除的端口。 |
1)排除扫描目标扫描
① Nmap [目标] --exclude [目标]
② Nmap [目标] --exclude [目标范围]
③ Nmap [目标] --exclude [目标列表]
2)指定端口扫描
① Nmap -p [端口] [目标]
② Nmap -p [端口1,端口2,端口3]
③ Nmap -p [端口范围]
常用服务和操作系统识别参数
| 参数 | 说明 |
|---|---|
| -O | 检测目标操作系统。 |
| -sV | 检测服务。 |
| -A | 可以同时启用操作系统检测和版本检测。 |
常用扫描速度相关参数
扫描参数范围在T0-T5之间,扫描速度由T0到T5处于递增状态。
| 参数 | 说明 |
|---|---|
| -T0,T1 | 慢速扫描,躲避防火墙等设备检测。 |
| -T2 | 比T0,T1扫描速度快,比T3慢。 |
| -T3 | Nmap默认扫描速度。 |
| -T4 | 快速扫描,比T3要快。 |
| -T5 | 极速扫描,扫描结果极为不准。 |
其它参数
| 参数 | 说明 |
|---|---|
| -v | 提高输出信息的详细程度。 |
| -oX | 扫描结果输出为XML格式文件。 |
本文详细介绍了Nmap工具中常用的各种参数,包括扫描类型(如Ping、TCP/UDP扫描)、端口扫描、操作系统和服务识别,以及扫描速度控制。重点讲解了如何排除目标、指定端口和调整扫描速度以适应不同的需求。
1754

被折叠的 条评论
为什么被折叠?



