GOAD is a pentest active directory LAB project. The purpose of this lab is to give pentesters a vulnerable Active directory environment ready to use to practice usual attack techniques.
Warning This lab is extremely vulnerable, do not reuse recipe to build your environment and do not deploy this environment on internet without isolation (this is a recommendation, use it as your own risk).
This repository was build for pentest practice.
This lab use free windows VM only (180 days). After that delay enter a license on each server or rebuild all the lab (may be it's time for an update ;))
GOAD : 5 vms, 2 forests, 3 domains (full goad lab)
GOAD-Light : 3 vms, 1 forest, 2 domains (smaller goad lab for those with a smaller pc)
SCCM : 4 vms, 1 forest, 1 domain, with microsoft configuration manager installed
NHA : A challenge with 5 vms and 2 domains. no schema provided, you will have to find out how break it.
Used space
Linux operating system
./goad.sh -t check -l GOAD -p virtualbox -m docker
./goad.sh -t install -l GOAD -p virtualbox -m docker
Installation depend of the provider you use, please follow the appropriate guide :
Installation is in three parts :
./goad -t check -l <LAB> -p <PROVIDER> -m <ANSIBLE_RUN_METHOD>
LAB: lab must be one of the following (folder in ad/)
PROVIDER : provider must be one of the following:
ANSIBLE_RUN_METHOD : ansible method to use :
Please install all the needed tools before run the install process
There is no automatic installer for the dependencies tools (virtualbox, vagrant, python, ansible,... ) you will have to install them by yourself depending on your package manager an linux system.
./goad -t install -l <LAB> -p <PROVIDER> -m <ANSIBLE_RUN_METHOD>
-a
: ansible only is played during install task (no vagrant or terraform). This is useful if you install and run vagrant on windows and then launch the provisioning from a different computer (example : a kali linux connected to goad network)-r <ansible_file.yml>
: run only one ansible task (useful to run elk.yml or run only one playbook)-e
: enable elk in vagrant (example to install elk and play the elk playbook once you finish goad install run : ./goad.sh -t install -l GOAD -p virtualbox -m local -e -r elk.yml
)ad/
labname/ # The lab name must be the same as the variable : domain_name from the data/inventory
data/
config.json # The json file containing all the variables and configuration of the lab
inventory # The global lab inventory (provider independent) (this should no contains variables)
files/ # This folder contains files you want to copy on your vms
scripts/ # This folder contains ps1 scripts you want to play on your vm (Must be added in the "scripts" entries of your vms)
providers/ # Your lab available provider
vmware/
inventory # specific vmware inventory
Vagrantfile # specific vmware vagrantfile
virtualbox/
inventory # specific virtualbox inventory
Vagrantfile # specific virtualbox vagrantfile
proxmox/
terraform/ # specific proxmox terraform recipe
inventory # specific proxmox inventory
azure/
terraform/ # specific azure terraform recipe
inventory # specific azure inventory