This reference summarises the three sample agents that ship with Ankou. Each agent shares the same tasking model (HMAC-wrapped JSON payloads, command ID decoding, chunked file transfers, loot metadata), but they intentionally differ in transport choice and operational extras.
- Transport: QUIC.
- Operational highlights:
- Supports operator-controlled beacon jitter (
jitter) alongside the base reconnect interval. - Executes shellcode (
injectsc) via direct system calls to evade anti-virus hooks. - Expands the built-in task set with file removal primitives (
rm,rmdir) in addition to the shared command core. - Marks loot-rich responses (
ls,get,put) so the relay can handle them without custom headers.
- Supports operator-controlled beacon jitter (
- Tasking and payload support:
- Registration and polling performed through HMAC-signed JSON bodies (no custom headers) sent over QUIC.
- Command set:
ls,get,put,cd,kill,ps,exec,reconnect,injectsc(hell's gate),rm,rmdir,jitter, plus raw shell execution for everything else. - File download logic automatically switches to 2 MB chunking for artefacts
=10 MB and verifies each chunk and the aggregate via MD5.
- File uploads expect hex-encoded payloads, persist them, and respond with
embedded
LOOT_ENTRIESmetadata for UI ingestion. - Process enumeration uses the Toolhelp snapshot APIs;
killcallsTerminateProcess.
- Transport: HTTPS.
- Operational highlights:
- Functions as the baseline web transport; traffic resembles standard JSON POST exchanges.
- Tasking and payload support:
- Registration, polling, and command responses use the same HMAC-wrapped JSON envelope shipped over HTTPS without bespoke headers.
- Command set:
ls,get,put,cd,kill,ps,exec,reconnect,injectsc(hell's gate),rm,rmdir,jitter, - Large file downloads transparently chunk at 2 MB with MD5 validation and a final session checksum; smaller files travel in a single response.
- File uploads accept hex-encoded content, create directories as needed, write to disk, then register a loot event with the server.
- Directory listings and downloads append
LOOT_ENTRIES:<json>to the output for GUI-side extraction;pssurfaces full Toolhelp snapshots.
- Transport: SSH.
- Operational highlights:
- Presents on the wire as routine SSH activity, which supports operational blending with administrative access.
- Supports on the fly ssh tunnels with haunt commands:
haunt bindip:port targetip:port,haunts(to list tunnels),haunt-kill tun-id - Reuses the established SSH session for tasking and loot so no new sockets are opened after the initial beacon.
- Tasking and payload support:
- Registration, polling, command execution, and loot posts all move through SSH channels using the shared HMAC-wrapped JSON body convention.
- Command set mirrors Phantasm:
ls,get,put,cd,kill,ps,exec,reconnect.jitter,rm,rmdir - Large file downloads/upload logic matches Phantasm (2 MB chunks, MD5 checks) but routes via SSH messages instead of HTTP calls.
ls/get/putoutputs embedLOOT_ENTRIESfor the UI;psandkillwrap the same Windows APIs as the other agents.- Uses system shell execution (
sh -c) for non-builtin commands, ensuring full pipe/redirect support over the SSH transport.
Refer back to each agent’s main.go for configuration knobs (listener host,
port, reconnect interval) before compiling for operations.