
🔧 Implante laboratórios Active Directory personalizáveis no Azure - automaticamente.
Este projeto permite que você crie facilmente laboratórios do Active Directory no Azure com estações de trabalho ingressadas no domínio, Windows Event Forwarding, Kibana e Sysmon usando Terraform/Ansible.
Ele expõe um arquivo de configuração de alto nível para o seu domínio, permitindo que você personalize usuários, grupos e estações de trabalho.
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
Aqui está uma comparação incompleta e tendenciosa com o DetectionLab:
Engenharia de detecção: Ter acesso a um laboratório limpo e padronizado é uma ótima maneira de entender quais rastros ataques comuns e técnicas de movimento lateral deixam para trás.
Aprendendo Active Directory: Frequentemente preciso testar GPOs ou vários recursos do AD (AppLocker, LAPS...). Ter um laboratório descartável é essencial para isso.


Uma assinatura do Azure. Você pode criar uma gratuitamente e recebe US$ 200 em créditos nos primeiros 30 dias. Observe que esse tipo de assinatura tem um limite de 4 vCPUs por região, o que ainda permite executar 1 controlador de domínio e 2 estações de trabalho (com a configuração padrão do laboratório).
Uma chave SSH em ~/.ssh/id_rsa.pub. Sua chave privada deve ser adicionada ao ssh-agent (normalmente, executando ssh-add ~/.ssh/id_rsa uma vez e adicionando eval "$(ssh-agent -s)" no seu .bashrc) ou não ser criptografada com uma frase secreta.
Terraform >= 0.12
Você deve estar conectado à sua conta do Azure executando az login. Você pode usar az account list para confirmar que tem acesso à sua assinatura do 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, edite domain.yml de acordo com suas necessidades (consulte aqui) e execute:
terraform apply
A criação e o provisionamento dos recursos levam de 15 a 20 minutos. Ao final, você terá uma saída semelhante 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"
}
Não se preocupe se, durante o provisionamento, você vir algumas mensagens semelhantes a
FAILED - RETRYING: List Kibana index templates (xx retries left)
Por padrão, os recursos são implantados na região West Europe em um grupo de recursos ad-hunting-lab. Você pode controlar a região com uma variável do Terraform:
terraform apply -var 'region=East US 2'
domain.ymlPalestras / posts que referenciam o Adaz:
Vou depender fortemente do número de votos positivos que você deixar nas feature-proposal issues para as próximas funcionalidades!
Sinta-se à vontade para abrir uma issue ou twittar para @christophetd.
| Adaz | DetectionLab |
|---|
| Suporte a nuvem pública | Azure | AWS, Azure (beta) |
| Tempo esperado para provisionar um laboratório | 15-20 minutos | 25 minutos |
| Gerenciamento e consulta de logs | Elasticsearch+Kibana | Splunk Enterprise |
| WEF | ✔️ | ✔️ |
| Políticas de auditoria | ✔️ | ✔️ |
| Sysmon | ✔️ | ✔️ |
| Arquivo de configuração de domínio YAML | ✔️ | 🚫 |
| Suporte a múltiplas estações de trabalho Windows 10 | ✔️ | 🚫 |
| Suporte a VirtualBox/VMWare | 🚫 | ✔️ |
| osquery / fleet | 🚫(vote!) | ✔️ |
| Registro de transcrição do Powershell | 🚫 (vote!) | ✔️ |
| Logs de IDS | 🚫 (vote!) | ✔️ |