跳到主要内容

nmap 基本介绍

Nmap(Network Mapper)是一款开源的网络扫描工具,广泛用于网络发现和安全审计。它能够扫描网络中的主机、端口和服务,并提供详细的网络拓扑信息。以下是 Nmap 的主要功能和特点:

1. 主机发现

  • Nmap 可以识别网络中的活动主机,支持多种探测技术,如 ICMP ping、TCP SYN 扫描等。

2. 端口扫描

  • 支持多种扫描方式(如 TCP SYN、TCP Connect、UDP 等),检测目标主机上开放的端口及其服务。

3. 服务与版本检测

  • 能够识别端口上运行的服务及其版本信息,帮助管理员了解网络中的服务配置。

4. 操作系统检测

  • 通过分析网络栈特征,Nmap 可以推测目标主机的操作系统类型。

5. 脚本扫描

  • Nmap 支持 NSE(Nmap Scripting Engine),允许用户编写脚本进行自动化任务,如漏洞检测、服务枚举等。

6. 输出格式

  • 支持多种输出格式(文本、XML、Grepable 等),便于与其他工具集成或生成报告。

7. 灵活性

  • 提供丰富的命令行选项,用户可以根据需求定制扫描行为。

8. 跨平台

  • 支持 Windows、Linux、macOS 等多种操作系统。

基本使用

1.主机发现

  • ICMP Echo 请求(Ping 扫描)

发送 ICMP Echo 请求包,检测目标是否响应。

# 扫描整个子网,列出活动的主机
nmap -sn 192.168.123.0/24
nmap -sn 192.168.123.0-100
# 扫描本地网络使用ARP协议进行请求,扫描远程网络使用了ICMP协议,还会利用TCP SYN和TCP ACK进行主机发现
# 像windows服务,防火墙默认会屏蔽所有的ICMP包,使用no ping绕过防火墙
nmap -Pn 192.168.123.11
  • TCP SYN Ping

向目标主机的指定端口发送 TCP SYN 包,检测是否响应。

nmap -PS 192.168.1.1
  • UDP Ping

向目标主机的指定端口发送 UDP 包,检测是否响应。

nmap -PU 192.168.1.1
  • ARP Ping

在局域网中使用 ARP 请求检测活动主机(仅适用于本地网络)。

nmap -PR 192.168.1.0/24
  • 组合探测

使用多种探测技术提高准确性。

nmap -sn -PE -PS 21,22,80 192.168.1.0/24

主机发现常用选项:

  • -sn:仅进行主机发现,不扫描端口。
  • -PE:使用 ICMP Echo 请求。
  • -PS:使用 TCP SYN Ping。
  • -PU:使用 UDP Ping。
  • -PR:使用 ARP Ping(适用于本地网络)。
  • -n:禁用 DNS 解析,加快扫描速度。

2.端口扫描

  • TCP SYN 扫描(半开放扫描)

    发送 TCP SYN 包,检测目标端口是否开放。这是最常用的扫描方式,速度快且隐蔽。

    nmap -sS 192.168.1.1

image-20250224231122206

image-20250224231347371

  • TCP Connect 扫描 使用操作系统的 connect() 函数完成 TCP 三次握手,检测端口是否开放。

    nmap -sT 192.168.1.1

image-20250224231008488

image-20250224231241782

  • UDP 扫描 检测目标主机上的 UDP 端口是否开放。

    nmap -sU 192.168.1.1
  • ACK 扫描 发送 TCP ACK 包,用于检测防火墙规则。

    nmap -sA 192.168.1.1
  • FIN 扫描 发送 TCP FIN 包,用于绕过某些防火墙。

    nmap -sF 192.168.1.1

端口扫描常用选项:

  • -p:指定扫描的端口范围。

    # 仅扫描TCP端口
    nmap -p 1-1000 192.168.1.1 # 扫描1到1000端口
    nmap -p 80,443 192.168.1.1 # 扫描80和443端口
    nmap -p- 192.168.1.1 # 扫描所有端口(1-65535)
  • -F:快速扫描,仅扫描常用端口。

  • --top-ports:扫描最常见的 N 个端口。

    nmap --top-ports 100 192.168.1.1
  • -sV:检测端口上运行的服务版本。

    nmap -sV 192.168.1.1
  • -O:检测目标主机的操作系统。

    nmap -O 192.168.1.1

综合示例

  • 扫描整个子网的主机并检测开放端口

    nmap -sn 192.168.1.0/24
    nmap -sS 192.168.1.0/24
  • 扫描特定主机的常用端口并检测服务版本

    nmap -sV -F 192.168.1.1
  • 扫描特定主机的所有端口并检测操作系统

    nmap -p- -O 192.168.1.1
  • 扫描 UDP 端口

    nmap -sU 192.168.1.1