Laboratorio DanderSpritz
Scopo
L'obiettivo del laboratorio DanderSpritz è consentire a ricercatori e difensori di allestire rapidamente una versione completamente funzionante di DanderSpritz - Il toolkit di post-sfruttamento del Gruppo Equation e un dominio Windows Server 2008 e un client come target. Il target Windows contiene alcuni strumenti di reverse engineering che ho trovato utili durante l'investigazione di DanderSpritz e delle sue capacità.
Leggi qualcosa sul laboratorio DanderSpritz qui: https://medium.com/@francisck/introducing-danderspritz-lab-461912313d7c
Un sito web che ho creato per documentare le capacità e gli strumenti di DanderSpritz: https://danderspritz.com
NOTA: Questo laboratorio non è stato indurito in alcun modo (è intenzionalmente vulnerabile) e viene eseguito con credenziali vagrant predefinite. Non collegarlo o collegarlo a nessuna rete a cui tieni.
Requisiti
- 20GB+ di spazio libero su disco
- 8GB+ di RAM
- 20GB di utilizzo della larghezza di banda (per scaricare ISO, aggiornamenti, service pack, ecc.)
- Packer v1.2.3 o successivo
- Vagrant v2.1.1 o successivo
- Plugin Vagrant-Reload
- Virtualbox (VMWare Fusion/Workstation in arrivo più tardi)
Avvio del laboratorio DanderSpritz
DanderSpritz utilizza Packer, Vagrant e il plug-in Vagrant-reload per installare e configurare il laboratorio da zero. Packer scaricherà le ISO di Windows direttamente da Microsoft e installerà versioni di prova del software per l'uso durante la ricerca.
- Clona questo repository sulla tua macchina
git clone [email protected]:francisck/DanderSpritz_lab.git
- Assicurati di avere installato il plug-in Vagrant-reload
vagrant plugin install vagrant-reload
- Per scaricare le ISO ed eseguire la creazione delle scatole Vagrant, esegui il comando seguente:
packer build danderspritz_lab.json
- Una volta create le scatole Vagrant, avvia le VM e lascia che continuino con alcune configurazioni aggiuntive:
vagrant up
Creare un progetto FuzzBunch
- Avvia il prompt dei comandi di Windows (cmd) ed esegui quanto segue:
D:\
python fb.py
- Imposta un indirizzo target predefinito a 192.168.40.3
- Imposta un indirizzo callback predefinito a 192.168.40.4
- Non utilizzare il reindirizzamento (all'inizio)
- Lascia la directory dei log predefinita
- Crea un nuovo progetto (opzione 0)
- Assegna un nome al tuo nuovo progetto
- Lascia la directory dei log predefinita

Sfruttare la macchina target
- Esegui il comando seguente per sfruttare la macchina usando EternalBlue
use eternalblue
- Scegli tutte le opzioni predefinite tranne il meccanismo di distribuzione. Usa "FB" (deploy tradizionale) come meccanismo di distribuzione
- Una che eternalblue ha successo, configura danderspritz e peddlecheap
Configurare e avviare DanderSpritz
- Avvia un altro prompt dei comandi di Windows (cmd) ed esegui quanto segue:
D:\
python configure_lp
- Consenti a Java attraverso il firewall
- Seleziona
sfoglia accanto a "Directory dei log" e scegli il nome del progetto FuzzBunch che hai creato

- Fai clic su "vai"
Preparazione PeddleCheap (configurare l'impianto)
- Nella console di DanderSpritz, esegui il comando seguente:
pc_prep
- Seleziona il payload standard x64-winnt level 3 sharedlib
5
- Non selezionare le impostazioni avanzate
- Scegli di eseguire un callback immediato
- Usa l'ID PC predefinito (0)
- Seleziona "Sì" a "Vuoi ascoltare?"
- Non modificare le porte di ascolto
- Lascia l'indirizzo "callback" predefinito (127.0.0.1)
- Non cambiare il nome dell'exe
- Usa la chiave predefinita (opzione 2)
- Verifica che la configurazione di PeddleCheap sia valida
- Non configurare con FC (felonycrowbar)
- Copia la posizione del binario configurato:

Distribuire l'impianto (peddlecheap) tramite backdoor DoublePulsar:
- Nella finestra originale di Fuzzbunch digita:
use doublepulsar
- Scegli "sì" quando ti viene chiesto se vuoi essere interrogato per le impostazioni delle variabili
- Seleziona tutte le impostazioni predefinite delle variabili tranne l'architettura di destinazione (scegli l'opzione 1)
1) x64 x64 64-bits
- Seleziona la funzione "RunDLL" (opzione 2)
2) RunDLL Use an APC to inject a DLL into a user mode process.

- Lascia tutte le altre opzioni predefinite e seleziona "Sì" quando ti viene chiesto se vuoi eseguire il plugin
- Dovresti vedere "Doublepulsar riuscito"
Connettersi all'impianto PeddleCheap con DanderSpritz
- In DanderSpritz seleziona "PeddleCheap" nella parte superiore dello schermo
- Seleziona la chiave "default" dal menu a discesa delle chiavi
- Inserisci l'indirizzo della macchina target (192.168.40.3)
- Seleziona "Connetti al target"

- Seleziona il nome del tuo progetto Fuzzbunch
- Attendi il completamento del Sondaggio DanderSpritz (ci vorrà un bel po') e dovrai rispondere ad alcune domande lungo il percorso
- Guadagna!
Usalo per il bene, non per il male!
Lo scopo di questo progetto è consentire ai ricercatori di sicurezza di costruire e configurare facilmente un laboratorio DanderSpritz completamente funzionante per il reverse engineering e i test.
- Non eseguire questo contro alcun target al di fuori di questo laboratorio.
- Non utilizzarlo per "impegni red team"
- Contribuisci con le tue ricerche alla comunità
- Contatta me per qualsiasi domanda tu possa avere :)
Utilizzo quotidiano
Una volta eseguito packer una volta, non sarà necessario eseguirlo di nuovo. Le scatole Vagrant saranno disponibili per ricostruire, smantellare, riavviare il laboratorio.
Di seguito sono riportati alcuni comandi utili che potresti utilizzare mentre lavori con il laboratorio:
Utilizzo base di Vagrant
- Avvia tutti gli host del laboratorio DanderSprotz:
vagrant up
- Avvia un host specifico:
vagrant up <hostname>
- Riavvia un host specifico:
vagrant reload <hostname>
- Riavvia un host specifico e ri-esegui il processo di provisioning:
vagrant reload <hostname> --provision
- Distrugge un host specifico
vagrant destroy <hostname>
- Distrugge l'intero ambiente del laboratorio Danderspritz:
vagrant destroy
- Crea uno snapshot di una macchina:
vagrant snapshot save <hostname> <snapshot_name>
- Ripristina uno snapshot di una macchina:
vagrant snapshot restore <hostname> <snapshot_name>
- Controlla lo stato di ciascun host:
vagrant status
- Sospendi l'ambiente del laboratorio:
vagrant suspend
- Riprendi l'ambiente del laboratorio:
vagrant resume
Riarmare gli host Windows scaduti
Se riscontri un problema in cui la licenza di prova è scaduta, puoi riarmare gli host fino a 3 volte (per 90 giorni di bontà della licenza Windows) eseguendo questo comando su un prompt dei comandi amministrativo
Dovrai riavviare la macchina.
Diagramma del laboratorio

- Nome dominio: windomain.local
- Login amministratore (tutte le macchine): vagrant:vagrant
- DC (Controller di dominio): 192.168.40.2/24
- Target: 192.168.40.3/24
- DanderSpritz: 192.168.40.4/24
Host del laboratorio
- DC - Controller di dominio Windows 2008 R2
- Controller di dominio Windows per Windomain.local
- Configurazione GPO del server WEF
- GPO di registrazione PowerShell
- GPO dei criteri di controllo avanzato di Windows
- Target - Workstation Windows 7
- Simula la workstation/macchina target
- Unita al dominio AD Windows Windomain.local
- Alcuni strumenti di reverse engineering/visibilità preinstallati
- Chocolatey (con FireEye Flare REPO) disponibile per ulteriori installazioni di strumenti
- DanderSpritz Box - Windows 10
- DanderSpritz e Fuzzbunch preinstallati
Strumenti installati sul target (Windows 7 SP1)
- Sysmon
- Strumenti Sysinternals (Procmon, TCPview, ecc.)
- API Monitor
- InfoPe
- HxD
- PEView
- Windbg
- WireShark
- Binary Ninja
- HashCalc
- IDA 7 Free
- Ollydbg
- GPO di controllo avanzato
- GPO di registrazione PowerShell
- Eventi di Windows inoltrati al controller di dominio (WEC)
Crediti/Risorse
Una percentuale considerevole di questo codice è stata presa in prestito e adattata dal progetto DetectionLab di Chris Long insieme ai repository Github packer-windows e adfs2 di Stefan Scherer. Un enorme ringraziamento a tutti coloro che hanno contribuito con il loro codice a rendere progetti come questo più facili (o addirittura possibili).
Riconoscimenti