Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
brawl-public-game-001 — Datos de un ejercicio de emulación automatizada de adversarios BRAWL | Kitploit
Herramientas/GitHubGitHub/mitre/brawl-public-game-001
Frameworks de Pruebas de PenetraciónForensia DigitalSeguridad en la NubeInteligencia de AmenazasAprendizaje y EducaciónRed TeamingRespuesta a IncidentesAnálisis de RegistrosAtaque AdversarioLabs y Práctica
GitHubmitre/brawl-public-game-001
21539hace 8 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

brawl-public-game-001

Datos de un ejercicio de emulación automatizada de adversarios BRAWL

Ver Repositorio

BRAWL

Uno de los problemas desafiantes para los investigadores de ciberseguridad que desarrollan capacidades de detección y respuesta es encontrar un entorno realista para probar sus hipótesis y capacidades.

El método más económico es probar capacidades en una pequeña red de laboratorio. Pero este entorno carece de la escala de una red empresarial real y del ruido de los entornos reales que dificulta mucho la detección. En muchos sentidos, el mejor entorno sería probar en múltiples redes de escala empresarial con un atacante controlado pero realista y ruido real de usuarios, administradores de sistemas y software/dispositivos de terceros. El desafío de probar en este entorno es que es costoso y, en algunos escenarios, de alto riesgo.

BRAWL busca crear un compromiso mediante un sistema que crea automáticamente una red empresarial dentro de un entorno en la nube. OpenStack es el único entorno compatible actualmente, pero se está diseñando de manera que pueda admitir fácilmente otros entornos en la nube en el futuro. BRAWL también construye una red de análisis que contiene un pipeline de ingesta y procesamiento de datos utilizando LogStash y Kafka. Como parte de la red de análisis, crea un sistema de almacenamiento y búsqueda de eventos utilizando Elasticsearch y Kibana. BRAWL pone en marcha una "Red de juego" empresarial con imágenes de Windows. Estas imágenes tienen Microsoft Sysmon y otros sensores ya instalados y configurados para reenviar registros al framework de ingesta de datos.

BRAWL también tiene un concepto de bots, que pueden ser Rojos, Azules o Grises. Los bots Rojos son ofensivos, los Azules son defensivos y los Grises emulan el comportamiento legítimo de los usuarios para proporcionar ruido que dificulte la detección. Cuando un usuario quiere probar hipótesis de investigación, implementa un bot de BRAWL. El bot de BRAWL se registra con el Controlador de BRAWL, que luego orquesta juegos entre los bots de BRAWL en la Red de juego.

Publicación de datos

Nota: Debido a problemas con los tamaños de archivo y las cuotas de GitHub, estamos colocando todos los archivos en un archivo zip en lugar de dejarlos como texto plano en el repositorio de git. Todos los datos están en el archivo

Esta publicación consiste en algunos datos de un prototipo de BRAWL. Creamos una pequeña red empresarial, descrita a continuación. Luego ejecutamos un solo juego usando el proyecto de investigación MITRE CALDERA como un bot rojo.

CALDERA es un proyecto de investigación relacionado de MITRE que automatiza la actividad de emulación de adversarios basándose en la información del modelo Tácticas, Técnicas y Conocimiento Común del Adversario (ATT&CK). Implementa un conjunto de tácticas y técnicas de ATT&CK y utiliza un sistema de planificación (https://dl.acm.org/citation.cfm?id=2991111) para automatizar la activación de esas técnicas y generar comportamiento adversario posterior a la compromiso dentro de una red empresarial.

Estos datos se publican bajo la Licencia Creative Commons BY

Descripción de la Red y los Sensores

Nuestra pequeña red empresarial es una red plana que consta de un Controlador de Dominio (dc.brawlco.com) y 16 estaciones de trabajo. Cada PC tiene el nombre del usuario principal en el nombre del PC (por ejemplo, el usuario beane normalmente inicia sesión en beane-pc). Ese usuario tiene privilegios de Administrador Local en el equipo.

Todos los PCs ejecutan Windows 8.1. El Controlador de Dominio ejecuta Windows Server 2012 R2.

En los PCs con Windows 8, realizamos cambios para habilitar WDigest para mantener contraseñas en texto plano en la memoria de LSASS usando el siguiente comando de registro: reg ADD HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\ /v UseLogonCredential /t REG_DWORD /d 1 /F

Descripción del Escenario

Para este ejercicio, CALDERA fue el único bot de BRAWL participante. Aunque conceptualmente BRAWL puede usarse para probar una variedad de comportamientos y detecciones de atacantes, muchos de los esfuerzos de investigación de MITRE siguen una filosofía de "asumir la brecha". Por lo tanto, le damos a CALDERA un punto de partida como Administrador Local en un equipo de la red al comienzo del ejercicio.

Además, sin un bot Gris que realice inicios de sesión en diferentes hosts, la Red de juego de BRAWL es estéril desde la perspectiva de credenciales que puedan ser robadas y utilizadas por bots Rojos. Para permitir el movimiento lateral, el Controlador de BRAWL utiliza psexec para crear eventos de inicio de sesión en hosts con las credenciales de otros usuarios de la red.

CALDERA realizó las siguientes técnicas de ATT&CK durante el ejercicio:

  • Descubrimiento de cuentas
  • Volcado de credenciales
  • Descubrimiento de configuración de red local
  • Descubrimiento de grupos de permisos
  • PowerShell
  • Claves de ejecución del registro / Carpeta de inicio
  • Copia remota de archivos
  • Descubrimiento remoto de sistemas
  • Recursos compartidos de administración de Windows
  • Instrumentación de administración de Windows

Datos

Hay cinco tipos de datos en este repositorio. Cada uno está contenido en su propio archivo en la carpeta data/.

Formato Compartido BRAWL

Se anima a los bots Rojos y Azules a registrar información sobre sus actividades o detecciones en el Formato Compartido BRAWL (BSF). El objetivo de esto es facilitar la comparación de las detecciones/acciones del bot Azul con las acciones del bot Rojo.

El formato está actualmente en desarrollo y podría cambiar en futuros conjuntos de datos.

Los campos para BSF se describen a continuación en la sección Detalle de Fuentes de Datos.

Notas sobre el Tiempo

Diferentes fuentes de eventos en BRAWL manejan el tiempo de manera diferente. El tiempo es ya sea el momento en que un evento llegó a nuestro framework de ingesta de registros, el momento en que se generó el evento en el host/punto final, o el momento registrado por un bot en la red. En general, esos tiempos deberían estar dentro de unos pocos milisegundos entre sí. Cuando es posible, el framework de ingesta de registros utiliza la hora del evento almacenada en el evento en lugar de la hora en que el evento llega a los nodos de ingesta. La tabla a continuación detalla el método utilizado para cada tipo de dato.

Detalle de Fuentes de Datos

game_metadata

sysmon

Estamos usando Sysmon v3.11. sysmon_config.txt contiene la salida del comando sysmon -c detallando nuestra configuración.

Sysmon genera muchos tipos diferentes de eventos, que se asignan a diferentes pares objeto/acción de CAR. Los campos para cada tipo se explican con más detalle en el sitio web de CAR: https://car.mitre.org/wiki/Data_Model

Los pares objeto/acción que genera Sysmon en nuestra configuración son:

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

Utilice el modelo de datos CAR para determinar los nombres y la semántica de los campos contenidos en data_model.fields.* para cada par objeto/acción anterior.

win_event

computer_properties

Estos datos se recopilaron periódicamente utilizando el módulo unified_json.ps1 de las Utilidades de PowerShell para Conciencia Situacional de Seguridad de MITRE. El campo userinfo puede ser útil para determinar qué credenciales pueden haber sido comprometidas si se ejecutó un volcador de credenciales como Mimikatz en el sistema.

bsf

Los objetos dentro del campo array bsf son de tipo operation, step o event. Todos los objetos tienen un campo nodetype que se puede usar para determinar el tipo de objeto.

Objeto BSF event

Información de Objeto/Acción/Campos para Objetos de Evento

Puede leer más sobre la semántica de los Campos Requeridos y Opcionales buscando el objeto asociado en el Modelo de Datos CAR.

Objeto BSF step

Los objetos paso conectan uno o más eventos en una agrupación de actividad de nivel superior. Los objetos paso también presentan un lugar para que los emisores de BSF etiqueten la actividad con etiquetas ATT&CK.

Objeto BSF operation

Los objetos de operación conectan múltiples objetos paso. Sin embargo, no hay objetos Operation presentes en este conjunto de datos.

Notas Generales de BSF

Descripciones y Notas para los Campos de Evento (especialmente "Al menos uno de"):1. Campos de tiempo.

  1. Tiempo puntual. Actividades como la eliminación de un archivo son esencialmente puntuales, con un único momento de ocurrencia que puede proporcionarse mediante el campo time. Sin embargo, es posible que ni el equipo rojo ni el azul conozcan esta marca de tiempo exacta. Por ejemplo, los bots rojos pueden iniciar un proceso para realizar alguna acción dentro de una ventana de tiempo, pero se desconoce el momento exacto en que ocurre la acción. Los bots azules pueden usar sensores que implican retrasos en la detección. Por lo tanto, BSF también proporciona dos campos de tiempo: happened_after y happened_before como corchetes temporales izquierdo y derecho respectivamente, definiendo límites en un intervalo de incertidumbre para el evento real. Debe informarse al menos uno de estos tres campos (es decir, time, happened_after, happened_before) con cada objeto event. Los otros campos son opcionales, pero deben informarse si se conocen. En particular, se alienta a los bots a reportar un valor para time que sea su mejor estimación, incluso si no tienen una hora exacta.
  2. Tiempo durativo. Actividades como un flujo son de naturaleza durativa, abarcando un período de tiempo. BSF generalmente aborda las actividades durativas registrando los puntos finales de su intervalo como horas puntuales. Por lo tanto, un evento de inicio de flujo requiere uno de {time, , }, al igual que el evento de fin de flujo. Sin embargo, algunos sensores azules pueden detectar una actividad durativa a mitad de su curso (por ejemplo, un escáner que explora periódicamente el estado de todos los procesos y determina que uno se ha vuelto malicioso). Para flujos, las detecciones a mitad de curso pueden informarse como "flow, message, time, ... (otros campos)". Para procesos, las detecciones a mitad de curso pueden informarse como "process, scanned, time, ... (otros campos)".

Apéndice

Hosts en nuestra red BRAWL para este juego:

  • 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
Descargar herramienta
Tipo de datoDescripción
game_metadataDatos que describen el escenario de BRAWL
sysmonDatos recopilados de Sysmon ejecutándose en cada una de las estaciones de trabajo
win_eventRegistros de eventos de Windows
computer_propertiesDatos recopilados de scripts personalizados que proporcionan información sobre los equipos de la red
bsfAcciones del bot Rojo en Formato Compartido BRAWL (BSF)
Fuente de datosNotas sobre el tiempo
computer_propertiesdel campo time
game_metadatahora en que llega al framework de ingesta
sysmondel campo utc_time
win_eventextraído de la hora del evento de Windows
bsfEl campo @timestamp es la hora en que llega al framework de ingesta. Sin embargo, los campos de tiempo relacionados con BSF (por ejemplo, happened_after, happened_before, etc.) son las horas en que los eventos comenzaron o finalizaron según la hora del servidor de comando y control de CALDERA.
Nombre del campoDescripción
@timestampHora relacionada con el evento. Ver nota sobre tiempo arriba.
@uuidID de evento único
game_idEl game_id único para este ejercicio.
typeTipo de evento. Siempre game_metadata para estos registros
hostsUna lista de hosts que formaron parte del ejercicio y "dentro de los límites" para el bot Rojo
randomization_seedUna semilla que los participantes del bot BRAWL pueden usar para implementar un comportamiento "aleatorio" que sea el mismo en todas las ejecuciones de BRAWL
starting_hosthost en el que comienza el bot Rojo.
Nombre del campoDescripción
@timestampHora relacionada con el evento. Ver nota sobre tiempo arriba.
@uuidID de evento único
typeTipo de evento. Siempre sysmon para estos registros
game_idEl game_id único para este ejercicio.
data_model.objectEl CAR objeto sobre el que se actúa.
data_model.actionLa CAR acción que se realiza sobre el objeto. Este campo es un array porque algunos eventos pueden corresponder a más de una acción en el modelo de datos CAR. Un ejemplo de esto son los eventos de creación de hilos remotos.
data_model.fields.*Los campos relevantes para el par objeto/acción dado.
game_idEl game_id único para este ejercicio.
hostNombre del host desde el que se registró el evento.
Nombre del campoDescripción
@timestampHora relacionada con el evento. Ver cada evento a continuación para más detalles sobre cómo se calcula
@uuidID de evento único
typeTipo de evento. Siempre win_event para estos registros
game_idEl game_id único para este ejercicio.
hostHost que registró el evento
rawLa entrada del registro de eventos de Windows en su formato XML sin procesar
data_model.fields.log_nameNombre del registro de Windows (Application, System o Security)
data_model.fields.log_typeEl tipo de registro para un log_name dado
Nombre del campoDescripción
@timestampHora relacionada con el evento. Ver nota sobre tiempo arriba.
@uuidID de evento único
typeTipo de evento. Siempre computer_properties para estos registros
game_idEl game_id único para este ejercicio.
hostNombre del equipo en el que se ejecutó el script
netinfoColección de objetos netinfo
netinfo.DNSServerscolección de resolvedores DNS configurados para este host
netinfo.GatewayPuerta de enlace para esta interfaz
netinfo.IPAddressDirecciones IP para esta interfaz
netinfo.IsDHCPEnabled¿Está habilitado DHCP?
netinfo.MACAddressDirección MAC para esta interfaz
netinfo.SubnetMaskMáscara de subred para las respectivas direcciones IP
pcinfoObjeto que describe información sobre el PC
pcinfo.AssetTagEtiqueta de activo si es accesible
pcinfo.CPUInformación sobre la(s) CPU(s)
pcinfo.ChassisTypeNo utilizado en BRAWL. "Unknown"
pcinfo.DisksInformación sobre el(los) disco(s) conectado(s)
pcinfo.DomainNamedominio del que forma parte el sistema
pcinfo.LastBootUpTimeHora en que se inició el sistema
pcinfo.MemoryInformación sobre la memoria de los sistemas
pcinfo.OSInformación sobre el SO en ejecución
pcinfo.SerialNumberNúmero de serie del hardware
timeHora en que se ejecutó el script
userinfoArray que contiene objetos userinfo describiendo usuarios que han iniciado sesión en el sistema desde el último reinicio
userinfo.AuthenticationPackagePaquete de autenticación utilizado para la autenticación
userinfo.DomainDominio (o PC local) al que pertenece la cuenta
userinfo.LogonIdLogonId
userinfo.LogonTimeHora de inicio de sesión
userinfo.LogonTypeConstantes de tipo de inicio de sesión de Windows (Type Constants)
userinfo.LogonTypeNameDescripción de LogonType
userinfo.UserNameNombre de usuario de la entidad que inicia sesión
Nombre del campoDescripción
@timestampHora relacionada con el evento. Ver nota sobre tiempo arriba.
@uuidID de evento único
typeTipo de evento. Siempre bsf_events para estos registros
game_idEl game_id único para este ejercicio.
bsfArray de eventos BSF que describen la actividad del bot. Los campos para este array se describen con más detalle a continuación.
bsf_versionVersión del esquema BSF utilizado para el array de eventos bsf
producer_idBot que produjo estos datos BSF.
CampoDescripción
idUn identificador único para cada evento.
nodetypeEl tipo de este nodo. Uno de: {"operation", "step", "event"}.
hostNombre del host o IP en el que se realizó/detectó este evento.
timeNota: Se debe informar al menos uno de los siguientes tres campos de tiempo (es decir, "time", "happened_after" o "happened_before"). "time" es especialmente deseado; se recomiendan los tres. Consulte la nota 1 en Notas Generales a continuación.

Nota sobre el formato de la hora: Toda la información de tiempo debe estar en formato ISO 8601. Más específicamente como: 'yyyy-mm-ddThh:nn:ss.llll00'. Donde y es año, m es mes, d es día, h es hora, n es minuto, s es segundo, l es milisegundo (y hay dos ceros finales). Por ejemplo: 2017-02-22T18:38:14.060000

Opcional: Estimación de la hora en que ocurrió este evento.
happened_afterOpcional: Un límite temprano ("corchete temporal izquierdo") sobre la incertidumbre en "time".
happened_beforeOpcional: Un límite tardío ("corchete temporal derecho") sobre la incertidumbre en "time".
confidenceOpcional: Permite que los bots azules comuniquen la confianza (un número real entre 0.0 y 1.0) en la asociación de este evento con un ataque.
objectObjeto sobre el que se actúa; consulte la tabla a continuación para ver los valores permitidos. Basado libremente en el Modelo de Datos CAR
actionAcciones para un objeto dado. Basado libremente en el Modelo de Datos CAR
specific_field_1 .. N1-N atributos descriptivos (ver a continuación). Basado libremente en el Modelo de Datos CAR
ObjetoAcciónCampo(s) requerido(s)Campo(s) opcional(es)
processcreate
terminate
scanned
Al menos uno de:
     {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
Al menos uno de:
    {src_hostname,src_ip}
Al menos uno de:
    {dest_hostname, dest_ip}
Al menos uno de:
     {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
Nombre del campoDescripción
idUn identificador único para los pasos de la operación.
nodetypeEl tipo de este nodo. Uno de: {"operation", "step", "event"}.
attack_infoUn array de objetos de técnica (definidos en la tabla directamente a continuación), que describe cómo este paso se relaciona con la taxonomía ATT&CK. ¿Por qué un array? Aunque una sola técnica a menudo describe un paso y todos sus eventos, en algunos casos, se pueden implementar múltiples técnicas.
attack_info.technique_idUn ID de técnica ATT&CK (por ejemplo, "T1059") que describe el mecanismo de ataque que el rojo empleó en este paso y sus eventos referenciados.
attack_info.technique_nameUna cadena legible por humanos que describe esta técnica (por ejemplo, "Command-Line Interface").
attack_info.tacticUn array de una o más etiquetas de táctica ATT&CK que describen la intención/estrategia de esta técnica. (Tenga en cuenta que una sola técnica puede ejercer múltiples tácticas). Por ejemplo: ["Lateral Movement", "Execution"]
descriptionOpcional: Las notas o anotaciones para este paso van aquí.
eventsUn array de ids de los objetos event que componen este paso.
happened_after
happened_before
  • Identificación de procesos. Idealmente, se usa un pid para identificar un proceso, sin embargo, el pid no siempre se conoce, especialmente por el bot rojo. Alternativamente, se puede proporcionar el command_line que inició el proceso, o el exe / image_path que se ejecutó.
  • Puertos de flujo. Los puertos de origen y destino en los flujos pueden describirse mediante un nombre de host o una dirección IP.
  • En este conjunto de datos, el único bot que participa es CALDERA, por lo tanto, los únicos registros BSF presentes son de CALDERA.