您好,欢迎来到好土汽车网。
搜索
您的当前位置:首页深入理解 Nmap:网络扫描与渗透测试的必备工具

深入理解 Nmap:网络扫描与渗透测试的必备工具

来源:好土汽车网

目录


简介

Nmap(Network Mapper)是一款开源的网络扫描和安全审计工具。它广泛用于发现网络中的主机、服务以及操作系统等信息。Nmap 强大的扫描功能使其成为网络安全人员、渗透测试人员以及系统管理员的重要工具。


用法

Nmap 的基本用法如下:

nmap [扫描类型] [选项] {目标指定内容}

目标指定

你可以通过以下方式指定扫描目标:

  • 主机名scanme.nmap.org
  • IP 地址192.168.0.1
  • 网络192.168.0.0/24
  • 从文件读取-iL <文件名> 从文件中读取目标列表。
  • 随机选择-iR <主机数量> 随机选择目标主机。
  • 排除特定主机--exclude <主机1, 主机2,...> 排除指定的主机或网络。
  • 从文件中排除--excludefile <文件名> 从文件中排除相关内容。

主机发现

主机发现用于确定网络中哪些主机是活动的。常见的主机发现选项如下:

  • -sL:列出要扫描的目标(仅显示)。
  • -sn:Ping 扫描,跳过端口扫描。
  • -Pn:跳过主机发现步骤,直接扫描所有主机。
  • -PS/PA/PU/PY <端口>:针对特定端口进行 TCP SYN/ACK、UDP 或 SCTP 探测。
  • -PE/PP/PM:使用 ICMP 回显、时间戳或子网掩码请求进行探测。
  • --traceroute:追踪到每个主机的网络跃点。

扫描技术

Nmap 提供多种扫描技术,每种适用于不同的情况和需求:

  • -sS:TCP SYN 扫描,速度快但不稳定。
  • -sT:TCP Connect 扫描,稳定但相对较慢。
  • -sA:TCP ACK 扫描,用于防火墙穿透。
  • -sU:UDP 扫描。
  • -sN-sF-sX:TCP Null、FIN 和 Xmas 扫描,避免触发某些防火墙规则。
  • -sO:IP 协议扫描,扫描主机支持的协议。
  • -sI <僵尸主机>:空闲扫描。
  • -b <FTP 中继主机>:FTP 反向扫描。

端口指定及扫描顺序

你可以根据需要指定端口范围,并控制扫描顺序:

  • -p <端口>:指定扫描端口。例如 -p 22-p 1-65535
  • --exclude-ports <端口>:排除特定端口不进行扫描。
  • -F:快速扫描,扫描较少端口。
  • -r:按顺序扫描端口。
  • --top-ports <数量>:扫描最常见的端口。

服务与版本检测

Nmap 支持服务及版本检测,可以帮助你识别开放端口所运行的服务和版本信息:

  • -sV:探测开放端口并确定服务和版本。
  • --version-intensity <级别>:设置版本探测强度,级别从 0 到 9。
  • --version-all:尝试每个探测方法。
  • --version-trace:显示详细的版本探测过程。

脚本扫描

Nmap 提供了丰富的 NSE(Nmap Scripting Engine)脚本,帮助进行漏洞扫描等任务:

  • -sC:启用默认脚本。
  • --script=<脚本名>:指定要运行的脚本。
  • --script-args=<参数>:为脚本提供参数。
  • --script-help=<脚本名>:查看脚本帮助信息。

操作系统检测

Nmap 可以尝试识别目标机器的操作系统:

  • -O:启用操作系统检测。
  • --osscan-limit:将操作系统扫描在有希望的目标上。
  • --osscan-guess:更积极地猜测操作系统。

定时与性能

Nmap 提供了许多定时和性能优化选项,可以加速扫描过程:

  • -T<0-5>:设置定时模板,数值越高,扫描速度越快。
  • --min-rate--max-rate:设置每秒发送的数据包数量。
  • --min-hostgroup--max-hostgroup:设置主机扫描的并发数。

防火墙与入侵检测系统规避

Nmap 提供了多种方法来规避防火墙和入侵检测系统(IDS):

  • -D <诱饵>:使用多个诱饵 IP 地址来掩盖真实的扫描来源。
  • -S <IP 地址>:伪造源 IP 地址。
  • --proxies <代理>:通过代理服务器进行扫描。

输出选项

Nmap 允许将扫描结果以不同格式输出:

  • -oN <文件>:以普通格式输出。
  • -oX <文件>:以 XML 格式输出。
  • -oA <文件>:同时输出三种格式。
  • --reason:显示端口状态的原因。

其他选项

  • -6:启用 IPv6 扫描。
  • -A:启用操作系统检测、版本检测、脚本扫描和追踪路由。
  • -V:显示 Nmap 版本信息。
  • -h:显示帮助信息。

示例

以下是一些常见的 Nmap 扫描示例:

  1. 详细扫描并启用操作系统检测

    nmap -v -A scanme.nmap.org
    
  2. Ping 扫描(仅检测主机是否在线)

    nmap -v -sn 192.168.0.0/16 10.0.0.0/8
    
  3. 随机选择目标进行端口扫描

    nmap -v -iR 10000 -Pn -p 80
    

红队渗透步骤

在渗透测试中,Nmap 扮演着至关重要的角色。以下是一个典型的使用 Nmap 的渗透测试步骤:

  1. 主机发现

    nmap -sn 127.0.0.0/24
    
  2. 端口扫描

    nmap -sT --min-rate 10000 -p- 127.0.0.1 -oA nmapsc/ports
    
  3. 详细信息扫描

    nmap -sT -sV -sC -O -p22,80,443 127.0.0.1 -oA nmapsc/detail
    
  4. UDP 扫描

    nmap -sU --top-ports 20 127.0.0.1 -oA nmapsc/udp
    
  5. 漏洞扫描

    nmap --script=vuln -p22,80,443 127.0.0.1 -oA nmapsc/vuln
    

原理

没有 Nmap 的主机发现

你可以通过手动编写脚本来模拟 Nmap 的主机发现功能。例如,在 Linux 上使用 bash 脚本:

for i in {1..2}; do ping -c 1 -W 1 192.168.3.$i; done

没有 Nmap 的端口扫描

使用旧版 nc 或者伪设备进行端口扫描:

nc -vv -z 192.168.3.120 1-65535

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- howto234.com 版权所有 湘ICP备2022005869号-3

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务