
🔧 Déployez des laboratoires Active Directory personnalisables dans Azure - automatiquement.
Ce projet vous permet de déployer facilement des laboratoires Active Directory dans Azure avec des postes de travail joints au domaine, le transfert d'événements Windows, Kibana et Sysmon en utilisant Terraform/Ansible.
Il expose un fichier de configuration de haut niveau pour votre domaine afin de vous permettre de personnaliser utilisateurs, groupes et postes de travail.
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
Voici une comparaison incomplète et biaisée avec DetectionLab :
Ingénierie de détection : Avoir accès à un lab propre et standardisé est un excellent moyen de comprendre quelles traces les attaques courantes et les techniques de mouvement latéral laissent derrière elles.
Apprentissage d'Active Directory : J'ai souvent besoin de tester des GPO ou diverses fonctionnalités AD (AppLocker, LAPS...). Disposer d'un laboratoire jetable est indispensable pour cela.


Un abonnement Azure. Vous pouvez en créer un gratuitement et vous obtenez 200 $ de crédits pour les 30 premiers jours. Notez que ce type d'abonnement a une limite de 4 vCPU par région, ce qui vous permet tout de même d'exécuter 1 contrôleur de domaine et 2 postes de travail (avec la configuration de lab par défaut).
Une clé SSH dans ~/.ssh/id_rsa.pub. Votre clé privée doit soit être ajoutée à ssh-agent (généralement en exécutant ssh-add ~/.ssh/id_rsa une fois et en ajoutant eval "$(ssh-agent -s)" dans votre .bashrc), soit ne pas être chiffrée avec une phrase de passe.
Terraform >= 0.12
Vous devez être connecté à votre compte Azure en exécutant az login. Vous pouvez utiliser az account list pour confirmer que vous avez accès à votre abonnement 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
Modifiez éventuellement domain.yml selon vos besoins (référence ici), puis exécutez :
terraform apply
La création et le provisionnement des ressources prennent de 15 à 20 minutes. Une fois terminé, vous obtiendrez une sortie similaire à :
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"
}
Ne vous inquiétez pas si, pendant le provisionnement, vous voyez quelques messages ressemblant à
FAILED - RETRYING: List Kibana index templates (xx retries left)
Par défaut, les ressources sont déployées dans la région West Europe, dans un groupe de ressources ad-hunting-lab. Vous pouvez contrôler la région à l'aide d'une variable Terraform :
terraform apply -var 'region=East US 2'
domain.ymlTalks / articles référençant Adaz :
Je m'appuierai fortement sur le nombre de votes positifs que vous laisserez sur les feature-proposal issues pour les prochaines fonctionnalités !
N'hésitez pas à ouvrir une issue ou à tweeter @christophetd.
| Adaz | DetectionLab |
|---|
| Prise en charge du cloud public | Azure | AWS, Azure (beta) |
| Temps estimé pour déployer un lab | 15-20 minutes | 25 minutes |
| Gestion et interrogation des journaux | Elasticsearch+Kibana | Splunk Enterprise |
| WEF | ✔️ | ✔️ |
| Stratégies d'audit | ✔️ | ✔️ |
| Sysmon | ✔️ | ✔️ |
| Fichier de configuration de domaine YAML | ✔️ | 🚫 |
| Prise en charge de plusieurs postes de travail Windows 10 | ✔️ | 🚫 |
| Prise en charge de VirtualBox/VMWare | 🚫 | ✔️ |
| osquery / fleet | 🚫(votez !) | ✔️ |
| Journalisation des transcriptions PowerShell | 🚫 (votez !) | ✔️ |
| Journaux IDS | 🚫 (votez !) | ✔️ |