PPID (Parent Process ID) spoofing is a technique used to make a newly created process appear as if it was spawned by a specified parent process, rather than the actual process creating it.
This Rust program uses the Windows API to perform PPID spoofing by leveraging InitializeProcThreadAttributeList
and UpdateProcThreadAttribute
to set a custom parent process handle for a new process.
SeDebugPrivilege
and accessing process handles.cargo build --release
cargo run --release -- <ppid> <commandline>
<ppid>
: The Process ID of the desired parent process (e.g., explorer.exe
).<commandline>
: The command to execute (e.g., "notepad.exe"
or "cmd.exe /c dir"
).Example:
cargo run --release -- 1234 "notepad.exe"
tasklist | findstr explorer
runas
.OpenProcess
.InitializeProcThreadAttributeList
.UpdateProcThreadAttribute
.CreateProcessW
, spoofing the PPID.Download this PoC: Download