mcpField
H
hunting-for-beaconing-with-frequency-analysis

hunting-for-beaconing-with-frequency-analysis

github.com/mukul975安全35.2k42 次安装8 周前更新
代码仓库

关于 hunting-for-beaconing-with-frequency-analysis

面向威胁狩猎人员的网络信标分析技能,通过连接间隔、抖动和数据量等特征发现潜在的 C2 通信,并结合威胁情报与终端遥测进行研判。

主要功能

  1. 01计算连接间隔与变异系数
  2. 02分析信标抖动和传输数据量
  3. 03过滤常见合法周期性流量
  4. 04结合威胁情报丰富目的地信息
  5. 05关联端点遥测并评估风险

适用场景

  1. 01排查终端对陌生目的地的周期连接
  2. 02分析带随机抖动的潜在 C2 流量
  3. 03调查 DNS 隧道和加密信标通信
  4. 04在紫队演练中验证 C2 检测

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill hunting-for-beaconing-with-frequency-analysis

安装后在 Claude Code 中输入/hunting-for-beaconing-with-frequency-analysis确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
assets/
template.md
references/
api-reference.md
standards.md
workflows.md
scripts/
agent.py
process.py

详细介绍

使用频率分析狩猎 Beaconing

何时使用

  • 当主动搜索回连 C2 基础设施的受感染端点时
  • 当威胁情报报告表明有针对你所在行业的活跃 C2 框架时
  • 当网络日志显示存在到陌生目标的周期性出站连接时
  • 在紫队演练中验证 C2 检测能力时
  • 当调查潜在入侵并需要识别活跃 C2 通道时

前置条件

  • 带时间戳和目标数据的网络代理/防火墙日志(至少 24 小时)
  • Zeek conn.log、dns.log 和 ssl.log,或等效的 NetFlow/IPFIX 数据
  • 具备统计分析能力的 SIEM 平台(Splunk、Elastic、Microsoft Sentinel)
  • 用于自动化 beacon 分析的 RITA(Real Intelligence Threat Analytics)或 AC-Hunter
  • 用于域名/IP 信誉富化的威胁情报源

工作流

  1. 定义 Beacon 参数:建立检测阈值——变异系数(CV)低于 0.20 表示强周期性,24 小时内最少 50 次连接,平均间隔在 30 秒到 24 小时之间。
  2. 收集网络遥测数据:将代理日志、DNS 查询、防火墙连接日志和 Zeek 元数据聚合到分析平台中。
  3. 计算连接间隔:对每个源-目标对,计算连续连接之间的时间差,并得出平均间隔、标准差和 CV。
  4. 应用抖动分析:像 Cobalt Strike 这样复杂的 C2 框架会为 beacon 间隔添加抖动(随机性)。Sunburst 后门每 15 分钟加/减 90 秒进行一次 beacon。分析抖动模式,以检测即使经过随机化的 beaconing。
  5. 过滤合法周期性流量:排除已知良好的 beaconing 来源,包括 Windows Update、防病毒定义更新、NTP 同步、SaaS 心跳服务和 CDN 健康检查。
  6. 分析数据大小一致性:C2 心跳数据包通常具有一致的载荷大小。计算每次连接传输字节数的 CV——低方差表明存在自动化通信。
  7. 使用威胁情报富化:将识别出的 beaconing 目标与 VirusTotal、WHOIS 注册数据(标记注册不足 30 天的域名)、证书透明度日志和被动 DNS 历史进行比对。
  8. 与端点遥测数据关联:通过 DHCP 日志将 beaconing 源 IP 映射到端点主机名,然后与进程创建事件(Sysmon 事件 ID 1、3)关联,以识别相关进程。
  9. 评分并排序优先级:根据 CV 值、域名年龄、TI 匹配、数据大小一致性和可疑端口使用情况分配风险评分。升级高置信度发现。

关键概念

概念描述
T1071.001应用层协议:Web 协议——HTTP/HTTPS beaconing
T1071.004应用层协议:DNS——基于 DNS 的 C2 隧道
T1573加密通道——TLS/SSL 加密的 C2 通信
T1568.002动态解析:域名生成算法
变异系数标准差除以平均值;低于 0.20 的值表示周期性
抖动为 beacon 间隔添加的随机变化,用于规避检测
RITA Beacon 评分由连接规律性、数据大小一致性和连接数组成的综合评分
JA3/JA4 指纹识别用于识别 C2 框架特征的 TLS 客户端指纹识别
Fast-Flux DNS用于保护 C2 基础设施的快速变化 DNS 解析

工具与系统

工具用途
RITA (Real Intelligence Threat Analytics)基于 Zeek 日志的自动化信标评分
AC-Hunter具备信标检测功能的商业威胁狩猎平台
Splunk基于 SPL 的使用 streamstats 的统计信标分析
Elastic Security针对周期性网络行为的 ML 异常检测
Zeek网络数据采集(conn.log、dns.log、ssl.log)
Suricata具备 JA3/JA4 TLS 指纹提取功能的网络 IDS
FLAREC2 配置文件和信标模式检测
VirusTotal域名和 IP 信誉信息补充

检测查询

Splunk -- HTTP/S 信标频率分析
index=proxy OR index=firewall
| where NOT match(dest, "(?i)(microsoft|google|amazonaws|cloudflare|akamai)")
| bin _time span=1s
| stats count by src_ip dest _time
| streamstats current=f last(_time) as prev_time by src_ip dest
| eval interval=_time-prev_time
| stats count avg(interval) as avg_interval stdev(interval) as stdev_interval
  min(interval) as min_interval max(interval) as max_interval by src_ip dest
| where count > 50
| eval cv=stdev_interval/avg_interval
| where cv < 0.20 AND avg_interval > 30 AND avg_interval < 86400
| sort cv
| table src_ip dest count avg_interval stdev_interval cv
KQL -- Microsoft Sentinel 信标检测
DeviceNetworkEvents
| where Timestamp > ago(24h)
| where RemoteIPType == "Public"
| summarize ConnectionTimes=make_list(Timestamp), Count=count() by DeviceName, RemoteIP, RemoteUrl
| where Count > 50
| extend Intervals = array_sort_asc(ConnectionTimes)
| mv-apply Intervals on (
    extend NextTime = next(Intervals)
    | where isnotempty(NextTime)
    | extend IntervalSec = datetime_diff('second', NextTime, Intervals)
    | summarize AvgInterval=avg(IntervalSec), StdDev=stdev(IntervalSec)
)
| extend CV = StdDev / AvgInterval
| where CV < 0.2 and AvgInterval > 30
| sort by CV asc
Sigma 规则 -- 信标模式检测
title: Potential C2 Beaconing Pattern Detected
status: experimental
logsource:
    category: proxy
detection:
    selection:
        dst_ip|cidr: '!10.0.0.0/8'
    timeframe: 24h
    condition: selection | count(dst) by src_ip > 50
level: medium
tags:
    - attack.command_and_control
    - attack.t1071.001

常见场景

  1. Cobalt Strike Beacon:默认 60 秒间隔,通过 HTTPS 传输,抖动可配置为 0-50%。Malleable C2 配置文件可以模仿合法流量模式。
  2. Sunburst/SUNSPOT:12-14 天的休眠期,然后每 12-14 分钟发送一次信标,带有随机抖动,旨在规避频率分析。
  3. DNS 隧道 C2:通过向攻击者控制的域名发送 DNS TXT/CNAME 查询来外泄编码数据,可通过高子域名熵值和查询量进行检测。
  4. Sliver C2:现代 C2 框架,支持 HTTPS、mTLS 和 WireGuard 协议,可配置信标间隔并内置抖动支持。
  5. 合法服务滥用:通过 Slack、Discord、Telegram 或云存储 API 进行 C2 通信,使基于目的地的过滤失效。

输出格式

Hunt ID: TH-BEACON-[DATE]-[SEQ]
Source IP: [Internal IP]
Source Host: [Hostname from DHCP/DNS]
Destination: [Domain/IP]
Protocol: [HTTP/HTTPS/DNS]
Beacon Interval: [Average seconds]
Jitter Estimate: [Percentage]
Coefficient of Variation: [CV value]
Connection Count: [Total connections in window]
Data Size CV: [Payload consistency metric]
Domain Age: [Days since registration]
TI Match: [Yes/No -- source]
Risk Score: [0-100]
Risk Level: [Critical/High/Medium/Low]
Indicators: [List of triggered risk factors]

评论

支持 Markdown