1
0
mirror of https://github.com/elisspace/Wakanda-Forever.git synced 2026-08-29 15:44:11 +00:00
This commit is contained in:
q0phi80
2022-08-09 16:06:44 -04:00

View File

@@ -4,7 +4,7 @@
</p>
## Purpose
Wakanda Land is a Cyber Range deployment tool that uses ```terraform``` for automating the process of deploying an Adversarial Simulation land infrastructure for practicing various offensive attacks. This project inherits from other people's work in the Cybersecurity Community and due credit has been provided in the Credit Section. I just added some additional sprinkles to their work from my other researches.
Wakanda Land is a Cyber Range deployment tool that uses ```terraform``` for automating the process of deploying an Adversarial Simulation land infrastructure, for practicing various offensive attacks. This project inherits from other people's work in the Cybersecurity Community and due credit has been provided in the Credit Section. I just added some additional sprinkles to their work from my other researches.
## Demo
[A short demo video](https://youtu.be/gpCknMZw7vA) which demonstrates deploying the lab, quick test to ensure it functions and how to destroy it once you are done.
@@ -39,12 +39,12 @@ The deployment of Wakanda Land environment consist of:
- Two Subnets
- Guacamole Server
- *This provides dashboard access to Kali GUI and Windows RDP instances*
- *The Kali GUI, Windows RDP and the user accounts used to log into these instances are already backed into the deployment process*
- *To log into the Guacamole dashboard with the ```guacadmin``` account, you need to SSH into the Guacamole server using the public IP address (which is displayed after the deployment is complete) and then change into the ```guacamole``` directory and then type ```cat .env``` for the password (the ```guacadmin``` password is randomnly generated and saved as an environment variable)*
- *This runs two variations of dashboards (one is vanilla Apache Guacamole and the second one is a customized Apache Guacamole)*
- *The Kali GUI, Windows RDP and the user accounts used to log into the instance in the Apache Guacamole are already backed into the deployment process*
- Windows Domain Controller for the Child Domain
- Windows Domain Controller for the Parent Domain
- Windows Server in the Child Domain
- Windows 10 Pro in the Child Domain - had to create a custom AMI image for this one
- Windows 10 Pro in the Child Domain - Customized AMI image for this one
- Kali Machine - a directory called ```toolz``` is created on this box where Impacket and Covenant C2 are downloaded into that folder, so its just a matter of running Covenant once you are authenticated into Kali
- Debian Server serving as Web Server 1 - OWASP's Juice Shop running on this one
- Debian Server serving as Web Server 2 - Several vulnerable applications running on this one
@@ -72,12 +72,12 @@ DSC
- Install-module -name activedirectorydsc
- Install-module -name networkingdsc
- Install-module -name ComputerManagementDsc
2. Update the PowerShell script (adland.ps1) with the following:
2. Update the PowerShell script (jungle.ps1) with the following:
- Import-DscResource -ModuleName ActiveDirectoryDsc
- Import-DscResource -ModuleName NetworkingDsc
- Import-DscResource -ModuleName ComputerManagementDSC
- Import-DscResource -ModuleName PSDesiredStateConfiguration
3. Run the script (```. .\adland.ps1```) from within the ```dsc``` directory to create the MOF files, which will be dumped into the ```land``` folder
3. Run the script (```. .\jungle.ps1```) from within the ```dsc``` directory to create the MOF files, which will be dumped into the ```Jungle``` folder
S3
Create an S3 bucket for your account and modify the variable in terraform/vars.tf with your bucket name
@@ -90,7 +90,7 @@ Store the SSH Public Key file within ./terraform/keys/terraform-key.pub
Update the file in the vars.tf to point to that public key (which will assign it to the created EC2 instances)
Can use this key pair to get the administrator default password from AWS
Once you run the terraform, it will take some time to provision everything, so give it about 30 mins to an hour and you should be good to go.
Once you run the terraform, it will take some time to provision everything, so give it about 45 mins to an hour and you should be good to go.
```
## Running the land
You can take the following steps in running the land (must be ran from the terraform subfolder):
@@ -107,7 +107,7 @@ terraform validate
```
terraform plan
```
### Deploy the environment
### Deploy the land
```
terraform apply --auto-approve
```
@@ -115,7 +115,7 @@ terraform apply --auto-approve
```
aws ec2 describe-instances --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value,InstanceType,PublicIpAddress,PrivateIpAddress]' --output json
```
### Connect to the environment
### Connect to the land
```
- SSH into the Guacamole server (g.e. ssh -i terraformkey.pem admin@guac-server-ip)
- Change directory into the guacamole directory on the server (cd guacamole)
@@ -138,7 +138,7 @@ aws ec2 describe-instances --query 'Reservations[].Instances[].[Tags[?Key==`Name
- Confirm you have a connection (Grunt) back to your Covenant C2 framework
- You can continue with other attack techniques via Covenant
```
### Destroy the environment
### Destroy the land
```
terraform destroy --auto-approve
```