最新Nmap入门技术
字数 2020 2025-08-18 11:35:32

Nmap 网络扫描工具详解

一、Nmap 简介

Nmap (Network Mapper) 是一款开放源代码的网络探测和安全审核工具,主要用于:

  • 快速扫描大型网络
  • 主机探测与发现
  • 开放端口检测
  • 操作系统与服务指纹识别
  • WAF 识别
  • 常见安全漏洞检测

相关组件

  • 图形化界面:Zenmap
  • 分布式框架:DNmap

二、Nmap 主要功能

  1. 主机探测:发现网络上的存活主机和开放特定端口的主机
  2. 端口扫描:探测目标主机开放的端口
  3. 版本检测:识别网络服务名称及版本号
  4. 系统检测:识别操作系统及网络设备硬件特性
  5. 脚本探测:使用 NSE (Nmap Scripting Engine) 和 Lua 编程语言编写探测脚本

三、Nmap 安装

从 Nmap 官网下载安装包,按照提示完成安装即可。

四、Nmap 扫描参数详解

1. 目标设置参数

  • -iL:从文件导入目标主机或网段
  • -iR:随机选择目标主机
  • --exclude:排除指定主机或网段
  • --excludefile:从文件导入要排除的主机或网段

2. 主机发现参数

  • -sL:列表扫描,仅列举目标IP,不进行主机发现
  • -sn:Ping扫描,只进行主机发现,不扫描端口
  • -Pn:跳过主机发现,假设所有主机都已开启
  • -PS/PA/PU/PY[portlist]:使用TCP SYN/ACK或SCTP INIT/ECHO方式发现主机
  • -PE/PP/PM:使用ICMP echo/timestamp/netmask请求包发现主机
  • -PO[protocollist]:使用IP协议包探测主机
  • -n/-R:不进行DNS解析/总是进行DNS解析
  • --dns-servers <serv1[,serv2],...>:指定DNS服务器
  • --system-dns:使用系统DNS服务器
  • --traceroute:追踪路由节点

3. 端口扫描方法

  • -sS/sT/sA/sW/sM:TCP SYN/Connect()/ACK/Window/Maimon扫描
  • -sU:UDP扫描
  • -sN/sF/sX:TCP Null/FIN/Xmas秘密扫描
  • --scanflags <flags>:定制TCP包flags
  • -sI <zombie host[:probeport]>:Idle扫描(需僵尸主机)
  • -sY/sZ:SCTP INIT/COOKIE-ECHO扫描
  • -sO:IP协议扫描
  • -b <FTP relay host>:FTP bounce扫描

4. 端口参数与扫描顺序

  • -p <port ranges>:扫描指定端口
  • -F:快速模式,仅扫描Top100端口
  • -r:不随机打乱端口顺序
  • --top-ports <number>:扫描最可能开放的指定数量端口
  • --port-ratio <ratio>:扫描开放概率高于指定值的端口

5. 版本侦测参数

  • -sV:启用版本侦测
  • --version-intensity <level>:设置侦测强度(0-9,默认7)
  • --version-light:轻量级侦测
  • --version-all:尝试所有probes
  • --version-trace:显示详细侦测过程

五、常用扫描命令

基本扫描格式

nmap [扫描参数] [目标地址或网段]

示例命令

  1. 完整扫描示例

    nmap -T4 -A -v ip
    
    • -T4:高速时序
    • -A:进攻性扫描
    • -v:显示详细信息
  2. 扫描单个目标

    nmap 10.172.10.254
    
  3. 扫描多个目标

    nmap 10.172.10.254 10.172.10.2
    
  4. 扫描连续范围

    nmap 10.172.10.1-10
    
  5. 扫描整个网段

    nmap 10.172.10.1/24
    
  6. 从文件导入目标

    nmap -iL targets.txt
    
  7. 排除特定目标

    nmap 10.172.10.1/24 --exclude 10.172.10.100
    
  8. 从文件排除目标

    nmap 10.172.10.1/24 --excludefile exclude.txt
    
  9. 扫描指定端口

    nmap 10.172.10.254 -p 21,22,23,80
    
  10. 路由跟踪

    nmap --traceroute 10.172.10.254
    
  11. 探测网段在线主机

    nmap -sP 10.172.10.1/24
    
  12. 操作系统识别

    nmap -O 192.168.0.105
    
  13. 服务版本检测

    nmap -sV 10.172.10.254
    
  14. 探测防火墙状态

    nmap -sF -T4 10.172.10.38
    

六、端口状态解释

Nmap 扫描结果中端口可能显示以下状态:

状态 含义
open 端口开放,应用程序正在监听
filtered 端口被防火墙/网络设备阻止
closed 端口关闭,目标主机未开启该端口
unfiltered Nmap无法确定状态,需进一步探测
open/filtered 可能是开放的或被过滤的
closed/filtered 可能是关闭的或被过滤的

七、实用技巧

  1. 时序选择-T0(极慢)到-T5(极快),网络状况好时推荐-T4

  2. 隐蔽扫描

    • 使用-sS(SYN扫描)比-sT(完全连接扫描)更隐蔽
    • -sN/-sF/-sX秘密扫描方式可绕过简单防火墙
  3. 服务识别:结合-sV--version-intensity可提高版本识别准确度

  4. 脚本引擎:使用--script参数调用NSE脚本进行高级探测

  5. 结果输出:使用-oN(普通)、-oX(XML)、-oG(Grepable)等参数保存扫描结果

Nmap 网络扫描工具详解 一、Nmap 简介 Nmap (Network Mapper) 是一款开放源代码的网络探测和安全审核工具,主要用于: 快速扫描大型网络 主机探测与发现 开放端口检测 操作系统与服务指纹识别 WAF 识别 常见安全漏洞检测 相关组件 : 图形化界面:Zenmap 分布式框架:DNmap 二、Nmap 主要功能 主机探测 :发现网络上的存活主机和开放特定端口的主机 端口扫描 :探测目标主机开放的端口 版本检测 :识别网络服务名称及版本号 系统检测 :识别操作系统及网络设备硬件特性 脚本探测 :使用 NSE (Nmap Scripting Engine) 和 Lua 编程语言编写探测脚本 三、Nmap 安装 从 Nmap 官网下载安装包,按照提示完成安装即可。 四、Nmap 扫描参数详解 1. 目标设置参数 -iL :从文件导入目标主机或网段 -iR :随机选择目标主机 --exclude :排除指定主机或网段 --excludefile :从文件导入要排除的主机或网段 2. 主机发现参数 -sL :列表扫描,仅列举目标IP,不进行主机发现 -sn :Ping扫描,只进行主机发现,不扫描端口 -Pn :跳过主机发现,假设所有主机都已开启 -PS/PA/PU/PY[portlist] :使用TCP SYN/ACK或SCTP INIT/ECHO方式发现主机 -PE/PP/PM :使用ICMP echo/timestamp/netmask请求包发现主机 -PO[protocollist] :使用IP协议包探测主机 -n/-R :不进行DNS解析/总是进行DNS解析 --dns-servers <serv1[,serv2],...> :指定DNS服务器 --system-dns :使用系统DNS服务器 --traceroute :追踪路由节点 3. 端口扫描方法 -sS/sT/sA/sW/sM :TCP SYN/Connect()/ACK/Window/Maimon扫描 -sU :UDP扫描 -sN/sF/sX :TCP Null/FIN/Xmas秘密扫描 --scanflags <flags> :定制TCP包flags -sI <zombie host[:probeport]> :Idle扫描(需僵尸主机) -sY/sZ :SCTP INIT/COOKIE-ECHO扫描 -sO :IP协议扫描 -b <FTP relay host> :FTP bounce扫描 4. 端口参数与扫描顺序 -p <port ranges> :扫描指定端口 -F :快速模式,仅扫描Top100端口 -r :不随机打乱端口顺序 --top-ports <number> :扫描最可能开放的指定数量端口 --port-ratio <ratio> :扫描开放概率高于指定值的端口 5. 版本侦测参数 -sV :启用版本侦测 --version-intensity <level> :设置侦测强度(0-9,默认7) --version-light :轻量级侦测 --version-all :尝试所有probes --version-trace :显示详细侦测过程 五、常用扫描命令 基本扫描格式 示例命令 完整扫描示例 : -T4 :高速时序 -A :进攻性扫描 -v :显示详细信息 扫描单个目标 : 扫描多个目标 : 扫描连续范围 : 扫描整个网段 : 从文件导入目标 : 排除特定目标 : 从文件排除目标 : 扫描指定端口 : 路由跟踪 : 探测网段在线主机 : 操作系统识别 : 服务版本检测 : 探测防火墙状态 : 六、端口状态解释 Nmap 扫描结果中端口可能显示以下状态: | 状态 | 含义 | |------|------| | open | 端口开放,应用程序正在监听 | | filtered | 端口被防火墙/网络设备阻止 | | closed | 端口关闭,目标主机未开启该端口 | | unfiltered | Nmap无法确定状态,需进一步探测 | | open/filtered | 可能是开放的或被过滤的 | | closed/filtered | 可能是关闭的或被过滤的 | 七、实用技巧 时序选择 : -T0 (极慢)到 -T5 (极快),网络状况好时推荐 -T4 隐蔽扫描 : 使用 -sS (SYN扫描)比 -sT (完全连接扫描)更隐蔽 -sN / -sF / -sX 秘密扫描方式可绕过简单防火墙 服务识别 :结合 -sV 和 --version-intensity 可提高版本识别准确度 脚本引擎 :使用 --script 参数调用NSE脚本进行高级探测 结果输出 :使用 -oN (普通)、 -oX (XML)、 -oG (Grepable)等参数保存扫描结果