Bypassing Parent Child / Ancestry Detections
Defenders often engineer detections based on parent/child process relationships - i.e Excel spawns powershell - suspicious.
This lab is mostly based on the techniques discussed on https://www.countercept.com/blog/dechaining-macros-and-evading-edr/
Below are some techniques showing how those type of detections could be bypassed.
Spawning via WmiPrvse.exe using wmi
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process")
errReturn = objProcess.Create("calc", Null, objConfig, intProcessID)
Spawning via ShellCOM
Spawning via svchost.exe using XMLDOM

Spawning via svchost.exe using Scheduled Task

Shellcode Injection to Excel.exe Memory Using Windows APIs


Parent Process ID Spoofing
With this technique it is possible to specify the PID under which our process will be launched as well as process commandline arguments can be spoofed. Note that this is the same technique Cobalt Strike uses under the hood in its argue module:

References
Last updated
