Nmap与扫描器生态:从Masscan到Burp Suite的网络安全技术全景指南

4 阅读12分钟

Nmap 及其扩展:从 Masscan 到 Burp Suite 的网络与 Web 扫描器探索

Nmap

安装

在 Linux 上

  • 对于基于 Debian/Ubuntu 的系统:
    sudo apt-get update
    sudo apt-get install nmap
    
  • 对于基于 CentOS/RHEL 的系统:
    sudo yum install nmap
    
  • 对于基于 Arch 的系统:
    sudo pacman -S nmap
    

在 Windows 上

  • 从 Nmap 官方网站下载安装程序。
  • 运行安装程序并按照说明操作。

基本扫描技术

  • 扫描单个主机 此命令扫描单个 IP 地址。
    nmap 192.168.1.1
    
  • 扫描多个主机 扫描多个 IP 地址或范围。
    nmap 192.168.1.1 192.168.1.2 192.168.1.3
    nmap 192.168.1.1-3
    
  • 扫描子网 使用 CIDR 表示法扫描整个子网。
    nmap 192.168.1.0/24
    
  • 通过主机名扫描 按主机名扫描,需要进行 DNS 解析。
    nmap example.com
    

端口扫描技术

  • 默认端口扫描 默认情况下,Nmap 扫描最常用的 1000 个端口。
    nmap 192.168.1.1
    
  • 扫描特定端口 指定要扫描的端口。
    nmap -p 22,80,443 192.168.1.1
    
  • 扫描所有端口 扫描全部 65535 个端口。
    nmap -p- 192.168.1.1
    
  • 高级扫描选项
    • TCP 连接扫描:如果 SYN 扫描不可用,则使用 TCP 连接扫描。
      nmap -sT 192.168.1.1
      
    • SYN 扫描(隐蔽扫描):SYN 扫描速度更快且更隐蔽,需要 root 权限。
      nmap -sS 192.168.1.1
      
    • UDP 扫描:扫描 UDP 端口(比 TCP 扫描慢)。
      nmap -sU 192.168.1.1
      
    • 全面扫描:结合多种选项进行全面扫描。
      nmap -sS -sU -T4 -A -v 192.168.1.1
      
      选项说明:
      • -sS: SYN 扫描。
      • -sU: UDP 扫描。
      • -T4: 时间模板(更快)。
      • -A: 启用操作系统检测、版本检测、脚本扫描和路由追踪。
      • -v: 详细输出。

服务和版本检测

  • 版本检测 确定开放端口上运行的服务版本。
    nmap -sV 192.168.1.1
    
  • 积极的服务检测 使用积极的检测技术以获取更多信息。
    nmap -A 192.168.1.1
    

操作系统检测

  • 基本操作系统检测 识别目标的操作系统。
    nmap -O 192.168.1.1
    

Nmap 脚本引擎(NSE)

Nmap 的脚本引擎允许执行复杂任务,如漏洞检测和利用。脚本存储在 Nmap 安装目录的 scripts 目录中。

  • 运行默认脚本 运行一组默认脚本。

    nmap -sC 192.168.1.1
    
  • 运行特定脚本 指定要运行的单个脚本。

    nmap --script=http-enum 192.168.1.1
    
  • 运行脚本类别 运行某一类别的脚本。

    nmap --script=default,vuln 192.168.1.1
    
  • 常见脚本类别:

    • auth: 认证脚本。
    • broadcast: 网络广播脚本。
    • default: 默认脚本。
    • discovery: 主机发现脚本。
    • dos: 拒绝服务脚本。
    • exploit: 漏洞利用脚本。
    • external: 依赖外部资源的脚本。
    • fuzzer: 模糊测试脚本。
    • intrusive: 侵入性脚本。
    • malware: 恶意软件检测脚本。
    • safe: 安全脚本。
    • version: 服务版本检测脚本。
    • vuln: 漏洞检测脚本。
  • 示例:漏洞扫描 扫描目标是否存在漏洞。

    nmap --script vuln 192.168.1.1
    

输出选项

  • 正常输出 将正常输出保存到文件。
    nmap -oN output.txt 192.168.1.1
    
  • XML 输出 将输出保存为 XML 格式。
    nmap -oX output.xml 192.168.1.1
    
  • Grepable 输出 将输出保存为适合 grep 命令的格式。
    nmap -oG output.gnmap 192.168.1.1
    
  • 保存所有格式 将输出保存为正常、XML 和 grepable 格式。
    nmap -oA output 192.168.1.1
    

计时与性能

  • 计时模板 使用计时模板控制扫描速度。
    nmap -T0 192.168.1.1  # 偏执的(最慢,用于规避 IDS)
    nmap -T1 192.168.1.1  # 偷偷摸摸的
    nmap -T2 192.168.1.1  # 礼貌的
    nmap -T3 192.168.1.1  # 正常的
    nmap -T4 192.168.1.1  # 积极的
    nmap -T5 192.168.1.1  # 疯狂的(最快)
    
  • 分片数据包 使用微小的分片 IP 数据包以规避数据包过滤器。
    nmap -f 192.168.1.1
    
  • 随机化主机顺序 以随机顺序扫描主机以规避检测。
    nmap --randomize-hosts 192.168.1.0/24
    

Nmap 的替代品

1. Masscan

  • 概述 Masscan 以其高速扫描能力而闻名,专为快速执行大规模扫描而设计。由于其高效的网络堆栈,它可以在几分钟内扫描整个互联网。
  • 安装
    • 在 Linux 上
      • 对于基于 Debian/Ubuntu 的系统:
        sudo apt-get install masscan
        
      • 对于其他系统,可以从源代码编译:
        git clone https://github.com/robertdavidgraham/masscan
        cd masscan
        make
        sudo make install
        
  • 用法
    • 基本端口扫描
      masscan -p 1-65535 192.168.1.0/24
      
      • -p 1-65535: 扫描从 1 到 65535 的所有端口。
      • 192.168.1.0/24: 指定目标网络范围。
    • 控制扫描速度 为避免网络过载,控制每秒发送的数据包速率:
      masscan -p 80 --rate=1000 192.168.1.0/24
      
      • --rate=1000: 每秒发送 1000 个数据包。
  • 提示
    • 效率:Masscan 专为速度而设计,但对某些网络来说可能过于激进。请调整速率并谨慎使用。
    • 输出:使用 --output-format 选项以不同格式(如 JSON 或 XML)获取输出。

2. ZMap

  • 概述 ZMap 是一款用于大规模互联网调查的高性能网络扫描器。它可以高效地扫描整个 IPv4 地址空间。
  • 安装
    • 在 Linux 上
      • 对于基于 Debian/Ubuntu 的系统:
        sudo apt-get install zmap
        
      • 对于其他系统,可以从源代码编译:
        git clone https://github.com/zmap/zmap
        cd zmap
        mkdir build
        cd build
        cmake ..
        make
        sudo make install
        
  • 用法
    • 基本扫描
      zmap -p 80 192.168.1.0/24
      
      • -p 80: 扫描 80 端口。
      • 192.168.1.0/24: 指定目标网络范围。
    • 带速率控制的扫描 控制扫描速率以避免网络过载:
      zmap -p 80 -r 1000 192.168.1.0/24
      
      • -r 1000: 将速率限制为每秒 1000 个数据包。
  • 提示
    • 速度:ZMap 非常快,但会产生大量流量。请使用速率控制并监控网络影响。
    • 输出:结果默认通常为 JSON 格式。使用 -o 指定输出文件路径。

3. OpenVAS(Greenbone 漏洞管理器)

  • 概述 OpenVAS 是一款开源漏洞扫描器,提供全面的安全评估。它包括一个强大的 Web 界面,用于管理和审查扫描。
  • 安装
    • 在 Linux 上 对于基于 Debian/Ubuntu 的系统:
      sudo apt-get install openvas
      sudo gvm-setup
      
      gvm-setup 初始化设置,包括更新漏洞数据库。
  • 用法
    • 访问 Web 界面:OpenVAS 通过 Web 界面进行管理,通常可通过 https://localhost:9392 访问。
    • 基本扫描
      1. 登录 Web 界面。
      2. 创建新的扫描配置。
      3. 指定目标和扫描参数。
      4. 启动扫描并通过界面查看结果。
  • 提示
    • 配置:OpenVAS 需要初始配置和更新。确保漏洞数据库是最新的。
    • 扫描选项:OpenVAS 为扫描提供详细的配置选项,包括选择特定的漏洞测试。

4. Nessus

  • 概述 Nessus 是一款广泛使用的商业漏洞扫描器,提供深入的扫描和报告功能。它拥有广泛的插件支持,适用于企业环境。
  • 用法
    • 访问 Web 界面:Nessus 通过 Web 界面管理,通常可通过 https://localhost:8834 访问。
    • 基本扫描
      1. 登录 Web 界面。
      2. 通过选择适当的模板(例如,基本网络扫描)创建新扫描。
      3. 配置扫描设置,包括目标 IP 地址。
      4. 启动扫描并在界面中查看结果。
  • 提示
    • 插件:Nessus 使用插件执行漏洞检查。确保插件是最新的。
    • 许可:Nessus 有免费版(家庭版)和付费版(专业版)。专业版提供更多功能和支持。

5. Nikto

  • 概述 Nikto 是一款 Web 服务器扫描器,用于识别 Web 服务器中潜在的漏洞。它会检查过时的软件和已知漏洞。
  • 安装
    • 在 Linux 上
      • 对于基于 Debian/Ubuntu 的系统:
        sudo apt-get install nikto
        
      • 对于其他系统,可以从源码下载并安装:
        git clone https://github.com/sullo/nikto
        cd nikto
        
  • 用法
    • 基本扫描
      nikto -h http://192.168.1.1
      
      • -h: 指定目标 URL 或 IP 地址。
    • 带附加选项的扫描
      nikto -h http://192.168.1.1 -p 80,443 -T 2
      
      • -p 80,443: 扫描特定端口。
      • -T 2: 设置计时模板(2 表示礼貌的)。
  • 提示
    • Web 安全:Nikto 专门用于 Web 服务器安全。可与其他工具一起使用,进行全面的 Web 应用评估。
    • 定制:使用配置文件或命令行选项定制扫描,以专注于特定测试。

6. Angry IP Scanner

  • 概述 Angry IP Scanner 是一款轻量级网络扫描器,具有图形用户界面(GUI)。它对于快速扫描 IP 地址和端口很有用。
  • 安装
    • 从 Angry IP Scanner 网站下载。
    • 按照适用于您的操作系统的安装说明进行操作。
  • 用法
    • GUI 操作:通过 GUI 操作。打开应用程序并指定 IP 范围和端口范围进行扫描。
    • 扫描结果:结果在 GUI 中显示,并可导出为 CSV 或 TXT 格式。
  • 提示
    • 易用性:适合快速扫描和喜欢 GUI 而不是命令行工具的用户。
    • 局限性:与 Nmap 等更高级的工具相比,基本扫描能力有限。

7. Scanless

  • 概述 Scanless 是一款使用在线服务执行隐蔽端口扫描以规避检测的工具。
  • 安装
    • 在 Linux 上
      sudo apt-get install scanless
      
  • 用法
    • 基本扫描
      scanless -l 192.168.1.1
      
      • -l: 使用在线服务执行扫描。
  • 提示
    • 隐蔽性:适合避免直接检测。结果通过第三方服务获得。
    • 服务可用性:在线服务的可用性和可靠性可能有所不同。

8. Arachni

  • 概述 Arachni 是一款功能丰富的 Web 应用程序安全扫描器,旨在发现 Web 应用程序中的漏洞。
  • 安装
    • 从 Arachni 网站下载。
    • 按照安装说明进行操作。
  • 用法
    • 基本扫描
      arachni http://192.168.1.1
      
      对指定的 URL 运行扫描。
    • 高级选项
      arachni --checks sqli http://192.168.1.1
      
      • --checks sqli: 运行特定的漏洞检查(例如,SQL 注入)。
  • 提示
    • Web 安全焦点:最适合进行全面的 Web 应用程序安全评估。
    • 配置:提供许多配置选项,用于定制扫描。

9. Burp Suite

  • 概述 Burp Suite 是一款流行的 Web 应用程序安全测试工具,具有扫描和分析功能。
  • 安装
    • 从 PortSwigger 网站下载。
    • 按照安装说明进行操作。
  • 用法
    • GUI 操作:通过图形用户界面操作。
    • 扫描设置:通过 GUI 设置扫描,包括配置爬取和扫描参数。
    • 基本扫描
      1. 打开 Burp Suite。
      2. 将您的浏览器配置为使用 Burp Suite 作为代理。
      3. 通过代理导航到目标 Web 应用程序以捕获请求。
      4. 使用 Scanner 工具执行自动漏洞评估。
  • 提示
    • 高级功能:专业版提供高级扫描和分析功能,包括与其他工具和扩展的集成。
    • 定制:Burp Suite 允许广泛定制扫描和爬取设置。

工具对比

网络扫描器

  1. Nmap 与 Masscan

    • Nmap:
      • 用例:全面的网络探索和安全审计。
      • 优势:提供详细扫描,具有广泛的服务和版本检测、操作系统指纹识别和脚本选项。适用于深入分析和较小规模的扫描。
      • 何时使用:当需要关于目标的详细信息,包括开放端口、服务和漏洞,并且为了准确性可以接受较慢的扫描速度时。
    • Masscan:
      • 用例:大规模高速端口扫描。
      • 优势:速度极快且高效,能够在几分钟内扫描整个互联网。适用于大规模侦察。
      • 何时使用:当速度至关重要,并且需要快速扫描大型网络或互联网时。在像 Nmap 这样更详细的工具之前,将其用作识别活跃主机和开放端口的初步扫描。
  2. ZMap 与 Masscan

    • ZMap:
      • 用例:大规模互联网范围的调查。
      • 优势:在扫描大型 IPv4 地址空间方面效率高,专注于速度和可扩展性。
      • 何时使用:用于进行大规模调查和绘制互联网地图。适用于学术或大规模安全研究项目。
    • Masscan:
      • 用例:高速端口扫描,与 ZMap 类似,但因其易用性和灵活性而常受青睐。
      • 优势:提供高速扫描,并支持一系列端口扫描技术。
      • 何时使用:用于小规模的高速端口扫描,或需要快速评估大型网络时。

漏洞扫描器

  • OpenVAS 与 Nessus
    • OpenVAS:
      • 用例:带有 Web 界面的开源漏洞扫描。
      • 优势:免费使用,拥有广泛的漏洞测试库和用户友好的界面。
      • 何时使用:当您需要一个免费的开源漏洞扫描器,具有全面的功能,并且不介意花费时间进行设置和维护时。
    • Nessus:
      • 用例:具有广泛插件支持的商业漏洞扫描。
      • 优势:提供高级功能、广泛的插件支持,非常适合企业环境。
      • 何时使用:当您需要一个可靠的专业级扫描器,具有频繁更新和高级支持时。适用于对漏洞管理有特定要求的组织。

Web 应用扫描器

  • Nikto 与 Burp Suite
    • Nikto:
      • 用例:扫描 Web 服务器以发现已知漏洞和错误配置。
      • 优势:快速,专注于 Web 服务器漏洞,使用起来简单直接。
      • 何时使用:当您需要快速评估 Web 服务器安全性,并且主要关注服务器级别的问题而不是特定于应用程序的漏洞时。
    • Burp Suite:
      • 用例:全面的 Web 应用程序安全测试。
      • 优势:具有扫描、爬取和分析 Web 应用程序的广泛功能,包括识别复杂漏洞(如 SQL 注入、XSS 等)的高级能力。
      • 何时使用:当您需要对 Web 应用程序安全进行详细和彻底的分析时。适用于对 Web 应用程序进行深入测试,以及需要高级工具和定制化的用户。

附加工具

  • Angry IP Scanner

    • 用例:带有 GUI 的轻量级网络扫描。
    • 优势:易于使用,可快速进行 IP 和端口扫描。
    • 何时使用:用于快速网络扫描,并且首选图形界面。不如其他工具详细,但适合基本网络侦察。
  • Scanless

    • 用例:使用在线服务进行隐蔽端口扫描。
    • 优势:通过使用第三方服务避免直接检测。
    • 何时使用:当您想要在不直接与目标网络交互的情况下执行扫描时,这对于规避检测很有用。
  • Arachni

    • 用例:详细的 Web 应用程序安全扫描。
    • 优势:用于查找 Web 应用程序漏洞的综合工具,具有广泛的配置选项。
    • 何时使用:当您需要对 Web 应用程序进行详细的安全评估,并且需要针对特定漏洞的可定制扫描时。FINISHED CSD0tFqvECLokhw9aBeRqgSiAqVe48+7NFsYcViW/ddNEq7XrC9L2rtn4KEpb2/pUCdmLMkOSw4W9whoD144q75HMfQabiny/42/YeEFTOzVhRDTYsLWyh87yswbaS0tXabs3A/I8iBVn80ZtZliAJExKv8Qm3+HRuQt84P1B+s=