
🔧 Azure에서 맞춤형 Active Directory 랩을 자동으로 배포하세요.
이 프로젝트를 사용하면 Terraform/Ansible을 이용해 도메인에 가입된 워크스테이션, Windows 이벤트 전달, Kibana, Sysmon이 포함된 Active Directory 랩을 Azure에서 쉽게 구축할 수 있습니다.
도메인에 대한 고수준 구성 파일을 제공하여 사용자, 그룹 및 워크스테이션을 사용자 지정할 수 있습니다.
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
다음은 DetectionLab과의 불완전하고 편향된 비교입니다:
탐지 엔지니어링: 표준 구성을 갖춘 깨끗한 랩에 액세스할 수 있으면 일반적인 공격과 수평 이동 기술이 남기는 흔적을 이해하는 데 큰 도움이 됩니다.
Active Directory 학습: 저는 GPO나 다양한 AD 기능(AppLocker, LAPS...)을 테스트해야 할 필요가 자주 있습니다. 이를 위해서는 일회용 랩이 필수입니다.


Azure 구독. 무료로 계정을 만들 수 있으며 처음 30일 동안 $200 크레딧을 받습니다. 이 유형의 구독은 리전당 vCPU 4개로 제한되지만, 기본 랩 구성에서 도메인 컨트롤러 1대와 워크스테이션 2대를 실행하기에는 충분합니다.
~/.ssh/id_rsa.pub에 SSH 키. 개인 키는 ssh-agent에 추가하거나(보통 ssh-add ~/.ssh/id_rsa를 한 번 실행하고 .bashrc에 eval "$(ssh-agent -s)"를 추가), 암호 없이 암호화되지 않은 상태여야 합니다.
Terraform >= 0.12
az login을 실행하여 Azure 계정에 로그인해야 합니다. az account list를 사용하여 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
필요에 따라 domain.yml을 편집한 후(참조), 다음을 실행합니다:
terraform apply
리소스 생성 및 프로비저닝에는 15-20분이 소요됩니다. 완료되면 다음과 유사한 출력이 표시됩니다:
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"
}
프로비저닝 중에
FAILED - RETRYING: List Kibana index templates (xx retries left)와 같은 메시지가 몇 개 보여도 걱정하지 마세요
기본적으로 리소스는 West Europe 리전의 ad-hunting-lab 리소스 그룹에 배포됩니다. Terraform 변수로 리전을 제어할 수 있습니다:
terraform apply -var 'region=East US 2'
domain.yml 참조Adaz를 언급한 발표 / 게시물:
다음 기능은 여러분이 feature-proposal 이슈에 남겨주신 엄지척 투표 수에 크게 의존할 예정입니다!
이슈를 열거나 @christophetd에게 트윗해 주세요.
| Adaz | DetectionLab |
|---|
| 퍼블릭 클라우드 지원 | Azure | AWS, Azure (베타) |
| 랩 생성 예상 시간 | 15-20분 | 25분 |
| 로그 관리 및 조회 | Elasticsearch+Kibana | Splunk Enterprise |
| WEF | ✔️ | ✔️ |
| 감사 정책 | ✔️ | ✔️ |
| Sysmon | ✔️ | ✔️ |
| YAML 도메인 구성 파일 | ✔️ | 🚫 |
| 여러 대의 Windows 10 워크스테이션 지원 | ✔️ | 🚫 |
| VirtualBox/VMWare 지원 | 🚫 | ✔️ |
| osquery / fleet | 🚫(투표!) | ✔️ |
| PowerShell 트랜스크립트 로깅 | 🚫 (투표!) | ✔️ |
| IDS 로그 | 🚫 (투표!) | ✔️ |