In-process runtimes

← maldev README · docs/index

In-process loaders that execute foreign code (BOFs, .NET assemblies, full Windows PEs) without spawning child processes. The implant becomes its own post-exploitation runtime — useful when child-process creation is heavily monitored.

Where to start (novice path):

  1. bof — load a Cobalt-Strike-style BOF (small custom C-compiled gadget) in-process. Cheapest in-process post-ex runtime.
  2. pe — run a full Windows EXE or DLL in-process via the embedded No-Consolation BOF, capture its stdout. Drop-in replacement for CreateProcess when operator tools ship as .exe.
  3. clr — host the .NET CLR in-process to run Mimikatz / Seatbelt / SharpHound assemblies without spawning powershell.exe or dropping .exe to disk.

All three avoid child-process creation. Pair with evasion/preset so the runtime calls don't tip AMSI / ETW.

Packages

PackageTech pageDetectionOne-liner
runtime/bofbof-loader.mdquietBeacon Object File / COFF loader for in-memory x64 object-file execution
runtime/pepe-loader.mdmoderateFull Windows EXE / DLL execution in-process via embedded No-Consolation BOF
runtime/clrclr.mdmoderateIn-process .NET CLR hosting via ICLRMetaHost / ICorRuntimeHost

Quick decision tree

You want to…Use
…run a small custom C-compiled gadget without dropping an EXEruntime/bof
…run a Windows EXE (Mimikatz, Rubeus, sysinternals) in-processruntime/pe
…run a .NET assembly (Mimikatz, Seatbelt, SharpHound) in-processruntime/clr
…drop a managed assembly to disk and run itnot this area — see Donut via pe/srdi

MITRE ATT&CK

T-IDNamePackagesD3FEND counter
T1059Command and Scripting Interpreterruntime/bof (in-process gadget runtime), runtime/pe (in-process EXE)D3-PSA
T1620Reflective Code Loadingruntime/clr, runtime/peD3-PMA, D3-PSA

See also