ATT&CK-侦察-主动扫描技术
字数 2511 2025-08-20 18:18:23

主动扫描技术详解

1. 主动扫描概述

主动扫描是指通过网络流量探测受害者基础设施的扫描技术,通过向目标网段主动发送特定探测数据包,然后根据响应结果获取目标资产的存活状态和资产信息。

主动扫描的三个主要目的阶段:

  1. 发现阶段

    • 检测目标网段哪些主机存活(存活IP)
    • 检测存活主机哪些端口开放
  2. 识别阶段

    • 检测开放端口运行哪些协议、服务
    • 检测服务运行在什么操作系统(OS)上
  3. 爬取阶段

    • 目标服务信息抓取,可深入分析

常用工具:Masscan、Zmap、Nmap、curl、openssl、Zgrab2等

2. 存活主机发现技术

2.1 ICMP Ping

原理

  • 使用ICMP协议发送ICMP Echo Request报文
  • 目标主机收到后返回ICMP Echo Reply报文
  • 通过发送ICMP报文并等待回复来测试网络连通性

特点

  • 系统自带,内网终端一般放行该协议
  • 安全设备默认策略通常不对ICMP进行安全分析
  • 没有收到回复不一定表示主机不存活(可能被关闭或拦截)

变种ICMP Ping

  • 发送ICMP其他请求(时间戳请求、信息请求和地址掩码请求)
  • 适用于管理员只关闭了ICMP回显回复功能的情况

ICMP协议基础

  • 网络层协议,面向无连接
  • 用于在IP主机和路由器之间传递控制消息
  • 报文类型包括差错报告报文和控制报文

2.2 ARP Ping

原理

  • 基于ARP协议(地址解析协议)
  • 根据IP地址获取物理地址(MAC地址)
  • 向局域网广播ARP请求报文,收到ARP回复表示主机存活

特点

  • 仅适用于同网段主机探测
  • 依赖于ARP协议的不安全性

ARP欺骗

  • 攻击者发送伪ARP应答报文
  • 导致信息无法到达预期主机或到达错误主机
  • 可用于流量劫持和信息窃取

ARP欺骗防护

  • 静态ARP表项
  • ARP防火墙
  • 端口安全
  • ARP检测

2.3 TCP SYN Ping

原理

  • 发送带SYN标志的TCP空报文(通常指定80端口)
  • 端口开放时返回ACK/SYN报文
  • 端口关闭时返回RST报文
  • 收到任何响应都表示主机存活

特点

  • 基于TCP三次握手的前两次
  • 比ICMP Ping更隐蔽
  • 防火墙可能拦截SYN包

2.4 TCP ACK Ping

原理

  • 直接发送带ACK标志的TCP空报文
  • 目标主机会返回RST报文
  • 结合TCP SYN Ping可提高穿越防火墙能力

2.5 UDP Ping

原理

  • 发送空的UDP数据报(通常使用40或125端口)
  • 端口关闭时返回ICMP端口不可达报文
  • 端口开放时可能无响应

特点

  • 可绕过仅对TCP进行访问控制的防火墙
  • 无响应不能证明主机不存活

2.6 SCTP INIT Ping

SCTP协议特点

  • 流控制传输协议,类似TCP但更安全
  • 面向消息的传输协议
  • 通过四次握手建立连接

探测原理

  • 向目标端口(通常80)发送最小SCTP INIT块
  • 端口关闭时返回ABORT块
  • 端口开放时返回INIT-ACK块
  • 收到任何响应都表示主机存活

2.7 IP Protocol Ping

原理

  • 发送多个IP空报文,在IP头部协议字段设置协议号
  • 如1(ICMP)、2(IGMP)、4(IP in IP)
  • 收到相同协议响应或ICMP协议不可达消息都表示主机存活

2.8 其他发现技术

DNS协议发现

  • 利用内网DNS服务器解析常见二级域名
  • 可发现大量内部业务和IP段

RPC协议发现

  • 访问目标135端口获取RPC map
  • 解析UUID判断可能存在的进程
  • 通过进程判断可能开放的端口

3. 端口扫描与服务识别

3.1 端口状态识别

  • 开放:服务正在监听该端口
  • 关闭:没有服务监听但主机存活
  • 过滤:防火墙/ACL阻止探测到达端口
  • 未过滤:探测到达端口但无法确定状态

3.2 服务识别方法

  1. 端口号匹配

    • 基于IANA分配的知名端口号
    • 简单但不准确(服务可能使用非标准端口)
  2. 协议指纹识别

    • 分析服务对特定探测的响应模式
    • Nmap等工具提供详细的协议指纹库
  3. Banner抓取

    • 连接服务后读取其初始响应信息
    • 可能包含服务名称、版本等信息

4. 操作系统识别

4.1 识别方法

  1. TCP/IP协议栈指纹

    • 不同OS对特定TCP/IP实现的差异
    • 包括初始序列号、窗口大小、TCP选项等
  2. ICMP响应分析

    • 不同OS对ICMP报文的处理方式差异
  3. 服务Banner信息

    • 某些服务会泄露OS信息

4.2 工具实现

  • Nmap的OS检测(-O选项)
  • Xprobe2等专用工具

5. 信息爬取技术

5.1 网页抓取

  • 使用curl等工具获取网页内容
  • 分析网页结构、链接、表单等

5.2 证书爬取

  • 使用openssl获取SSL/TLS证书
  • 分析证书中的组织、有效期等信息

5.3 协议特定信息爬取

  • Zgrab2等工具可自定义爬取协议相关信息
  • 如HTTP头、SMTP欢迎信息等

6. 防御措施

6.1 通用防御

  • 限制ICMP响应
  • 配置防火墙规则
  • 禁用不必要的服务
  • 修改默认Banner信息

6.2 特定防御

  1. SYN攻击防御

    • SYN Cookie
    • 增加backlog队列
    • 减少SYN+ACK重试次数
  2. ARP欺骗防御

    • 静态ARP绑定
    • ARP检测
    • 端口安全
  3. 端口扫描防御

    • 入侵检测系统(IDS)
    • 速率限制
    • 蜜罐技术

7. 工具总结

工具 主要功能
Nmap 全功能扫描,包括主机发现、端口扫描、服务识别、OS检测
Masscan 高速网络扫描,专注于快速发现
Zmap 大规模互联网扫描
curl HTTP/HTTPS内容抓取
openssl SSL/TLS证书爬取
Zgrab2 应用层协议信息抓取

8. 最佳实践

  1. 分阶段扫描

    • 先快速发现存活主机
    • 然后对存活主机进行详细扫描
  2. 隐蔽性考虑

    • 调整扫描速度避免触发防御机制
    • 使用分散的扫描源
  3. 结果验证

    • 重要发现使用多种技术交叉验证
    • 注意误报和漏报
  4. 合法合规

    • 确保扫描行为获得授权
    • 遵守相关法律法规
主动扫描技术详解 1. 主动扫描概述 主动扫描是指通过网络流量探测受害者基础设施的扫描技术,通过向目标网段主动发送特定探测数据包,然后根据响应结果获取目标资产的存活状态和资产信息。 主动扫描的三个主要目的阶段: 发现阶段 : 检测目标网段哪些主机存活(存活IP) 检测存活主机哪些端口开放 识别阶段 : 检测开放端口运行哪些协议、服务 检测服务运行在什么操作系统(OS)上 爬取阶段 : 目标服务信息抓取,可深入分析 常用工具:Masscan、Zmap、Nmap、curl、openssl、Zgrab2等 2. 存活主机发现技术 2.1 ICMP Ping 原理 : 使用ICMP协议发送ICMP Echo Request报文 目标主机收到后返回ICMP Echo Reply报文 通过发送ICMP报文并等待回复来测试网络连通性 特点 : 系统自带,内网终端一般放行该协议 安全设备默认策略通常不对ICMP进行安全分析 没有收到回复不一定表示主机不存活(可能被关闭或拦截) 变种ICMP Ping : 发送ICMP其他请求(时间戳请求、信息请求和地址掩码请求) 适用于管理员只关闭了ICMP回显回复功能的情况 ICMP协议基础 : 网络层协议,面向无连接 用于在IP主机和路由器之间传递控制消息 报文类型包括差错报告报文和控制报文 2.2 ARP Ping 原理 : 基于ARP协议(地址解析协议) 根据IP地址获取物理地址(MAC地址) 向局域网广播ARP请求报文,收到ARP回复表示主机存活 特点 : 仅适用于同网段主机探测 依赖于ARP协议的不安全性 ARP欺骗 : 攻击者发送伪ARP应答报文 导致信息无法到达预期主机或到达错误主机 可用于流量劫持和信息窃取 ARP欺骗防护 : 静态ARP表项 ARP防火墙 端口安全 ARP检测 2.3 TCP SYN Ping 原理 : 发送带SYN标志的TCP空报文(通常指定80端口) 端口开放时返回ACK/SYN报文 端口关闭时返回RST报文 收到任何响应都表示主机存活 特点 : 基于TCP三次握手的前两次 比ICMP Ping更隐蔽 防火墙可能拦截SYN包 2.4 TCP ACK Ping 原理 : 直接发送带ACK标志的TCP空报文 目标主机会返回RST报文 结合TCP SYN Ping可提高穿越防火墙能力 2.5 UDP Ping 原理 : 发送空的UDP数据报(通常使用40或125端口) 端口关闭时返回ICMP端口不可达报文 端口开放时可能无响应 特点 : 可绕过仅对TCP进行访问控制的防火墙 无响应不能证明主机不存活 2.6 SCTP INIT Ping SCTP协议特点 : 流控制传输协议,类似TCP但更安全 面向消息的传输协议 通过四次握手建立连接 探测原理 : 向目标端口(通常80)发送最小SCTP INIT块 端口关闭时返回ABORT块 端口开放时返回INIT-ACK块 收到任何响应都表示主机存活 2.7 IP Protocol Ping 原理 : 发送多个IP空报文,在IP头部协议字段设置协议号 如1(ICMP)、2(IGMP)、4(IP in IP) 收到相同协议响应或ICMP协议不可达消息都表示主机存活 2.8 其他发现技术 DNS协议发现 : 利用内网DNS服务器解析常见二级域名 可发现大量内部业务和IP段 RPC协议发现 : 访问目标135端口获取RPC map 解析UUID判断可能存在的进程 通过进程判断可能开放的端口 3. 端口扫描与服务识别 3.1 端口状态识别 开放 :服务正在监听该端口 关闭 :没有服务监听但主机存活 过滤 :防火墙/ACL阻止探测到达端口 未过滤 :探测到达端口但无法确定状态 3.2 服务识别方法 端口号匹配 : 基于IANA分配的知名端口号 简单但不准确(服务可能使用非标准端口) 协议指纹识别 : 分析服务对特定探测的响应模式 Nmap等工具提供详细的协议指纹库 Banner抓取 : 连接服务后读取其初始响应信息 可能包含服务名称、版本等信息 4. 操作系统识别 4.1 识别方法 TCP/IP协议栈指纹 : 不同OS对特定TCP/IP实现的差异 包括初始序列号、窗口大小、TCP选项等 ICMP响应分析 : 不同OS对ICMP报文的处理方式差异 服务Banner信息 : 某些服务会泄露OS信息 4.2 工具实现 Nmap的OS检测(-O选项) Xprobe2等专用工具 5. 信息爬取技术 5.1 网页抓取 使用curl等工具获取网页内容 分析网页结构、链接、表单等 5.2 证书爬取 使用openssl获取SSL/TLS证书 分析证书中的组织、有效期等信息 5.3 协议特定信息爬取 Zgrab2等工具可自定义爬取协议相关信息 如HTTP头、SMTP欢迎信息等 6. 防御措施 6.1 通用防御 限制ICMP响应 配置防火墙规则 禁用不必要的服务 修改默认Banner信息 6.2 特定防御 SYN攻击防御 : SYN Cookie 增加backlog队列 减少SYN+ACK重试次数 ARP欺骗防御 : 静态ARP绑定 ARP检测 端口安全 端口扫描防御 : 入侵检测系统(IDS) 速率限制 蜜罐技术 7. 工具总结 | 工具 | 主要功能 | |------|----------| | Nmap | 全功能扫描,包括主机发现、端口扫描、服务识别、OS检测 | | Masscan | 高速网络扫描,专注于快速发现 | | Zmap | 大规模互联网扫描 | | curl | HTTP/HTTPS内容抓取 | | openssl | SSL/TLS证书爬取 | | Zgrab2 | 应用层协议信息抓取 | 8. 最佳实践 分阶段扫描 : 先快速发现存活主机 然后对存活主机进行详细扫描 隐蔽性考虑 : 调整扫描速度避免触发防御机制 使用分散的扫描源 结果验证 : 重要发现使用多种技术交叉验证 注意误报和漏报 合法合规 : 确保扫描行为获得授权 遵守相关法律法规