数据集网络安全【免费下载链接】cobaltstrike-beacon-corpus项目地址https://ai.gitcode.com/hf_mirrors/fox-srt/cobaltstrike-beacon-corpus点击查看免费下载Fox-IT 开源的Cobalt Strike Beacon Corpus是一个威胁情报数据集收录了 2018 年 7 月至 2026 年 9 月期间从互联网 Team Server 下载的56,843 个 Beacon 原始载荷与190,182 条采集记录sighting。数据以两张 Parquet 表存储data/beacons.parquet解析后的配置与 data/payloads.parquet原始样本。本文面向新手用一张图和几张表带你完整读懂beacons.parquet与payloads.parquet的每一个字段。一分钟了解数据集这是什么在深入字段之前先搞清楚三件事Beacon信标Cobalt Strike 植入目标主机后用于回连 C2 的敲门砖内部包含一套完整的 C2 通信配置域名、协议、端口、水印、公钥等。Sighting采集记录某次在某个 IP:端口、某个日期抓到某个 Beacon 的一次记录。同一个 Beacon 可能被重复抓到多次所以 sighting 数19 万远多于唯一 Beacon 数5.6 万。CaRT一种文件封装格式。原始 Beacon 是真实可用的恶意载荷被 CaRT 编码后才存储进数据集下载、存储时不会被杀毒软件拦截也提醒使用者展开前请进隔离环境。 数据集核心指标来自 README.md指标数值唯一 Beacon原始载荷56,843Sighting 采集记录190,182唯一 ip:portTeam Server36,652首次采集2018-07-04最后采集2026-09-29两张表的关系一张记录表 一张样本表理解整个数据集的关键是记住两张表通过sha256字段一对一关联表行数粒度存了什么data/beacons.parquet190,182一行 一次 sighting采集时间/地点 解析出的 Beacon 配置data/payloads.parquet56,843一行 一个唯一 Beacon原始载荷CaRT 封装关系可以这样理解beacons.parquet (190,182 行) payloads.parquet (56,843 行) ┌─────────────┬──────────┐ sha256 ┌─────────────┬──────────────┐ │ id │ 42 │ ────────▶ │ sha256 │ 9f3a… │ │ sha256 │ 9f3a… │ │ md5 │ c1d2… │ │ … │ … │ │ beacon_size │ 235520 │ └─────────────┴──────────┘ │ payload_cart│ CaRT binary │ └─────────────┴──────────────┘ 官方说明绝大多数研究只需要beacons.parquet只有当你要重新解析 Beacon、或排查解析失败的样本时才需要下载体积约 10 GB 的payloads.parquet。beacons.parquet 字段完整详解下面按字段分组逐一讲解。类型以实际文件在 DuckDB 中的表现为准可用仓库内的 beacon_research.ipynb 复现验证。1️⃣ 标识与关联字段字段类型说明idBIGINT行 ID可用来唯一定位一条 sightingsha256VARCHAR原始 Beacon 载荷的 SHA-256关联payloads.parquet的主键beacon_sizeBIGINTBeacon 载荷的字节大小实测文件中包含此列 文档中还定义了status字段dissect.cobaltstrike 报告的解析状态。实际数据中更直接的判断方式config_json IS NULL即解析失败约占 300 条0.17%。2️⃣ 采集信息字段何时、何地、怎么抓的字段类型说明collected_onDATEBeacon 下载sighting日期collected_from_ipVARCHARTeam Server 的 IP 地址collected_from_portUSMALLINT下载端口53 代表 DNS 监听器protocolVARCHAR从 Beacon 配置中解析出的监听协议http、https、dns等 数据集中https占 53.75%、http占 36.30%、dns占 9.77%端口上 443、80、53 是绝对主力。个别异常值如dns|64正是被人为修改的 Beacon留下的痕迹。3️⃣ 解析结果字段Beacon 配置长什么样字段类型说明watermarkVARCHARBeacon 水印十六进制字符串威胁情报中最常用的集群分组指纹versionVARCHARdissect.cobaltstrike 识别出的 Cobalt Strike 版本如Cobalt Strike 4.13 (Jun 10, 2026)config_jsonVARCHAR核心字段完整解析配置 解析器元数据JSON 字符串见下一节详解4️⃣ TLS 证书字段HTTPS 监听器特征字段类型说明tls_subjectVARCHARTeam Server TLS 证书的 Subjecttls_issuerVARCHAR证书的 Issuer颁发者tls_fingerprint_sha256VARCHAR证书的 SHA256 指纹可用于跨域名聚类同一基础设施5️⃣ PE 时间戳字段编译特征字段类型说明pe_export_stampUINTEGERBeacon 载荷 PE 文件的导出表时间戳pe_compile_stampUINTEGERPE 文件编译时间戳可用于推断构建时间6️⃣ 地理位置字段Team Server 在哪字段类型说明geo_asnBIGINTTeam Server IP 所属 ASN运营商/机构编号geo_as_orgVARCHARIP 归属组织名称geo_countryVARCHAR国家名geo_country_codeVARCHAR国家二字码如USgeo_dbVARCHAR用于解析地理位置的 GeoIP 数据库名config_json 内部结构解读一个字段顶半个数据集config_json是最重的字段它把 dissect.cobaltstrike 的解析结果整体以 JSON 塞进来。典型结构如下{ domains: [malware.domain, …], protocol: dns, watermark: 0x4de0a4af, version: Cobalt Strike 4.13 (Jun 10, 2026), pubkey_sha256: 20440a20f900560374621fab…, settings: { SETTING_PROTOCOL: 1, SETTING_PORT: 53, SETTING_DNS_IDLE: 1.1.1.1, SETTING_WATERMARK: 1306567855 }, stages: [ObfuscatedBeacon(OBFUSCATION_LZNT1), …], xorkey: 2e, layout: { indexes: [1, 2, 3], types: [1, 1, 2], sizes: [2, 2, 4] }, guardrails: { …: … } }各部分速读settings所有SETTING_*配置项都在这里字节型值存为十六进制字符串。查询时可用 JSON 路径直接取值例如$.settings.SETTING_PUBKEY、$.settings.SETTING_WATERMARKHASH。domainsBeacon 使用的回连域名列表是 IOC 提取的首选来源。stages/xorkey二阶段载荷的混淆方式LZNT1、BASE64、XOR、RC4 等与密钥。layout配置块的结构布局索引、类型、大小三元组。当攻击者打乱设置顺序或重映射类型值来搞崩解析器时靠它就能识别出修改过的 Beacon。guardrails可选Beacon 启用了 Guardrails 保护时出现含beacon_xor_key、guardrail_xor_key、payload_xor_key及启用的GUARD_*项。modifications可选解析器检测到并自动修复的配置篡改记录例如modifications: { tags: [remapped_types], remapped_types: { 65535: 1, 65534: 2, 65533: 3 } }表示攻击者把TYPE_SHORT/INT/PTR原值 1/2/3重映射成了 65535/65534/65533 来干扰解析dissect.cobaltstrike 自动修正后才成功解析。 研究反解析手法时筛选modifications非空的行就是现成的样本池。payloads.parquet 字段完整详解这张表只有 4 个字段简单直接字段类型说明sha256stringBeacon 的 SHA-256关联主键md5stringBeacon 的 MD5beacon_sizeintBeacon 字节大小payload_cartbinaryCaRT 封装的原始 Beacon 载荷使用方式摘自 README 的示例片段仅需 3 步DuckDB 按sha256取出payload_cart→ CaRT 解包 → dissect.cobaltstrike 解析data con.execute( fSELECT payload_cart FROM {DB_PATH} WHERE sha256 ?, [sha256] ).fetchone()[0] out io.BytesIO() cart.unpack_stream(io.BytesIO(data), out) config BeaconConfig.from_bytes(out.getvalue())⚠️安全提醒解包出的 Beacon 是活的恶意 stager可能包含可工作的 C2 地址请务必只在隔离分析环境中解包。快速上手一条 SQL 看懂数据无需下载数据DuckDB 可以直接远程查询 Hugging Face 上的 Parquet 文件。示例按水印统计最活跃的 Beacon 集群SELECT watermark, count(*) AS sightings, count(DISTINCT collected_from_ip) AS servers, min(collected_on) AS first_seen, max(collected_on) AS last_seen FROM hf://datasets/fox-srt/cobaltstrike-beacon-corpus/data/beacons.parquet GROUP BY watermark ORDER BY sightings DESC LIMIT 20;结果前列是典型的懒惰配置0x0未设水印31,776 条 sighting / 4,922 台服务器和0x12345678默认演示水印稳居前二——说明大量团队连水印都懒得改。 更多现成的查询和绘图代码见仓库中的 beacon_research.ipynb。新手必读四条使用限制在基于该数据集下结论前请记住官方 README.md 中的 Limitations覆盖面有限仅收录匹配到指纹且开启 Beacon staging 的 Team Server主要是 80/443/53 端口使用重定向器或 domain fronting 的服务器会欠代表。存在采集空窗部分月份数据偏低可能是采集故障不要误读为Cobalt Strike 使用量下降。不等于恶意红队也合法使用 Cobalt Strike不能仅凭 IP、域名或水印判定攻击行为。数据会过期IP 和域名会重新分配sighting 只说明采集当天该主机提供了什么。总结beacons.parquet是研究主力表20 个字段覆盖采集信息、解析配置、TLS/PE 特征与地理位置config_json一个字段就装下了完整 C2 配置。payloads.parquet是样本表4 个字段通过sha256与记录表关联用于重新解析与失败排查。掌握sha256关联键 config_jsonJSON 路径这两个要点你就能独立开展水印聚类、版本趋势、协议分布等大部分威胁情报分析。赞分享数据集网络安全【免费下载链接】cobaltstrike-beacon-corpus项目地址https://ai.gitcode.com/hf_mirrors/fox-srt/cobaltstrike-beacon-corpus点击查看免费下载相关推荐如何解析Cobalt Strike beacon配置Beacon Corpus中config_json的watermark、pubkey与Guardrails完全指南如何解析Cobalt Strike beacon配置Beacon Corpus中config_json的watermark、pubkey与Guardrails数据集网络安全OpenEBS LVM 卷组快照Volume Group Snapshot设计剖析多卷一致性快照的 CSI 实现路径OpenEBS LVM 卷组快照Volume Group Snapshot设计剖析多卷一致性快照的 CSI 实现路径 导读 本文围绕 OpenEBS 的数据集网络安全Cobalt Strike DNS Beacon 趋势研究基于 Beacon Corpus 完整分析 53 端口隐蔽 C2 流量Cobalt Strike DNS Beacon 趋势研究基于 Beacon Corpus 完整分析 53 端口隐蔽 C2 流量 Cobalt Strike数据集网络安全上一篇从论文到实践indictrans2-en-indic-1B背后的AI4Bharat研究团队故事下一篇ImmortalWrt流量控制高级技巧精细化管理网络带宽创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考