Nmap扫描命令大全?

wen 网络安全 3

本文目录导读:

Nmap扫描命令大全?

  1. 目录导读
  2. Nmap是什么?为什么网络安全从业者必备?
  3. Nmap基础安装与环境配置
  4. 核心扫描命令分类详解
  5. 实战场景命令组合
  6. 常见问题Q&A
  7. 高级技巧与注意事项

Nmap扫描命令大全:从入门到精通,掌握网络侦察的终极利器

目录导读

  1. Nmap是什么?为什么网络安全从业者必备?
  2. Nmap基础安装与环境配置
  3. 核心扫描命令分类详解
    • 1 主机发现扫描
    • 2 端口扫描类型
    • 3 服务与版本探测
    • 4 操作系统指纹识别
    • 5 脚本引擎扫描
  4. 实战场景命令组合
  5. 常见问题Q&A
  6. 高级技巧与注意事项

Nmap是什么?为什么网络安全从业者必备?

Nmap(Network Mapper)是一款开源的网络探测和安全审计工具,诞生于1997年,由Gordon Lyon(Fyodor)开发,它被全球安全专家、系统管理员和渗透测试人员广泛使用,能够快速发现网络上的设备、开放端口、运行的服务、操作系统类型以及潜在的漏洞,在信息化时代,无论是企业内网安全评估、渗透测试,还是家庭网络排查,Nmap都是不可或缺的瑞士军刀。

核心价值:

  • 资产发现:识别网络中存活的主机。
  • 端口扫描:检测哪些端口开放,对应哪些服务。
  • 漏洞初探:通过服务版本与脚本引擎发现已知漏洞。
  • 隐蔽性:支持多种扫描方式,可规避防火墙和入侵检测系统。

Nmap基础安装与环境配置

Linux(Ubuntu/Debian)

sudo apt update && sudo apt install nmap -y

macOS

brew install nmap

Windows

从官网[nmap.org]下载安装包,或通过Chocolatey安装:

choco install nmap

验证安装:

nmap --version

输出类似:Nmap version 7.94 ( https://nmap.org )

核心扫描命令分类详解

1 主机发现扫描

目标:快速判断哪些IP地址的主机在线。

# 默认Ping扫描(发送ICMP echo请求和SYN到80端口)
nmap -sn 192.168.1.0/24
# 无Ping扫描(绕过防火墙的ICMP拦截)
nmap -Pn 192.168.1.0/24
# ARP扫描(局域网内最快)
nmap -PR 192.168.1.0/24

技巧-sn等同于-sP,早期版本用后者,对于内网环境,-PR利用ARP协议,速度极快且不易被防火墙拦截。

2 端口扫描类型

这是Nmap的灵魂——不同的扫描类型决定了隐蔽性与效率的平衡。

扫描类型 命令参数 特点 适用场景
TCP SYN扫描(半开扫描) -sS 速度快,隐蔽性好,不完成三次握手 默认扫描,最常用
TCP Connect扫描 -sT 完成三次握手,日志记录明显 无root权限时使用
UDP扫描 -sU 速度慢,需UDP响应 检测DNS、SNMP等服务
空扫描 -sN 不设置任何标志位 绕过某些防火墙规则
FIN扫描 -sF 只发FIN包 规避无状态防火墙
Xmas扫描 -sX 设置FIN、PSH、URG标志 类似FIN扫描,更隐蔽

示例命令:

# 半开扫描常见端口(默认1000个端口)
nmap -sS 192.168.1.1
# 扫描全部65535个端口(耗时较长)
nmap -sS -p- 192.168.1.1
# 指定端口范围
nmap -sS -p 22,80,443,3389 192.168.1.1
# UDP扫描(示例扫描53端口)
nmap -sU -p 53,161 192.168.1.1

3 服务与版本探测

仅仅知道端口开放还不够,还需要识别其运行的服务和版本号,用于后续漏洞评估。

# 版本探测(-sV)
nmap -sV 192.168.1.1
# 增加扫描强度(-sV --version-intensity 9,0-9级,9最详细)
nmap -sV --version-intensity 9 192.168.1.1
# 结合端口扫描
nmap -sS -sV -p 22,80 192.168.1.1

输出示例:

22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.1 (Ubuntu Linux; protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.57 ((Debian))

4 操作系统指纹识别

通过分析网络数据包的不同特征,推断目标操作系统类型。

# 操作系统检测(-O)
nmap -O 192.168.1.1
# 增强探测(--osscan-guess 更激进地猜测)
nmap -O --osscan-guess 192.168.1.1

注意:该功能需要扫描至少一个开放端口和关闭端口,结果仅供参考。

5 脚本引擎扫描(NSE)

Nmap的扩展脚本库包含数百个脚本,用于漏洞检测、服务枚举、暴力破解等。

# 使用默认脚本扫描(安全检测)
nmap -sC 192.168.1.1
# 指定特定脚本(如检测HTTP漏洞)
nmap --script=http-vuln-cve2017-5638 192.168.1.1
# 更新脚本库
sudo nmap --script-updatedb

常用脚本举例:

  • smb-enum-shares:枚举Windows共享文件夹。
  • dns-brute:DNS域名爆破。
  • ssh-brute:SSH弱口令测试。

实战场景命令组合

内网快速资产发现

nmap -sn 192.168.0.0/16 | grep "Nmap done" -A 100  # 扫描整个C段

深度渗透测试

nmap -sS -sV -O -sC -p- target.com -oA full_scan

参数解释:

  • -sS:半开扫描。
  • -sV:版本探测。
  • -O:操作系统识别。
  • -sC:默认脚本扫描。
  • -p-:全端口。
  • -oA:输出所有格式(.nmap、.gnmap、.xml)。

规避防火墙

# 分段扫描 + 慢速
nmap -sS --scan-delay 1s -T2 target.com
# 随机化目标端口
nmap --randomize-hosts -p 80,443 192.168.1.0/24

常见问题Q&A

Q1:Nmap扫描被防火墙拦截怎么办?

A:尝试以下方法:

  • 使用 -Pn 跳过Ping检测。
  • 改用 -sT(Connect扫描)或 -sS 结合 --source-port 53 伪装成DNS流量。
  • 增加 -f 分片数据包,或 --mtu 24 设置小MTU。
  • 降低扫描速度(-T1-T0)。

Q2:为什么UDP扫描这么慢?

A:UDP协议无握手机制,必须等待超时判断端口是否开放,建议使用 --max-rtt-timeout--min-rtt-timeout 调整超时参数,或仅扫描常用UDP端口。

Q3:扫描结果中服务版本不对,如何提高准确率?

A:增加版本强度(--version-intensity 9),或者使用 --version-all 尝试所有探针,对于非标准端口服务,可以手动指定端口扫描(-p)。

Q4:Nmap脚本扫描是否属于入侵行为?

A:脚本扫描可能触发警报,尤其是在生产环境,务必获得授权后再进行,未经许可扫描他人网络违法。

高级技巧与注意事项

输出格式化

# 输出为可阅读文本
nmap -oN result.txt target.com
# XML格式(便于程序解析)
nmap -oX result.xml target.com
# grepable格式
nmap -oG result.gnmap target.com

速度控制

  • -T0(极慢)到 -T5(疯狂模式)。
  • 实战推荐:内网用 -T4,外网用 -T3-T2 降低阈值。

躲避检测

  • 使用 --spoof-mac 伪造MAC地址。
  • 利用 -D 诱饵扫描(nmap -D 192.168.1.10,192.168.1.20 target.com)。
  • 代理扫描:nmap --proxies http://proxyIP:port target.com

权限要求

  • 半开扫描(-sS)、SYN扫描、UDP扫描需要root/sudo权限。
  • 普通用户默认只能使用Connect扫描(-sT)、版本探测和脚本扫描。

安全提示:Nmap是双刃剑,建议在隔离的测试环境中练习,或获取书面授权后再应用于生产网络,错误使用可能导致网络瘫痪或法律风险。


通过本文详细梳理,从基础安装到高级组合命令,再到Q&A答疑,你已掌握Nmap扫描的核心用法,建议每天练习一个场景,如扫描自家路由器、测试本地虚拟机,逐步建立对网络拓扑的直觉判断,持续关注nmap.org的更新,脚本库每月都有新脚本加入,保持学习是安全从业者的基本功。

抱歉,评论功能暂时关闭!