Shadow Dumper is a powerful tool used to dump LSASS (Local Security Authority Subsystem Service) memory, often needed in penetration testing and red teaming activities.
It offers flexible options to users and uses multiple advanced techniques to dump memory, allowing to access sensitive data in LSASS memory.
Capabilities
- Unhooked Injection (Modified Mimikatz Binary) – Utilizes unhooking to inject a modified Mimikatz binary, bypassing EDR hooks and evading detection.
- Unhooked Injection (Direct Syscalls with MDWD) – Implements direct syscalls for stealthy injection using MDWD, reducing the footprint left behind.
- Simple MiniDumpWriteDump API – Executes the straightforward MiniDumpWriteDump API method for standard LSASS memory extraction.
- MINIDUMP_CALLBACK_INFORMATION Callbacks – Uses callback functions for custom handling, offering greater control over the dumping process.
- Process Forking Technique – Forks the LSASS process, creating a memory clone and avoiding direct access to the target process.
- Direct Syscalls with MiniDumpWriteDump – Combines direct syscalls with MiniDumpWriteDump, enhancing stealth by avoiding typical API hooks.
- Native Dump with Direct Syscalls (Offline Parsing) – Leverages direct syscalls to create a native dump with essential streams for offline parsing, perfect for low-noise operations.
Build
- Clone ShadowDumper repository
- Open in Visual Studio 2019 (v142)
- C++ Language Standard ISO C++14 Standard or Higher
- Download the shellcodes pan.bin and off.bin from [Resource Shellcodes] folder, place them somewhere in your computer and change the path in ShadowDumper.rc file before compiling.
- Make sure MASM should be selected. [Right-click on your project in solution explorer, click build dependencies, click build customization and select .masm]
- Right click on ASM files and go to properties and make sure item type should be Microsoft Macro Assembler
- Compile project
Usage
To run ShadowDumper, execute the compiled binary from the powershell.
Default Mode
- No Parameter Provided: Show the user friendly console with multiple options to execute
CommandLine Mode
- Parameter: -h: Displays a help menu with all available options.
ShadowDumper.exe
- Parameter: 1: To dump lsass memory using unhooking technique to inject modified mimikatz binary.
ShadowDumper.exe
- Parameter: 2: To dump lsass memory using unhooking technique to inject binary using direct syscalls with MDWD.
ShadowDumper.exe
- Parameter: 3: To dump lsass memory using simple MiniDumpWriteDump API.
ShadowDumper.exe
- Parameter: 4: To dump lsass memory using MINIDUMP_CALLBACK_INFORMATION callbacks.
ShadowDumper.exe
- Parameter: 5: To dump lsass memory using process forking technique.
ShadowDumper.exe
- Parameter: 6: To dump lsass memory using direct syscalls with MiniDumpWriteDump.
ShadowDumper.exe
- Parameter: 7: To dump lsass memory using direct syscalls (native dump with needed streams for parsing offline)