Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
brawl-public-game-001 — 来自 BRAWL 自动对手模拟演习的数据 | Kitploit
工具/GitHubGitHub/mitre/brawl-public-game-001
渗透测试框架数字取证云安全威胁情报学习与教育红队事件响应日志分析对抗性攻击实验室与实践
GitHubmitre/brawl-public-game-001

brawl-public-game-001

来自 BRAWL 自动对手模拟演习的数据

215398年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

BRAWL

网络安全研究人员开发检测和响应能力时面临的一个挑战性问题是,寻找一个逼真的环境来测试其假设和能力。

最廉价的方法是在小型实验室网络上测试能力。但这种环境缺乏真实企业网络的规模以及真实环境中的噪声,而这些噪声使得检测变得困难得多。在许多方面,最佳环境是在多个企业级网络上进行测试,同时具有受控但逼真的攻击者以及来自用户、系统管理员和第三方软件/设备的真实噪声。在这种环境中测试的挑战在于成本高昂,并且在某些场景下风险很高。

BRAWL 旨在通过创建一个系统,在云环境中自动构建企业网络来达成一种折衷方案。目前仅支持 OpenStack 环境,但其设计方式便于将来轻松支持其他云环境。BRAWL 还构建了一个分析网络,其中包含使用 LogStash 和 Kafka 的数据摄取与处理管道。作为分析网络的一部分,它还创建了一个使用 Elasticsearch 和 Kibana 的事件存储与搜索系统。BRAWL 使用 Windows 镜像启动一个企业网络“游戏棋盘”。这些镜像已预安装并配置了 Microsoft Sysmon 和其他传感器,用于将日志转发到数据摄取框架。

BRAWL 还有一个机器人的概念,可以是红方、蓝方或灰方。红方机器人负责攻击,蓝方机器人负责防御,而灰方机器人模拟合法用户行为以提供噪声,使检测更加困难。当用户想要测试研究假设时,他们会实现一个 BRAWL 机器人。该 BRAWL 机器人会向 BRAWL 控制器注册,然后控制器在游戏棋盘上编排 BRAWL 机器人之间的游戏。

数据发布

注意:由于文件大小和 GitHub 配额的问题,我们将所有文件放入一个 zip 文件中,而不是以纯文本形式保留在 git 仓库中。所有数据都在该文件中。

本次发布包含来自 BRAWL 原型的一些数据。我们创建了一个小型企业网络,如下所述。然后,我们使用 MITRE 的 CALDERA 研究项目作为红方机器人运行了一场游戏。

CALDERA 是一个相关的 MITRE 研究项目,它基于 对抗性战术、技术与常识(ATT&CK) 模型中的信息自动化对手模拟活动。它实现了一组 ATT&CK 战术和技术,并使用规划系统 (https://dl.acm.org/citation.cfm?id=2991111) 来自动化这些技术的执行,并在企业网络中生成妥协后的对手行为。

该数据根据 知识共享署名许可协议 发布。

网络与传感器描述

我们的小型企业网络是一个扁平网络,包含一个域控制器(dc.brawlco.com)和 16 台工作站。每台 PC 的计算机名称都包含了其主要用户名(例如,用户 beane 通常登录 beane-pc)。该用户对该计算机拥有本地管理员权限。

所有 PC 均运行 Windows 8.1。域控制器运行 Windows Server 2012 R2。

在 Windows 8 PC 上,我们通过以下注册表命令启用了 WDigest 以在 LSASS 内存中保留纯文本密码:reg ADD HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\ /v UseLogonCredential /t REG_DWORD /d 1 /F

场景描述

在此次演练中,CALDERA 是唯一参与的 BRAWL 机器人。虽然从概念上讲,BRAWL 可用于测试各种攻击者行为和检测,但 MITRE 的许多研究工作都遵循“假设已遭入侵”的理念。因此,我们在演练开始时就赋予 CALDERA 一个起始点,即作为网络中某台计算机上的本地管理员。

此外,如果没有灰方机器人在不同主机上执行登录操作,从红方机器人可窃取和使用的凭据角度来看,BRAWL 游戏棋盘是“无菌”的。为了实现横向移动,BRAWL 控制器使用 psexec 在主机上使用网络中其他用户的凭据创建登录事件。

CALDERA 在演练中执行了以下 ATT&CK 技术:

  • 账户发现
  • 凭据转储
  • 本地网络配置发现
  • 权限组发现
  • PowerShell
  • 注册表运行键 / 启动文件夹
  • 远程文件复制
  • 远程系统发现
  • Windows 管理共享
  • Windows 管理规范

数据

此仓库中包含五种类型的数据。每种数据都位于 data/ 文件夹中的单独文件中。

数据类型描述

BRAWL 共享格式

鼓励红方机器人和蓝方机器人使用 BRAWL 共享格式 (BSF) 记录其活动或检测信息。这样做旨在便于比较蓝方机器人的检测/操作与红方机器人的操作。

该格式目前仍在开发中,可能会在未来的数据集中发生变化。

BSF 的字段在下面的“数据源详情”部分进行了描述。

关于时间的说明

BRAWL 中的不同事件源处理时间的方式不同。时间可能是事件到达日志摄取框架的时间、事件在主机/端点上的生成时间,或者网络上的机器人记录的时间。通常,这些时间相差应在几毫秒内。如果可能,日志摄取框架会使用事件本身包含的事件时间,而不是事件到达摄取节点的时间。下表详细说明了每种数据类型使用的方法。

数据源详情

game_metadata

sysmon

我们使用的是 Sysmon v3.11。sysmon_config.txt 包含 sysmon -c 命令的输出,详细说明了我们的配置。

Sysmon 生成多种不同类型的事件,这些事件映射到不同的 CAR 对象/操作对。每种类型的字段在 CAR 网站上有更详细的说明:https://car.mitre.org/wiki/Data_Model

在我们的配置中,Sysmon 生成的对象/操作对包括:

  • driver/load
  • file/attr_modify
  • flow/start
  • module/load
  • process/create
  • process/terminate
  • thread/create
  • threat/remote_create

请使用 CAR 数据模型 来确定上述每个对象/操作对在 data_model.fields.* 中包含的字段名称和语义。

win_event

computer_properties

此数据是使用 MITRE 的 用于安全态势感知的 PowerShell 实用工具 中的 unified_json.ps1 模块定期收集的。如果系统上运行了 Mimikatz 这样的凭据转储工具,userinfo 字段可用于确定哪些凭据可能已被泄露。

bsf

bsf 数组字段内部的对象类型为 operation、step 或 event。所有对象都有一个 nodetype 字段,可用于确定对象类型。

event BSF 对象

事件对象的对象/操作/字段信息

您可以通过在 CAR 数据模型 中查找相关对象来了解有关必填字段和可选字段的更多语义。

step BSF 对象

步骤对象将一个或多个事件连接成更高层次的活动分组。步骤对象还为 BSF 发射器提供了使用 ATT&CK 标签标记活动的场所。

operation BSF 对象

操作对象将多个步骤对象连接在一起。但此数据集中不存在 operation 对象。

通用 BSF 说明

事件字段的描述与注释(特别是“至少包含以下之一”):1. 时间字段。

  1. 点状时间。像文件删除这样的活动本质上是点状的,其发生时间可通过 time 字段提供。然而,红队和蓝队都可能不知道这个确切的时间戳。例如,红队机器人可能会生成一个进程,在某个时间窗口内完成某个动作,但该动作发生的具体时间未知。蓝队机器人的传感器可能存在检测延迟。因此,BSF 还提供了两个时间字段 happened\_after 和 happened\_before,分别作为时间上的左括号和右括号,定义了实际事件不确定性区间的边界。每个 event 对象必须至少报告这三个字段中的一个(即 time、happened\_after、happened\_before)。其他字段是可选的,但应在已知时进行报告。特别地,鼓励机器人为 time 字段报告一个它们的最佳猜测值,即便它们没有确切时间。
  2. 持续时间。像流这样的活动在本质上是持续性的,跨越一段时间。BSF 通常通过将时间区间端点记录为点状时间来处理持续性活动。因此,流开始事件需要提供 {time,happened\_after,happened\_before} 中的一个,流结束事件也是如此。但是,某些蓝队传感器可能会在活动进行中检测到持续性活动(例如,一个周期性扫描所有进程状态并发现某个进程已变成恶意的扫描器)。对于流,可以在活动进行中检测到的流报告为“flow, message, time, ... (other fields)”。对于进程,可以在活动进行中检测到的进程报告为“process, scanned, time, ... (other fields)”。
  3. 进程标识。理想情况下,使用 pid 来标识进程,但 pid 并不总是已知,尤其是红队机器人。另外,可以提供生成进程的 command\_line,或者被执行的 exe / 。

附录

本游戏中 BRAWL 网络上的主机:

  • beane-pc.brawlco.com
  • colgan-pc.brawlco.com
  • dc.brawlco.com
  • escue-pc.brawlco.com
  • fulco-pc.brawlco.com
  • harley-pc.brawlco.com
  • kressierer-pc.brawlco.com
  • mims-pc.brawlco.com
  • minahan-pc.brawlco.com
  • ostermeyer-pc.brawlco.com
  • peele-pc.brawlco.com
  • platten-pc.brawlco.com
  • santilli-pc.brawlco.com
  • sespinosa-pc.brawlco.com
  • sounder-pc.brawlco.com
  • teston-pc.brawlco.com
  • zissler-pc.brawlco.com
下载工具
game_metadata描述 BRAWL 场景的数据
sysmon从每台工作站上运行的 Sysmon 收集的数据
win_eventWindows 事件日志
computer_properties从自定义脚本收集的、提供网络中计算机某些信息的数据
bsf红方机器人以 BRAWL 共享格式 (BSF) 记录的操作
数据源时间说明
computer_properties来自 time 字段
game_metadata到达摄取框架的时间
sysmon来自 utc_time 字段
win_event从 Windows 事件时间中提取
bsf@timestamp 字段是事件到达摄取框架的时间。但与时间相关的 BSF 字段(例如 happened_after、happened_before 等)则是事件开始或结束的时间,基于 CALDERA 命令与控制服务器上的时间。
字段名描述
@timestamp与事件相关的时间。请参阅上面的时间说明。
@uuid唯一事件 ID
game_id此次演练的唯一 game_id。
type事件类型。对于这些记录,始终为 game_metadata
hosts参与此次演练且红方机器人“可及”的主机列表
randomization_seed一个种子,可供 BRAWL 机器人参与者用于实现“随机”行为,且该行为在 BRAWL 的不同执行之间保持一致
starting_host红方机器人起始所在的主机。
字段名描述
@timestamp与事件相关的时间。请参阅上面的时间说明。
@uuid唯一事件 ID
type事件类型。对于这些记录,始终为 sysmon
game_id此次演练的唯一 game_id。
data_model.object被操作的 CAR 对象。
data_model.action对对象执行的 CAR 操作。此字段是一个数组,因为某些事件可能对应 CAR 数据模型中的多个操作。例如,远程线程创建事件。
data_model.fields.*与特定对象/操作对相关的字段。
game_id此次演练的唯一 game_id。
host记录该事件的主机名。
字段名描述
@timestamp与事件相关的时间。有关具体计算方式,请参阅下文中的每个事件说明
@uuid唯一事件 ID
type事件类型。对于这些记录,始终为 win_event
game_id此次演练的唯一 game_id。
host记录该事件的主机
rawWindows 事件日志条目的原始 XML 格式
data_model.fields.log_nameWindows 日志名称(应用程序、系统或安全)
data_model.fields.log_type给定 log_name 的日志类型
字段名描述
@timestamp与事件相关的时间。请参阅上面的时间说明。
@uuid唯一事件 ID
type事件类型。对于这些记录,始终为 computer_properties
game_id此次演练的唯一 game_id。
host运行该脚本的计算机名称
netinfonetinfo 对象的集合
netinfo.DNSServers为此主机配置的 DNS 解析器集合
netinfo.Gateway此接口的网关
netinfo.IPAddress此接口的 IP 地址
netinfo.IsDHCPEnabled是否启用了 DHCP?
netinfo.MACAddress此接口的 MAC 地址
netinfo.SubnetMask对应 IP 地址的子网掩码
pcinfo描述 PC 信息的对象
pcinfo.AssetTag资产标签(如果可访问)
pcinfo.CPUCPU 信息
pcinfo.ChassisType在 BRAWL 中未使用。值为 "Unknown"
pcinfo.Disks连接的磁盘信息
pcinfo.DomainName系统所属的域名
pcinfo.LastBootUpTime系统启动时间
pcinfo.Memory系统内存信息
pcinfo.OS正在运行的操作系统信息
pcinfo.SerialNumber硬件序列号
time脚本运行时间
userinfo包含 userinfo 对象的数组,描述自上次启动以来登录过系统的用户
userinfo.AuthenticationPackage用于身份验证的身份验证包
userinfo.Domain账户所属的域(或本地 PC)
userinfo.LogonId登录 ID
userinfo.LogonTime登录时间
userinfo.LogonTypeWindows 登录类型常量
userinfo.LogonTypeNameLogonType 的描述
userinfo.UserName登录主体的用户名
字段名描述
@timestamp与事件相关的时间。请参阅上面的时间说明。
@uuid唯一事件 ID
type事件类型。对于这些记录,始终为 bsf_events
game_id此次演练的唯一 game_id。
bsf描述机器人活动的 BSF 事件数组。该数组的字段在下面有更详细的说明。
bsf_version用于 bsf 事件数组的 BSF 模式版本
producer_id生成此 BSF 数据的机器人。
字段描述
id每个事件的唯一标识符。
nodetype此节点的类型。取值之一:{"operation", "step", "event"}。
host此事件执行/检测到的主机名或 IP。
time注意:以下三个时间字段(即 "time"、"happened_after" 或 "happened_before")中至少需要报告一个。特别希望提供 "time";鼓励提供全部三个。请参阅下文一般说明中的注释 1。

时间格式说明:所有时间信息必须采用 ISO 8601 格式。具体为:'yyyy-mm-ddThh:nn:ss.llll00'。其中 y 为年,m 为月,d 为日,h 为时,n 为分,s 为秒,l 为毫秒(最后有两位零)。例如:2017-02-22T18:38:14.060000

可选:对事件发生时间的估计。
happened_after可选:对 "time" 不确定性的早期界限(“时间左括号”)。
happened_before可选:对 "time" 不确定性的晚期界限(“时间右括号”)。
confidence可选:使蓝方机器人能够传达对此事件与攻击关联的置信度(0.0 到 1.0 之间的实数)。
object被操作的对象;允许值见下表。大致基于 CAR 数据模型。
action给定对象的操作。大致基于 CAR 数据模型。
specific_field_1 .. N1-N 个描述性属性(见下文)。大致基于 CAR 数据模型。
对象操作必填字段可选字段
processcreate
terminate
scanned
至少包含以下之一:
     {pid, command_line, exe, image_path}
fqdn
hostname
md5_hash
parent_exe
parent_image_path
ppid
sha1_hash
sha256_hash
sid
signer
user
flowstart
end
message
至少包含以下之一:
    {src_hostname, src_ip}
至少包含以下之一:
    {dest_hostname, dest_ip}
至少包含以下之一:
     {src_port, dest_port, protocol}
content
dest_fqdn
exe
flags
fqdn
hostname
image_path
packet_count
pid
ppid
proto_info
src_fqdn
user
filecreate
delete
modify
read
timestomp
write
file_pathcompany
file_name
fqdn
hostname
image_path
md5_hash
pid
ppid
sha1_hash
sha256_hash
signer
user
字段名描述
id操作步骤的唯一标识符。
nodetype此节点的类型。取值之一:{"operation", "step", "event"}。
attack_info技术对象数组(在下面表格中定义),描述此步骤如何与 ATT&CK 分类体系关联。为什么是数组?虽然单个技术通常描述一个步骤及其所有事件,但在某些情况下,可能会实现多种技术。
attack_info.technique_id描述此步骤及其引用事件中红方所使用攻击机制的 ATT&CK 技术 ID(例如 "T1059")。
attack_info.technique_name描述该技术的人类可读字符串(例如 "命令行界面")。
attack_info.tactic一个或多个 ATT&CK 战术标签的数组,描述该技术的意图/策略。(注意:单个技术可能涉及多种战术。)例如:["横向移动", "执行"]
description可选:此步骤的注释或标注。
events组成此步骤的 event 对象的 ID 数组。
image\_path
  • 流端口。流中的源端口和目标端口可以通过主机名或 IP 地址来描述。
  • 在这个数据集中,唯一参与的机器人是 CALDERA,因此目前唯一的 BSF 记录来自 CALDERA。