Dolos Mythic Agent Wrapper - encode agents on remote/external infrastructure with traditional tools
933
Mythic wrapper payload type - encode shellcode on your own remote/external infrastructure with traditional scripting and tools.
Dolos takes an existing built payload, transfers it to an external server over SSH, runs your encoder, and returns the result. It does no encoding itself - the remote encoder does all the work.
e.g connect to your own licenced copy of Balliskit's ShellcodePack tools and have all the processing and logs ingested automatically into Mythic's database.

Edit Payload_Type/dolos/configs/encoders/ - each subdirectory has an encoder_profile.json:
{
"index": 0,
"label": "PyEncoder_v1",
"enabled": true,
"command": "py.exe C:\\tools\\encoder.py {workdir}\\{input} {workdir}\\{output}",
"ssh_server": {
"host": "192.168.1.100",
"port": 22,
"username": "operator",
"password": "",
"keys": { "enabled": true, "path": "../../ssh_keys/tiny11/id_ed25519" }
},
"timeout": 300,
"success_string": "ENCODING_SUCCESS",
"fail_string": "ENCODING_FAILED",
"install_tools": true,
"toolset": "pyencoderv1",
"bypass_profiles": ""
}
Copy test_encoders/encoder.py to C:\tools\encoder.py. Requires Python (py.exe) and csc.exe (built into Windows). If install_tools is true, Dolos will attempt to install Python automatically.
From your Mythic directory:
sudo ./mythic-cli install github https://github.com/3mrgnc3/Dolos
This pulls the pre-built Docker image from Docker Hub. No local build required.
To install from a local clone instead:
sudo ./mythic-cli install folder /path/to/Dolos
To reinstall or update:
sudo ./mythic-cli uninstall dolos
sudo ./mythic-cli install github https://github.com/3mrgnc3/Dolos
Mythic UI → Create Wrapper → select a payload → select Dolos → pick encoder → Build.
Once installed, full documentation is available in the Mythic UI under the Dolos agent docs, including build parameter details, encoder setup guides, and troubleshooting.
Payload_Type/dolos/configs/
├── encoders/
│ └── pyencoder/
│ └── encoder_profile.json ← sample (placeholder credentials)
├── ssh_keys/
│ └── (add your key directories)
└── tools/
├── pyencoderv1/ ← installs Python on remote servers
│ ├── install_windows.ps1
│ └── install_linux.sh
├── donut_x64/SETUP.md ← donut.exe is standalone
├── balliskit/SETUP.md ← commercial tools from balliskit.com
└── passthrough/SETUP.md ← needs Python
Private keys and passwords are gitignored. The repo ships a sample pyencoder profile only. Operators customize on the server.
Regenerate Shellcode build param.resp.payload lowercase fix.Content type
Image
Digest
sha256:3e197e561…
Size
448.1 MB
Last updated
about 7 hours ago
docker pull 3mrgnc3/mythic-c2-dolos