PPID Spoofing — Forging the Process Tree
Why the Process Tree Matters
┌──────────────────────────────────────────────────────────────────────┐
│ Process Tree: Real vs. Spoofed │
│ │
│ WITHOUT PPID SPOOFING: │
│ explorer.exe (1234) │
│ └── WINWORD.EXE (5678) │
│ └── powershell.exe (9012) ← SUSPICIOUS — child of Word │
│ └── mimikatz.exe (1111) │
│ │
│ WITH PPID SPOOFING: │
│ explorer.exe (1234) │
│ ├── WINWORD.EXE (5678) ← real parent (invisible to EDR) │
│ └── powershell.exe (9012) ← appears as legitimate child of │
│ └── mimikatz.exe (1111) explorer │
│ │
│ The EDR sees PowerShell as a legitimate child of explorer. │
└──────────────────────────────────────────────────────────────────────┘The Mechanism: UpdateProcThreadAttribute
Implementation
Combining PPID Spoofing with Other Techniques
With Shellcode Injection
With Command Line Spoofing
Limitations and Modern Detections
References
PreviousReflective DLL Injection — DLLs That Load ThemselvesNextToken Impersonation — Identity Theft on Windows
Last updated