Malware

HellBunny : Advanced Shellcode Loader For EDR Evasio

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
Varshini

Varshini is a Cyber Security expert in Threat Analysis, Vulnerability Assessment, and Research. Passionate about staying ahead of emerging Threats and Technologies.

Recent Posts

Understanding the Model Context Protocol (MCP) and How It Works

Introduction to the Model Context Protocol (MCP) The Model Context Protocol (MCP) is an open…

1 day ago

The file Command – Quickly Identify File Contents in Linux

While file extensions in Linux are optional and often misleading, the file command helps decode what a…

1 day ago

How to Use the touch Command in Linux

The touch command is one of the quickest ways to create new empty files or update timestamps…

1 day ago

How to Search Files and Folders in Linux Using the find Command

Handling large numbers of files is routine for Linux users, and that’s where the find command shines.…

1 day ago

How to Move and Rename Files in Linux with the mv Command

Managing files and directories is foundational for Linux workflows, and the mv (“move”) command makes it easy…

1 day ago

How to Create Directories in Linux with the mkdir Command

Creating directories is one of the earliest skills you'll use on a Linux system. The mkdir (make…

1 day ago