Purple Cloud: despliega un lab de DA en la nube

Purple Cloud de Jason Ostrom es una pequeña implementación de Active Directory automatizada con plantillas de playbooks en Terraform/Ansible para implementar en Azure; ideal para organizar y llevar a cabo un ciberejercicio de pentesting en AD. Sus características actuales son:

- Implementa una máquina virtual Linux para pentesting y un contenedor Docker (AriaCloud) accesible a través de RDP
- También se puede realizar una implementación independiente de AriaCloud desde este repositorio. Para esta opción, hay que navegar hasta el directorio aria-cloud y ver el archivo README. Más info en https://github.com/iknowjason/AriaCloud.
- Implementa un controlador de dominio Windows 2019 y tres endpoints de Windows 10 Pro
- Une automáticamente los tres equipos con Windows 10 al dominio AD
- Utiliza plantillas de Terraform para implementar automáticamente VMs en Azure
- Las plantillas de Terraform escriben la configuración de los playbooks en Ansible, que se pueden personalizar
- Carga Badblood automáticamente (pero no lo instala) si prefieres generar miles de usuarios simulados https://github.com/davidprowe/BadBlood
- El script de Powershell posterior a la implementación proporciona tres usuarios de dominio en el controlador de dominio 2019 y se puede personalizar para muchos más
  • Usuarios del dominio: olivia (administrador del dominio); lars (usuario de dominio); liem (Usuario de dominio)
  • Todas las contraseñas de usuario de dominio: Password123
  • Dominio: RTC.LOCAL
  • Credenciales del administrador de dominio: RTCAdmin: Password123
- Implementa cuatro subredes IP
- Implementa grupos de seguridad de red de Azure (NSG) intencionalmente inseguros que permiten RDP, WinRM (5985, 5986) y SSH desde la Internet pública. Securiza esto según tus requisitos. WinRM se utiliza para aprovisionar automáticamente los hosts.
- Incluye un script de Powershell posterior a la implementación que agrega entradas de registro en cada endpoint de Windows 10 Pro para iniciar sesión automáticamente con cada nombre de usuario de dominio correspondiente. Esta función simula un entorno de AD real con estaciones de trabajo con inicios de sesión de dominio interactivos. Cuando intenta RDP en los endpoints, el atacante simulado se encuentra con:


Despliegue e instalación

Nota: probado en Ubuntu 20.04

Paso 1: instala Terraform y Ansible en el sistema Linux

Descarga e instala Terraform: https://www.terraform.io/downloads.html

Instalar Ansible

$ sudo apt-get install ansible

Paso 2: Configura un Service Principal en la suscripción de Azure que permite a Terraform automatizar las tareas de su suscripción de Azure

Seguir las instrucciones exactas de este enlace de Microsoft: https://docs.microsoft.com/en-us/azure/developer/terraform/getting-started-cloud-shell

Estos fueron los dos comandos básicos que se ejecutaron en función de este enlace anterior:

az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/<subscription_id>

y este comando a continuación. Según las pruebas, es necesario usar un rol de "Propietario" en lugar de "Colaborador". La documentación predeterminada de Microsoft muestra el rol de "Colaborador" que dio lugar a errores.

az login --service-principal -u -p "" --tenant ""

Para configurar nuestro proveedor de Terraform Azure:

subscription_id = ""
client_id = ""
client_secret = ""
tenant_id = ""


Paso 3: clona este repositorio

$ git clone https://github.com/iknowjason/PurpleCloud.git

Paso 4:
editar el archivo terraform.tfvars para el proveedor de recursos de Azure con las credenciales de Service Principal

cd PurpleCloud/deploy
vi terraform.tfvars


Editar estos parámetros en el archivo terraform.tfvars:

subscription_id = ""
client_id = ""
client_secret = ""
tenant_id = ""


El archivo terraform.tfvars debería tener un aspecto parecido a esto, pero con las credenciales propias de Azure Service Principal:

subscription_id = "aa9d8c9f-34c2-6262-89ff-3c67527c1b22"
client_id = "7e9c2cce-8bd4-887d-b2b0-90cd1e6e4781"
client_secret = ":+O$+adfafdaF-?%:.?d/EYQLK6po9`|E<["
tenant_id = "8b6817d9-f209-2071-8f4f-cc03332847cb"


Paso 5: Ejecuta los comandos para inicializar terraform y aplicar el plan de recursos

$ cd PurpleCloud/deploy
$ terraform init
$ terraform apply -var-file=terraform.tfvars -auto-approve


Esto debería iniciar el plan de implementación automatizado de Terraform.

Paso 6:
Opcional: descomprimir y ejecutar Badblood desde el directorio C:\terraform (https://github.com/davidprowe/BadBlood)

Algunos aspectos conocidos, bugs y más info en el repo oficial: https://github.com/iknowjason/PurpleCloud

Comentarios