
🔧 Distribuisci lab Active Directory personalizzabili in Azure - automaticamente.
Questo progetto ti consente di creare facilmente lab Active Directory in Azure con workstation aggiunte al dominio, Windows Event Forwarding, Kibana e Sysmon usando Terraform/Ansible.
Espone un file di configurazione di alto livello per il tuo dominio che ti consente di personalizzare utenti, gruppi e workstation.
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
Ecco un confronto incompleto e di parte con DetectionLab:
Detection engineering: Avere accesso a un lab pulito e standardizzato è un ottimo modo per capire quali tracce lasciano gli attacchi comuni e le tecniche di movimento laterale.
Apprendere Active Directory: Ho spesso la necessità di testare GPO o varie funzionalità di AD (AppLocker, LAPS...). Avere un lab usa e getta è fondamentale per questo.


Una sottoscrizione Azure. Puoi crearne una gratuitamente e ricevi $200 di credito per i primi 30 giorni. Nota che questo tipo di sottoscrizione ha un limite di 4 vCPU per regione, che ti consente comunque di eseguire 1 domain controller e 2 workstation (con la configurazione predefinita del lab).
Una chiave SSH in ~/.ssh/id_rsa.pub. La tua chiave privata deve essere aggiunta a ssh-agent (tipicamente, eseguendo ssh-add ~/.ssh/id_rsa una volta e aggiungendo eval "$(ssh-agent -s)" nel tuo .bashrc) oppure non deve essere crittografata con una passphrase.
Terraform >= 0.12
Devi aver effettuato l'accesso al tuo account Azure eseguendo az login. Puoi usare az account list per confermare di avere accesso alla tua sottoscrizione 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
Opzionalmente modifica domain.yml in base alle tue esigenze (riferimento qui), poi esegui:
terraform apply
La creazione e il provisioning delle risorse richiedono 15-20 minuti. Al termine, otterrai un output simile 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"
}
Non preoccuparti se durante il provisioning vedi alcuni messaggi del tipo
FAILED - RETRYING: List Kibana index templates (xx retries left)
Di default, le risorse vengono distribuite nella regione West Europe in un gruppo di risorse ad-hunting-lab. Puoi controllare la regione con una variabile Terraform:
terraform apply -var 'region=East US 2'
domain.ymlTalk / post che citano Adaz:
Farò molto affidamento sul numero di voti positivi che lascerai sulle feature-proposal issues per le prossime funzionalità!
Non esitare ad aprire una issue o a twittare a @christophetd.
| Adaz | DetectionLab |
|---|
| Supporto cloud pubblico | Azure | AWS, Azure (beta) |
| Tempo previsto per avviare un lab | 15-20 minuti | 25 minuti |
| Gestione e interrogazione dei log | Elasticsearch+Kibana | Splunk Enterprise |
| WEF | ✔️ | ✔️ |
| Criteri di controllo | ✔️ | ✔️ |
| Sysmon | ✔️ | ✔️ |
| File di configurazione del dominio YAML | ✔️ | 🚫 |
| Supporto di più workstation Windows 10 | ✔️ | 🚫 |
| Supporto VirtualBox/VMWare | 🚫 | ✔️ |
| osquery / fleet | 🚫(vota!) | ✔️ |
| Registrazione trascrizioni PowerShell | 🚫 (vota!) | ✔️ |
| Log IDS | 🚫 (vota!) | ✔️ |