Laboratorio DanderSpritz
Propósito
El objetivo del laboratorio DanderSpritz es permitir a investigadores y defensores configurar rápidamente una versión completamente funcional de DanderSpritz - El conjunto de herramientas de post-explotación del Equation Group y un dominio Windows Server 2008 y un cliente como objetivos. Los objetivos de Windows tienen algunas herramientas de ingeniería inversa que encontré útiles mientras investigaba DanderSpritz y sus capacidades.
Lea un poco sobre el laboratorio DanderSpritz aquí: https://medium.com/@francisck/introducing-danderspritz-lab-461912313d7c
Un sitio web que he creado para documentar las capacidades y herramientas de DanderSpritz: https://danderspritz.com
NOTA: Este laboratorio no ha sido endurecido de ninguna manera (es intencionalmente vulnerable) y se ejecuta con credenciales predeterminadas de Vagrant. No lo conecte ni lo puentee a ninguna red que le importe.
Requisitos
- 20 GB+ de espacio libre en disco
- 8 GB+ de RAM
- 20 GB de uso de ancho de banda (para descargar ISOs, actualizaciones, service packs, etc.)
- Packer v1.2.3 o más reciente
- Vagrant v2.1.1 o más reciente
- Plugin Vagrant-Reload
- Virtualbox (VMWare Fusion/Workstation próximamente más tarde)
Iniciar el Laboratorio DanderSpritz
DanderSpritz utiliza Packer, Vagrant y el plugin Vagrant-reload para instalar y configurar el laboratorio desde cero. Packer descargará las ISOs de Windows directamente de Microsoft e instalará versiones de prueba del software para su uso durante la investigación.
- Clone este repositorio en su propia máquina
git clone [email protected]:francisck/DanderSpritz_lab.git
- Asegúrese de tener instalado el plugin Vagrant-reload
vagrant plugin install vagrant-reload
- Para descargar las ISOs y realizar la construcción de las cajas Vagrant ejecute el siguiente comando:
packer build danderspritz_lab.json
- Una vez construidas las cajas Vagrant, inicie las máquinas virtuales y permítales continuar con algo de configuración adicional:
vagrant up
Crear un proyecto FuzzBunch
- Abra el Símbolo del sistema de Windows (cmd) y ejecute lo siguiente:
D:\
python fb.py
- Establezca una dirección de objetivo predeterminada de 192.168.40.3
- Establezca una dirección de callback predeterminada de 192.168.40.4
- No use redireccionamiento (al principio)
- Deje el directorio de registros predeterminado
- Cree un nuevo proyecto (opción 0)
- Asigne un nombre a su nuevo proyecto
- Deje el directorio de registros predeterminado

Explotar la Máquina Objetivo
- Ejecute el siguiente comando para explotar la máquina usando EternalBlue
use eternalblue
- Elija todas las opciones predeterminadas excepto el mecanismo de entrega. Use "FB" (despliegue tradicional) como mecanismo de entrega
- Una vez que EternalBlue tenga éxito, configure danderspritz y peddlecheap
Configurar e Iniciar DanderSpritz
- Abra otro Símbolo del sistema de Windows (cmd) y ejecute lo siguiente:
D:\
python configure_lp
- Permita Java a través del cortafuegos
- Seleccione
browse junto a "Log directory" y elija el nombre del proyecto FuzzBunch que creó

- Haga clic en "go"
Preparación de PeddleCheap (configurar el implante)
- En la consola de DanderSpritz, ejecute el siguiente comando:
pc_prep
- Seleccione el payload estándar x64-winnt level 3 sharedlib
5
- No seleccione opciones avanzadas
- Elija realizar un callback inmediato
- Use el ID de PC predeterminado (0)
- Seleccione "Yes" en "Do you want to listen?"
- No cambie los puertos de escucha
- Deje la dirección de "callback" predeterminada (127.0.0.1)
- No cambie el nombre del exe
- Use la clave predeterminada (opción 2)
- Valide que la configuración de PeddleCheap sea válida
- No configure con FC (felonycrowbar)
- Copie la ubicación del binario configurado:

Entregar el implante (peddlecheap) a través del backdoor DoublePulsar:
- En la ventana original de Fuzzbunch escriba:
use doublepulsar
- Elija "yes" cuando se le pregunte si desea que se le soliciten las variables
- Seleccione todas las variables predeterminadas excepto la arquitectura de destino (elija la opción 1)
1) x64 x64 64-bits
- Seleccione la función "RunDLL" (opción 2)
2) RunDLL Use an APC to inject a DLL into a user mode process.

- Deje todas las demás opciones predeterminadas y seleccione "Yes" cuando se le pregunte si desea ejecutar el plugin
- Debería ver "Doublepulsar succeeded"
Conectar al implante PeddleCheap con DanderSpritz
- En DanderSpritz seleccione "PeddleCheap" en la parte superior de la pantalla
- Seleccione la clave "default" del menú desplegable de claves
- Introduzca la dirección de la máquina objetivo (192.168.40.3)
- Seleccione "Connect to target"

- Seleccione el nombre de su proyecto Fuzzbunch
- Espere a que se complete la Encuesta de DanderSpritz (tomará bastante tiempo) y tendrá que responder algunas preguntas en el proceso
- ¡Benefíciese!
¡Úsalo para el bien, no para el mal!
El propósito de este proyecto es permitir que investigadores de seguridad construyan y configuren fácilmente un laboratorio DanderSpritz completamente funcional para ingeniería inversa y pruebas.
- No ejecute esto contra ningún objetivo fuera de este laboratorio.
- No use esto para "compromisos de equipos rojos"
- Sí Contribuya con su investigación a la comunidad
- Sí Póngase en contacto conmigo](https://twitter.com/francisckrs) si tiene alguna pregunta :)
Uso diario
Una vez que haya ejecutado packer una vez, no necesitará ejecutarlo de nuevo. Las cajas Vagrant estarán disponibles para reconstruir, derribar, reiniciar su laboratorio.
A continuación se presentan algunos comandos útiles que puede usar mientras trabaja con el laboratorio:
Uso básico de Vagrant
- Iniciar todos los hosts del Laboratorio DanderSpritz:
vagrant up
- Iniciar un host específico:
vagrant up <hostname>
- Reiniciar un host específico:
vagrant reload <hostname>
- Reiniciar un host específico y volver a ejecutar el proceso de aprovisionamiento:
vagrant reload <hostname> --provision
- Destruir un host específico
vagrant destroy <hostname>
- Destruir todo el entorno del Laboratorio DanderSpritz:
vagrant destroy
- Hacer una instantánea de una máquina:
vagrant snapshot save <hostname> <snapshot_name>
- Restaurar una instantánea de máquina:
vagrant snapshot restore <hostname> <snapshot_name>
- Verificar el estado de cada host:
vagrant status
- Suspender el entorno del laboratorio:
vagrant suspend
- Reanudar el entorno del laboratorio:
vagrant resume
Reactivar hosts de Windows caducados