HellBunny is a malleable shellcode loader written in C and Assembly utilizing direct and indirect syscalls for evading EDR hooks. It can be built as EXE, DLL, or XLL and offers a variety of QoL features that make it more adaptable.
The purpose of this research project was to develop a comprehensive understanding of the architecture and internals of the Windows operating system, including the Native API, the Process and Thread Environment Block, and the PE file format, while also exploring the techniques used by EDR software to collect telemetry and detect malware at runtime.
Features
- System Calls
- call the NtAPI directly
- perform direct system calls
- perform indirect system calls in ntdll.dll
- perform indirect system calls in win32u.dll
- System Service Number (SSN) resolving through Hell’s Gate and Halo’s Gate + an early hook detection (JMP opcode)
- Compile as
- EXE
- DLL
- XLL
- CRT Independence
- Shellcode Encryption:
- AES-256-CTR
- XChaCha20
- Custom DLL Entrypoint Name ( for sideloading attacks )
- IAT Camouflage
- Custom Module and Function Resolving from PEB (for hiding function imports)
- supports local and remote injection. design is open for implementation of additional injection methods
- String Hashing Algorithms:
- CRC32B
- FNV1A32B
- DJB2
- String Encryption: Strings are XOR encrypted using a single byte key to obfuscate them within the binary
- shellcode is downloaded from a remote webserver
- commandline arguments are erased if executed by rundll32