DanderSpritz Lab
Objetivo
O objetivo do laboratório DanderSpritz é permitir que pesquisadores e defensores montem rapidamente uma versão totalmente funcional do DanderSpritz - O conjunto de ferramentas de pós-exploração do Equation Group e um Domínio Windows Server 2008 e cliente como alvos. O alvo Windows possui algumas ferramentas de engenharia reversa que considerei úteis ao investigar o DanderSpritz e suas capacidades.
Leia um pouco sobre o laboratório DanderSpritz aqui: https://medium.com/@francisck/introducing-danderspritz-lab-461912313d7c
Um site que criei para documentar as capacidades e ferramentas do DanderSpritz: https://danderspritz.com
NOTA: Este laboratório não foi endurecido de forma alguma (é intencionalmente vulnerável) e é executado com credenciais vagrant padrão. Por favor, não o conecte ou faça bridge com nenhuma rede pela qual você se importe.
Requisitos
- 20GB+ de espaço livre em disco
- 8GB+ de RAM
- 20GB de uso de banda (para baixar ISOs, atualizações, service packs, etc.)
- Packer v1.2.3 ou mais recente
- Vagrant v2.1.1 ou mais recente
- Plugin Vagrant-Reload
- Virtualbox (VMWare Fusion/Workstation em breve mais tarde)
Iniciando o DanderSpritz Lab
O DanderSpritz usa Packer, Vagrant e o plugin Vagrant-reload para instalar e configurar o laboratório do zero. O Packer baixará ISOs do Windows diretamente da Microsoft e instalará versões de avaliação do software para uso durante a pesquisa.
- Clone este repositório para sua máquina
git clone [email protected]:francisck/DanderSpritz_lab.git
- Certifique-se de ter o plugin Vagrant-reload instalado
vagrant plugin install vagrant-reload
- Para baixar as ISOs e realizar a construção das caixas Vagrant, execute o seguinte comando:
packer build danderspritz_lab.json
- Assim que as caixas Vagrant forem construídas, inicie as VMs e deixe-as continuar com algumas configurações adicionais:
vagrant up
Criar um projeto FuzzBunch
- Inicie o Prompt de Comando do Windows (cmd) e execute:
D:\
python fb.py
- Defina um endereço target padrão como 192.168.40.3
- Defina um endereço callback padrão como 192.168.40.4
- Não use redirecionamento (inicialmente)
- Deixe o diretório de logs padrão
- Crie um novo projeto (opção 0)
- Dê um nome ao seu novo projeto
- Deixe o diretório de logs padrão

Explorar a Máquina Alvo
- Execute o seguinte comando para explorar a máquina usando EternalBlue
use eternalblue
- Escolha todas as opções padrão exceto o mecanismo de entrega. Use "FB" (implantação tradicional) como mecanismo de entrega
- Quando o EternalBlue for bem-sucedido, configure o danderspritz e o peddlecheap
Configurar e Iniciar o DanderSpritz
- Inicie outro Prompt de Comando do Windows (cmd) e execute:
D:\
python configure_lp
- Permita o Java pelo firewall
- Selecione
browse ao lado de "Log directory" e escolha o nome do projeto FuzzBunch que você criou

- Clique em "go"
Preparação do PeddleCheap (configurar o implante)
- No console do DanderSpritz, execute o seguinte comando:
pc_prep
- Selecione o payload sharedlib padrão x64-winnt nível 3
5
- Não selecione configurações avançadas
- Escolha realizar um callback imediato
- Use o ID PC padrão (0)
- Selecione "Sim" para "Você quer escutar?"
- Não altere as portas de escuta
- Deixe o endereço "callback" padrão (127.0.0.1)
- Não altere o nome do executável
- Use a chave padrão (opção 2)
- Valide que a configuração do PeddleCheap é válida
- Não configure com FC (felonycrowbar)
- Copie o local do binário configurado:

Entregar o implante (peddlecheap) via backdoor DoublePulsar:
- Na janela original do Fuzzbunch, digite:
use doublepulsar
- Escolha "sim" quando perguntado se deseja ser solicitado a definir variáveis
- Selecione todas as configurações de variáveis padrão exceto a arquitetura alvo (escolha a opção 1)
1) x64 x64 64-bits
- Selecione a função "RunDLL" (opção 2)
2) RunDLL Use um APC para injetar uma DLL em um processo de modo de usuário.

- Deixe todas as outras opções padrão e selecione "Sim" quando perguntado se deseja executar o plugin
- Você deve ver "Doublepulsar succeeded"
- No DanderSpritz, selecione "PeddleCheap" no topo da tela
- Selecione a chave "default" no menu suspenso de chaves
- Insira o endereço da máquina alvo (192.168.40.3)
- Selecione "Connect to target"

- Selecione o nome do seu projeto Fuzzbunch
- Aguarde o Levantamento do DanderSpritz ser concluído (levará um bom tempo) e você terá que responder algumas perguntas ao longo do caminho
- Lucro!
Use para o bem, não para o mal!
O objetivo deste projeto é permitir que pesquisadores de segurança construam e configurem facilmente um laboratório DanderSpritz totalmente funcional para engenharia reversa e testes.
- Não execute isso contra nenhum alvo fora deste laboratório.
- Não use isso para "engajamentos de equipe vermelha"
- Faça Contribua com sua pesquisa de volta para a comunidade
- Faça Entre em contato comigo me para qualquer dúvida que você possa ter :)
Uso diário
Depois de executar o packer uma vez, você não precisará executá-lo novamente. As caixas Vagrant estarão disponíveis para você reconstruir, derrubar e reiniciar seu laboratório.
Abaixo estão alguns comandos úteis que você pode usar ao trabalhar com o laboratório:
Uso básico do Vagrant
- Iniciar todos os hosts do DanderSpritz Lab:
vagrant up
- Iniciar um host específico:
vagrant up <hostname>
- Reiniciar um host específico:
vagrant reload <hostname>
- Reiniciar um host específico e reexecutar o processo de provisionamento:
vagrant reload <hostname> --provision
- Destruir um host específico:
vagrant destroy <hostname>
- Destruir todo o ambiente DanderSpritz Lab:
vagrant destroy
- Capturar snapshot de uma máquina:
vagrant snapshot save <hostname> <snapshot_name>
- Restaurar um snapshot de uma máquina:
vagrant snapshot restore <hostname> <snapshot_name>
- Verificar o status de cada host:
vagrant status
- Suspender o ambiente do laboratório:
vagrant suspend
- Retomar o ambiente do laboratório:
vagrant resume
Re-armar hosts Windows expirados
Se você encontrar um problema em que a licença de teste expirou, você pode re-armar os hosts até 3 vezes (para 90 dias de boa licença do Windows) executando este comando em um prompt de comando administrativo
Você precisará reiniciar a máquina.
Diagrama do Laboratório

- Nome do Domínio: windomain.local
- Login de Administrador (todas as máquinas): vagrant:vagrant
- DC (Controlador de Domínio): 192.168.40.2/24
- Alvo: 192.168.40.3/24
- DanderSpritz: 192.168.40.4/24
Hosts do Laboratório
- DC - Controlador de Domínio Windows 2008 R2
- Controlador de Domínio Windows para Windomain.local
- GPO de Configuração do Servidor WEF
- GPO de registro do PowerShell
- GPO de política de auditoria aprimorada do Windows
- Alvo - Estação de Trabalho Windows 7
- Simula uma estação de trabalho / máquina alvo
- Associado ao domínio Windows Windomain.local
- Algumas ferramentas de reversão / visibilidade pré-instaladas
- Chocolatey (com repositório FireEye Flare) disponível para instalação adicional de ferramentas
- Caixa DanderSpritz - Windows 10
- DanderSpritz & Fuzzbunch pré-instalados
Ferramentas Instaladas no Alvo (Windows 7 SP1)
- Sysmon
- Ferramentas Sysinternals (Procmon, TCPview, etc.)
- API Monitor
- InfoPe
- HxD
- PEView
- Windbg
- WireShark
- Binary Ninja
- HashCalc
- IDA 7 Free
- Ollydbg
- GPO de Auditoria Aprimorada
- GPO de registro do PowerShell
- Eventos do Windows encaminhados para o Controlador de Domínio (WEC)
Créditos/Recursos
Uma porcentagem considerável deste código foi emprestada e adaptada do projeto DetectionLab do Chris Long, juntamente com os repositórios Github packer-windows e adfs2 do Stefan Scherer. Um enorme agradecimento a todos que contribuíram com seu código para tornar projetos como este mais fáceis (ou até mesmo possíveis).
Agradecimentos