
🔧 Despliega laboratorios de Active Directory personalizables en Azure, automáticamente.
Este proyecto te permite levantar fácilmente laboratorios de Active Directory en Azure con estaciones de trabajo unidas al dominio, reenvío de eventos de Windows, Kibana y Sysmon usando Terraform/Ansible.
Expone un archivo de configuración de alto nivel para tu dominio, que te permite personalizar usuarios, grupos y estaciones de trabajo.
dns_name: hunter.lab
dc_name: DC-1
initial_domain_admin:
username: hunter
password: MyAdDomain!
organizational_units: {}
users:
- username: christophe
- username: dany
groups:
- dn: CN=Hunters,CN=Users
members: [christophe]
default_local_admin:
username: localadmin
password: Localadmin!
workstations:
- name: XTOF-WKS
local_admins: [christophe]
- name: DANY-WKS
local_admins: [dany]
enable_windows_firewall: yes
Esta es una comparación incompleta y sesgada con DetectionLab:
Ingeniería de detección: Tener acceso a un laboratorio limpio y estandarizado es una excelente manera de entender qué rastros dejan los ataques comunes y las técnicas de movimiento lateral.
Aprendizaje de Active Directory: A menudo necesito probar GPOs o varias características de AD (AppLocker, LAPS...). Tener un laboratorio desechable es imprescindible para esto.


Una suscripción de Azure. Puedes crear una gratis y obtienes $200 de créditos durante los primeros 30 días. Ten en cuenta que este tipo de suscripción tiene un límite de 4 vCPU por región, lo que aún te permite ejecutar 1 controlador de dominio y 2 estaciones de trabajo (con la configuración de laboratorio predeterminada).
Una clave SSH en ~/.ssh/id_rsa.pub. Tu clave privada debe estar agregada a ssh-agent (normalmente, ejecutando ssh-add ~/.ssh/id_rsa una vez y añadiendo eval "$(ssh-agent -s)" en tu .bashrc) o no estar cifrada con una frase de contraseña.
Terraform >= 0.12
Debes iniciar sesión en tu cuenta de Azure ejecutando az login. Puedes usar az account list para confirmar que tienes acceso a tu suscripción de Azure.
git clone https://github.com/christophetd/Adaz.git
# Note: the virtual env needs to be in ansible/venv
python3 -m venv ansible/venv
source ansible/venv/bin/activate
pip install -r ansible/requirements.txt
deactivate
cd terraform
terraform init
Opcionalmente, edita domain.yml según tus necesidades (consulta la referencia aquí) y luego ejecuta:
terraform apply
La creación y el aprovisionamiento de recursos tardan 15-20 minutos. Una vez finalizado, tendrás una salida similar a:
dc_public_ip = 13.89.191.140
kibana_url = http://52.176.3.250:5601
what_next =
####################
### WHAT NEXT? ###
####################
Check out your logs in Kibana:
http://52.176.3.250:5601
RDP to your domain controller:
xfreerdp /v:13.89.191.140 /u:hunter.lab\\hunter '/p:Hunt3r123.' +clipboard /cert-ignore
RDP to a workstation:
xfreerdp /v:52.176.5.229 /u:localadmin '/p:Localadmin!' +clipboard /cert-ignore
workstations_public_ips = {
"DANY-WKS" = "52.165.182.15"
"XTOF-WKS" = "52.176.5.229"
}
No te preocupes si durante el aprovisionamiento ves algunos mensajes como
FAILED - RETRYING: List Kibana index templates (xx retries left)
Por defecto, los recursos se implementan en la región West Europe bajo un grupo de recursos ad-hunting-lab. Puedes controlar la región con una variable de Terraform:
terraform apply -var 'region=East US 2'
domain.ymlCharlas / publicaciones que hacen referencia a Adaz:
Dependeré en gran medida de la cantidad de votos positivos que dejes en los issues de feature-proposal para las próximas funciones.
No dudes en abrir un issue o tuitear a @christophetd.
| Adaz | DetectionLab |
|---|
| Soporte de nube pública | Azure | AWS, Azure (beta) |
| Tiempo estimado para levantar un laboratorio | 15-20 minutos | 25 minutos |
| Gestión y consulta de registros | Elasticsearch+Kibana | Splunk Enterprise |
| WEF | ✔️ | ✔️ |
| Políticas de auditoría | ✔️ | ✔️ |
| Sysmon | ✔️ | ✔️ |
| Archivo de configuración de dominio YAML | ✔️ | 🚫 |
| Soporte para múltiples estaciones de trabajo Windows 10 | ✔️ | 🚫 |
| Soporte de VirtualBox/VMWare | 🚫 | ✔️ |
| osquery / fleet | 🚫(¡vota!) | ✔️ |
| Registro de transcripción de PowerShell | 🚫 (¡vota!) | ✔️ |
| Registros IDS | 🚫 (¡vota!) | ✔️ |