ATT&CK-侦察-主动扫描技术
字数 2511 2025-08-20 18:18:23
主动扫描技术详解
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. 最佳实践
-
分阶段扫描:
- 先快速发现存活主机
- 然后对存活主机进行详细扫描
-
隐蔽性考虑:
- 调整扫描速度避免触发防御机制
- 使用分散的扫描源
-
结果验证:
- 重要发现使用多种技术交叉验证
- 注意误报和漏报
-
合法合规:
- 确保扫描行为获得授权
- 遵守相关法律法规