
🔧 Stelle anpassbare Active-Directory-Labore in Azure bereit – automatisch.
Mit diesem Projekt kannst du in Azure ganz einfach Active-Directory-Labs erstellen – mit in die Domäne eingebundenen Workstations, Windows Event Forwarding, Kibana und Sysmon unter Verwendung von Terraform/Ansible.
Es steht eine High-Level-Konfigurationsdatei für deine Domäne bereit, mit der du Benutzer, Gruppen und Workstations anpassen kannst.
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
Hier folgt ein unvollständiger und voreingenommener Vergleich mit DetectionLab:
Detection Engineering: Zugriff auf ein sauberes Labor mit einem Standard zu haben, ist eine großartige Möglichkeit zu verstehen, welche Spuren gängige Angriffe und Techniken der lateralen Bewegung hinterlassen.
Active Directory lernen: Ich habe oft das Bedürfnis, GPOs oder verschiedene AD-Funktionen zu testen (AppLocker, LAPS ...). Ein wegwerfbares Labor ist dafür ein Muss.


Ein Azure-Abonnement. Du kannst kostenlos eines erstellen und erhältst für die ersten 30 Tage 200 $ Guthaben. Beachte, dass diese Art von Abonnement ein Limit von 4 vCPUs pro Region hat, was dir dennoch erlaubt, 1 Domänencontroller und 2 Workstations zu betreiben (mit der Standard-Laborkonfiguration).
Ein SSH-Schlüssel in ~/.ssh/id_rsa.pub. Dein privater Schlüssel muss entweder zum ssh-agent hinzugefügt werden (typischerweise, indem du einmal ssh-add ~/.ssh/id_rsa ausführst und eval "$(ssh-agent -s)" in deine .bashrc einfügst) oder darf nicht mit einer Passphrase verschlüsselt sein.
Terraform >= 0.12
Du musst in deinem Azure-Konto angemeldet sein, indem du az login ausführst. Mit az account list kannst du bestätigen, dass du Zugriff auf dein Azure-Abonnement hast.
git clone https://github.com/christophetd/Adaz.git
# Hinweis: Die virtuelle Umgebung muss sich in ansible/venv befinden
python3 -m venv ansible/venv
source ansible/venv/bin/activate
pip install -r ansible/requirements.txt
deactivate
cd terraform
terraform init
Optional kannst du domain.yml nach deinen Bedürfnissen bearbeiten (Referenz hier), dann ausführen:
terraform apply
Die Erstellung und Bereitstellung der Ressourcen dauert 15-20 Minuten. Sobald der Vorgang abgeschlossen ist, erhältst du eine Ausgabe ähnlich der folgenden:
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"
}
Keine Sorge, wenn während der Bereitstellung ein paar Meldungen wie
FAILED - RETRYING: List Kibana index templates (xx retries left)erscheinen.
Standardmäßig werden die Ressourcen in der Region West Europe unter einer Ressourcengruppe ad-hunting-lab bereitgestellt. Du kannst die Region mit einer Terraform-Variable steuern:
terraform apply -var 'region=East US 2'
domain.yml-ReferenzVorträge / Beiträge, die auf Adaz verweisen:
Ich werde mich bei den nächsten Features stark auf die Anzahl der Daumen-hoch-Stimmen verlassen, die du auf feature-proposal-Issues hinterlässt!
Erstelle gerne ein Issue oder twittere an @christophetd.
| Adaz | DetectionLab |
|---|
| Public-Cloud-Unterstützung | Azure | AWS, Azure (beta) |
| Voraussichtliche Zeit bis das Lab bereit ist | 15-20 Minuten | 25 Minuten |
| Logverwaltung & Abfragen | Elasticsearch+Kibana | Splunk Enterprise |
| WEF | ✔️ | ✔️ |
| Audit-Richtlinien | ✔️ | ✔️ |
| Sysmon | ✔️ | ✔️ |
| YAML-Domänenkonfigurationsdatei | ✔️ | 🚫 |
| Unterstützung mehrerer Windows-10-Workstations | ✔️ | 🚫 |
| VirtualBox/VMWare-Unterstützung | 🚫 | ✔️ |
| osquery / fleet | 🚫(Abstimmen!) | ✔️ |
| Protokollierung von PowerShell-Transkripten | 🚫 (Abstimmen!) | ✔️ |
| IDS-Logs | 🚫 (Abstimmen!) | ✔️ |