test-data/
├── goad/ # Datos GOAD extraídos
│ ├── ZA/ # Domain ZA (Zombie Apocalypse)
│ │ ├── users.json
│ │ ├── computers.json
│ │ ├── groups.json
│ │ ├── domains.json
│ │ ├── ous.json
│ │ ├── gpos.json
│ │ └── ...
│ ├── TB/ # Domain TB (The Big One)
│ │ ├── users.json
│ │ ├── computers.json
│ │ ├── groups.json
│ │ └── ...
│ └── AD/ # Domain AD (Attack Domain)
│ ├── users.json
│ ├── computers.json
│ ├── groups.json
│ └── ...
└── README.md # Este archivo
# 1. Coloca tus ZIPs de GOAD en el directorio raíz del proyecto
# - ZA_domain.zip (o similar)
# - TB_domain.zip (o similar)
# - AD_domain.zip (o similar)
# 2. Ejecuta el script de setup
./scripts/setup-goad-data.sh# 1. Crear directorios
mkdir -p test-data/goad/{ZA,TB,AD}
# 2. Extraer cada ZIP a su directorio correspondiente
unzip ZA_domain.zip -d test-data/goad/ZA/
unzip TB_domain.zip -d test-data/goad/TB/
unzip AD_domain.zip -d test-data/goad/AD/# Configurar rutas específicas
export GOAD_ZA_ZIP="/path/to/ZA_domain.zip"
export GOAD_TB_ZIP="/path/to/TB_domain.zip"
export GOAD_AD_ZIP="/path/to/AD_domain.zip"
# Ejecutar setup
./scripts/setup-goad-data.sh- Descripción: Dominio principal con estructura compleja
- Archivos: users.json, computers.json, groups.json, etc.
- Uso: Tests principales de funcionalidad
- Descripción: Dominio secundario con relaciones cruzadas
- Archivos: users.json, computers.json, groups.json, etc.
- Uso: Tests de relaciones entre dominios
- Descripción: Dominio de ataque con ACLs específicas
- Archivos: users.json, computers.json, groups.json, etc.
- Uso: Tests de ACLs y permisos
# Tests con mocks (no necesitan datos reales)
pytest tests/unit/ -v# Tests con datos GOAD reales
./scripts/setup-complete.sh# Test solo con dominio ZA
export GOAD_DOMAIN="ZA"
pytest tests/integration/ -v
# Test solo con dominio TB
export GOAD_DOMAIN="TB"
pytest tests/integration/ -v# Ver estructura de datos
tree test-data/goad/
# Contar archivos por dominio
find test-data/goad/ZA -name "*.json" | wc -l
find test-data/goad/TB -name "*.json" | wc -l
find test-data/goad/AD -name "*.json" | wc -l# Cargar dominio ZA
bloodhound-cli upload test-data/goad/ZA/
# Cargar dominio TB
bloodhound-cli upload test-data/goad/TB/
# Cargar dominio AD
bloodhound-cli upload test-data/goad/AD/# Limpiar datos extraídos
rm -rf test-data/goad/
# Limpiar BloodHound
bloodhound-cli stop
bloodhound-cli startCada dominio debe contener:
users.json- Usuarios del dominiocomputers.json- Computadoras del dominiogroups.json- Grupos del dominiodomains.json- Información del dominioous.json- Unidades organizativasgpos.json- Políticas de gruposessions.json- Sesiones activasacls.json- Listas de control de acceso
Para verificar que los datos están correctamente configurados:
# Verificar estructura
./scripts/setup-goad-data.sh
# Verificar BloodHound
bloodhound-cli status
# Verificar datos cargados
curl http://localhost:8080/api/v2/statistics