Das Ziel des DanderSpritz-Labors ist es, Forschern und Verteidigern zu ermöglichen, schnell eine voll funktionsfähige Version von DanderSpritz – Das Post-Exploitation-Toolset der Equation Group – sowie eine Windows Server 2008-Domäne und einen Client als Ziele aufzubauen. Das Windows-Ziel enthält einige Reverse-Engineering-Tools, die ich bei der Untersuchung von DanderSpritz und seinen Fähigkeiten als nützlich empfand.
Eine Website, die ich erstellt habe, um DanderSpritz-Fähigkeiten und -Tools zu dokumentieren: https://danderspritz.com
HINWEIS: Dieses Labor wurde in keiner Weise gehärtet (es ist absichtlich verwundbar) und läuft mit den Standard-Vagrant-Anmeldeinformationen. Bitte verbinden oder brücken Sie es nicht mit Netzwerken, die Ihnen wichtig sind.
Anforderungen
20 GB+ freier Festplattenspeicher
8 GB+ RAM
20 GB Bandbreitennutzung (zum Herunterladen von ISOs, Updates, Service Packs usw.)
Virtualbox (VMWare Fusion/Workstation kommt später)
DanderSpritz Labor starten
DanderSpritz verwendet Packer, Vagrant und das Vagrant-reload-Plugin, um das Labor von Grund auf zu installieren und zu konfigurieren. Packer lädt Windows-ISOs direkt von Microsoft herunter und installiert Testversionen der Software für Forschungszwecke.
Klonen Sie dieses Repo auf Ihren eigenen Rechner
git clone [email protected]:francisck/DanderSpritz_lab.git
Stellen Sie sicher, dass das Vagrant-reload-Plugin installiert ist
vagrant plugin install vagrant-reload
Führen Sie den folgenden Befehl aus, um die ISOs herunterzuladen und den Aufbau der Vagrant-Boxen durchzuführen:
packer build danderspritz_lab.json
Starten Sie die VMs, sobald die Vagrant-Boxen erstellt sind, und lassen Sie sie mit der zusätzlichen Konfiguration fortfahren:
vagrant up
Ein FuzzBunch-Projekt erstellen
Öffnen Sie die Windows-Eingabeaufforderung (cmd) und führen Sie Folgendes aus:
D:\python fb.py
Legen Sie eine Standard-Zieladresse von 192.168.40.3 fest
Legen Sie eine Standard-Rückrufadresse von 192.168.40.4 fest
Verwenden Sie (zunächst) keine Weiterleitung
Behalten Sie das Standardprotokollverzeichnis bei
Erstellen Sie ein neues Projekt (Option 0)
Benennen Sie Ihr neues Projekt
Behalten Sie das Standardprotokollverzeichnis bei
Die Zielmaschine ausnutzen
Führen Sie den folgenden Befehl aus, um die Maschine mit EternalBlue auszunutzen:
use eternalblue
Wählen Sie alle Standardoptionen außer dem Liefermechanismus. Verwenden Sie "FB" (traditionelle Bereitstellung) als Liefermechanismus
Konfigurieren Sie danderspritz und peddlecheap, sobald eternalblue erfolgreich ist
DanderSpritz konfigurieren & starten
Öffnen Sie eine weitere Windows-Eingabeaufforderung (cmd) und führen Sie Folgendes aus:
D:\python configure_lp
Erlauben Sie Java durch die Firewall
Wählen Sie Durchsuchen neben "Protokollverzeichnis" und wählen Sie den Namen des von Ihnen erstellten FuzzBunch-Projekts
Führen Sie in der DanderSpritz-Konsole den folgenden Befehl aus:
pc_prep
Wählen Sie den Standard-x64-winnt-Level-3-Sharedlib-Payload
5
Wählen Sie keine erweiterten Einstellungen
Wählen Sie, einen sofortigen Rückruf durchzuführen
Verwenden Sie die Standard-PC-ID (0)
Wählen Sie "Ja" bei "Möchten Sie zuhören?"
Ändern Sie die nicht Hörports
Behalten Sie die Standard-"Callback"-Adresse (127.0.0.1) bei
Ändern Sie den Exe-Namen nicht
Verwenden Sie den Standardschlüssel (Option 2)
Überprüfen Sie, ob die PeddleCheap-Konfiguration gültig ist
Konfigurieren Sie nicht mit FC (felonycrowbar)
Kopieren Sie den Speicherort der konfigurierten Binärdatei:
Das Implantat (peddlecheap) über die DoublePulsar-Hintertür ausliefern:
Geben Sie im ursprünglichen Fuzzbunch-Fenster ein:
use doublepulsar
Wählen Sie "ja", wenn Sie gefragt werden, ob Sie zur Eingabe von Variableneinstellungen aufgefordert werden möchten
Wählen Sie alle Standardvariableneinstellungen außer der Zielarchitektur (wählen Sie Option 1)
1) x64 x64 64-bits
Wählen Sie die "RunDLL"-Funktion (Option 2)
2) RunDLL Use an APC to inject a DLL into a user mode process.
Behalten Sie alle anderen Optionen als Standard bei und wählen Sie "Ja", wenn Sie gefragt werden, ob Sie das Plugin ausführen möchten
Sie sollten "Doublepulsar succeeded" sehen
Mit dem PeddleCheap-Implantat über DanderSpritz verbinden
Wählen Sie in DanderSpritz oben auf dem Bildschirm "PeddleCheap" aus
Wählen Sie den "Standard"-Schlüssel aus dem Schlüssel-Dropdown-Menü
Geben Sie die Adresse der Zielmaschine ein (192.168.40.3)
Wählen Sie "Mit Ziel verbinden"
Wählen Sie Ihren Fuzzbunch-Projektnamen
Warten Sie, bis die DanderSpritz-Umfrage abgeschlossen ist (wird eine Weile dauern), und Sie müssen unterwegs einige Fragen beantworten
Profitieren Sie!
Zum Guten verwenden, nicht zum Bösen!
Der Zweck dieses Projekts ist es, Sicherheitsforschern zu ermöglichen, ein voll funktionsfähiges DanderSpritz-Labor einfach für Reverse Engineering und Tests aufzubauen und zu konfigurieren.
Führen Sie dies nicht gegen Ziele außerhalb dieses Labors aus.
Verwenden Sie dies nicht für "Red Team-Einsätze"
Tragen Sie Ihre Forschungsergebnisse zur Community bei
Sobald Sie Packer einmal ausgeführt haben, müssen Sie es nicht erneut ausführen. Die Vagrant-Boxen stehen Ihnen zur Verfügung, um Ihr Labor neu aufzubauen, abzureißen, neu zu starten.
Nachfolgend finden Sie einige nützliche Befehle, die Sie bei der Arbeit mit dem Labor verwenden können:
Grundlegende Vagrant-Nutzung
Alle DanderSprotz-Lab-Hosts starten: vagrant up
Einen bestimmten Host starten: vagrant up <hostname>
Einen bestimmten Host neu starten: vagrant reload <hostname>
Einen bestimmten Host neu starten und den Bereitstellungsprozess erneut ausführen: vagrant reload <hostname> --provision
Einen bestimmten Host zerstören: vagrant destroy <hostname>
Die gesamte DanderSpritz-Lab-Umgebung zerstören: vagrant destroy
Eine Momentaufnahme einer Maschine erstellen: vagrant snapshot save <hostname> <snapshot_name>
Eine Momentaufnahme einer Maschine wiederherstellen: vagrant snapshot restore <hostname> <snapshot_name>
Status jedes Hosts überprüfen: vagrant status
Die Laborumgebung anhalten: vagrant suspend
Die Laborumgebung fortsetzen: vagrant resume
Abgelaufene Windows-Hosts reaktivieren
Wenn Sie auf ein Problem stoßen, dass die Testlizenz abgelaufen ist, können Sie die Hosts bis zu 3 Mal neu aktivieren (für 90 Tage Windows-Lizenz-Güte), indem Sie diesen Befehl in einer administrativen Eingabeaufforderung ausführen:
Einige Reverse-Engineering-/Sichtbarkeitstools vorinstalliert
Chocolatey (mit FireEye Flare REPO) für weitere Tool-Installationen verfügbar
DanderSpritz Box - Windows 10
DanderSpritz & Fuzzbunch vorinstalliert
Installierte Tools auf dem Ziel (Windows 7 SP1)
Sysmon
Sysinternal Tools (Procmon, TCPview, etc.)
API Monitor
InfoPe
HxD
PEView
Windbg
WireShark
Binary Ninja
HashCalc
IDA 7 Free
Ollydbg
Erweiterte Überwachungs-GPO
PowerShell-Protokollierungs-GPO
Windows-Ereignisse werden an Domänencontroller (WEC) weitergeleitet
Danksagungen/Ressourcen
Ein beträchtlicher Teil dieses Codes wurde ausgeliehen und angepasst von Chris Longs DetectionLab-Projekt sowie von Stefan Scherers packer-windows und adfs2 GitHub-Repos. Ein riesiges Dankeschön an alle, die mit ihrem Code dazu beigetragen haben, Projekte wie dieses einfacher (oder überhaupt möglich) zu machen.