Mugen無限 Mugen
/

Planned features and improvements for Mugen.

This is a living document. Nothing here is a commitment.


v0.1 - The Fragrant Flower Blooms With Dignity ✓

Initial release. Establishes the framework foundation: full Havoc rebrand, new Linux agent, loot manager, Python API, Mugen UI.

Core / Framework

  • Full Havoc -> Mugen rebrand - manga theme, name, Python module
  • Themes - Mugen (sakura pink) + Havoc Classic (Dracula), switchable from navbar, persisted via QSettings
  • Agent ID prefixes - DN-XXXXXXXX for Demon, TU-XXXXXXXX for Tengu
  • make rebuild - recompile teamserver + client without wiping cmake cache
  • DEADBEEF magic bytes randomization - unique value per server instance
  • djb2 HASH_KEY randomization - unique value per payload build
  • DLL export function name randomization - replaces the static Start signature per build

Tengu - Linux agent

  • HTTP/HTTPS C2, configurable sleep + jitter, configurable User-Agent
  • Base commands: shell, sleep, exit, pwd, ls, cd, cat, download, upload, mkdir, rm, cp, chmod
  • Process management: ps, kill
  • Identity: whoami (uid/euid, groups, capabilities, sudo, TTY), id, env
  • Network recon: netstat, arp, route, ifconfig - parsed from /proc, no external binary
  • Port scanner - TCP connect scan, IP or CIDR, 64 parallel connections
  • Credential harvester - SSH keys, cloud tokens (AWS/GCP/Azure), shell history, git, docker, kube, shadow (harvest)
  • Process memory scan - /proc/<pid>/mem without ptrace, credential pattern matching (procdump)
  • Keylogger - evdev raw input + X11 fallback, no external binary (keylog)
  • In-memory ELF execution - memfd_create, zero disk writes (memfd)
  • Persistence: persist cron, persist systemd, persist bash
  • Screenshot: X11 (scrot), Wayland (grim), ImageMagick (import)
  • SOCKS5 proxy over C2 channel
  • Reverse port forward - rportfwd add/rm/list, bidirectional relay without SOCKS5
  • ELF BOF loader - x86_64 in-process execution with full BeaconAPI; trampoline support for PLT32 relocations outside 32-bit range (inline-execute / bof)
  • info - local session metadata, no round-trip
  • help - tabular command list
  • DNS C2 transport - TXT record polling, base32-encoded frames in QNAME labels
  • DoH C2 transport - DNS-over-HTTPS POST /dns-query
  • TCP transport - outbound TCP, cross-platform pivoting (Windows Demon -> Linux Tengu)
  • ChaCha20 application-layer encryption - all frames encrypted post-INIT on all transports
  • Kill date + working hours - configured at payload build time
  • Explorer UI - process list + file explorer in Qt client
  • Live privilege escalation detection - whoami updates euid-based username in session table and graph in real-time
  • Proxy support - HTTP/SOCKS5 at build time, HTTP_PROXY/HTTPS_PROXY env var fallback, NTLM/Basic auth
  • Sleep obfuscation - XOR-encrypts agent code pages (PROT_NONE) during sleep, decrypts via helper thread with pre-resolved libc pointers
  • String obfuscation - per-build XOR key, pre-encrypted string constants injected at compile time via SXOR macro
  • Privilege escalation recon - SUID/SGID scan, sudo -l, writable PATH dirs, processes with non-zero capabilities (privesc)

Client UI

  • Manga dark theme (sakura pink) + Havoc Classic (Dracula) - switchable, persisted
  • Dashboard - 4 stat cards (live/dead/total), last 8 credentials, last 8 downloads
  • Session table with live health countdown (color-coded green/yellow/red)
  • Console search (Ctrl+F) - highlight, navigation, match counter, Escape to close
  • Session table query filter - space-separated tokens, named fields (type:TU health:live user:root)
  • Session notes & tags - free-form annotations, tag column in session table, SQLite persistence
  • Loot Manager - screenshots with inline viewer (zoom, fit, save), downloads, credentials
  • Map view - world map with geolocated agents, live (pink) / dead (grey) dots
  • Desktop notifications on agent check-in (tray icon + toast)
  • Session graph edge labels - links display ListenerName [TYPE] for C2 edges and pivot for SMB pivot edges

Python API

  • import mugen - full HavocFramework/Modules compatibility (import havoc also works)
  • RegisterTenguCommand - Python commands scoped to Tengu sessions
  • RegisterCommand(agent="Tengu") - alternative registration syntax
  • Packer globally available without import
  • mugen.AddCredential() - log credentials from scripts into the Loot Manager
  • Module auto-loader - all .py from ~/.mugen/modules/ loaded at startup
  • Proxy support - HTTP_PROXY/HTTPS_PROXY env awareness, NTLM proxy auth (Demon + Tengu)

Teamserver

  • HTTP/HTTPS listeners
  • DNS listener
  • DoH listener
  • TCP listener (cross-platform pivoting)

v0.2 - My Dress-Up Darling - general improvements + operational capabilities

v0.1 and v0.2 are general improvement releases. Goal: make the framework solid and operational before tackling the big items.

Network evasion

  • Malleable C2 profile for Tengu - configurable HTTP headers, URIs, user-agent per profile (like Demon)
  • JA3/JA3S fingerprint randomization - rotate TLS client hello parameters to avoid static signatures
  • Domain fronting - Host: header override per profile, for Demon and Tengu

Tengu

  • ELF BOF toolkit - Linux equivalents of SituationalAwareness BOFs (advanced /proc enumeration, capability dump, who)
  • Advanced persistence - LD_PRELOAD, /etc/profile.d (cron/systemd/bash already done in v0.1)
  • Lateral movement - SSH key harvesting + spray, pivot over existing SSH session
  • Container awareness - cgroup namespace detection, Docker socket exposure, escape primitives

Demon

  • Crystal Palace loader integration - modular evasion layer via Crystal-Havoc (Calvin Roth, MIT), decoupled from the Demon implant core; operators plug it in if they need it
  • Custom reflective loader - replace the Havoc-inherited reflective loader with a clean Mugen implementation
  • PIC shellcode conversion - full position-independent shellcode format, no import table; makes Demon compatible with any external loader, packer, or crypter
  • ChaCha20 application-layer encryption - encrypt Demon frames before sending on all transports, matching Tengu
  • In-memory .NET assembly execution - execute-assembly style, fork-and-run in a sacrificial process, output via named pipe
  • Token vault - named in-memory token store, switch without returning to the source process, auto-impersonate at spawn, make_token without LSASS

Arsenal Kit

  • Artifact Kit - customizable shellcode runner/loader templates (EXE, DLL, shellcode format) selectable at build time
  • Sleep Mask Kit - pluggable sleep obfuscation interface for Demon; swap the inherited Havoc implementation with a custom one per operator

Python API / Modules

  • Linux module collection - SituationalAwareness, persistence, privesc helpers in Python via Tengu BOF API
  • mugen.AgentInfo(agent_id) - expose full session metadata to scripts
  • mugen.OnTaskComplete(agent_id, callback) - callback triggered when a task completes
  • mugen.AddContextMenu(label, handler) - add right-click entries from a script

Resource Manager

  • Server-side file storage - upload executables, BOFs, and scripts to the teamserver once (data/resources/), reference by name in commands
  • Download - retrieve any stored file from the teamserver to local disk via a save dialog
  • Overwrite protection - uploading a file whose name already exists prompts for confirmation before replacing
  • Search bar - real-time filter on name, kind, and date
  • Reference by name - bof, inline-execute, memfd, and execute-assembly accept a bare filename; teamserver resolves the path automatically
  • Uploader column - tracks which operator uploaded each file
  • SHA-256 integrity - hash computed server-side at upload, stored in DB, shown as tooltip on the filename
  • Context menu - right-click any row for Download / Delete without requiring a prior selection

Client UI

  • Split console view - two agent consoles side by side
  • Actions button - quick-action menu next to the session table filter (Beacon Builder, Process List, File Explorer)
  • Session table column customization - hide/reorder columns, persist layout
  • Payload builder UX - live config preview, one-liner copy-paste generator
  • Certificate pin viewer - display teamserver TLS fingerprint in the connection dialog
  • Multi-select sessions + bulk actions - select multiple agents and send a command to all (shell, sleep, kill)
  • Bulk actions expansion - extend multi-select beyond shell / sleep / kill: set tag, set alias, mark dead, sleep with jitter
  • Persistent task history - all commands and output stored in SQLite, survive restart/reconnect; History tab per agent with search, comment, delete
  • Task status - each task has a status (queued / sent / processing / completed / error) with timestamp and duration, visible in the agent console and as a per-agent list; operators can see whether a command is waiting on the next beacon or already done
  • Tasks widget - View → Ops → Tasks: live table of every task across all agents (status, agent, alias, operator, command, duration); filterable, double-click opens the agent console
  • Ops hub - View → Ops is a single tab with an internal navbar (Screenshots, Credentials, Downloads, Resources, Tasks, Networking); replaces the separate View entries
  • Loot screenshots & downloads persistence - stored under data/loot/agents/, restored to Ops when an operator connects, survive teamserver restart
  • Loot Download / Delete - Ops → Screenshots and Downloads: Download saves the file to the operator machine, Delete removes it from the teamserver; also in the row context menu
  • Operator attribution - display which operator ran each command in a shared agent console
  • Operator presence - show in real time which agents other operators are interacting with
  • Multi-teamserver - connect to multiple teamservers simultaneously from a single client
  • File transfer progress - progress bar and size estimate for uploads and downloads
  • Agent aliasing - assign a short human-readable name to an agent (e.g. dc01-system), shown in a dedicated ALIAS column next to the ID; stored teamserver-side, shared by all operators, survives reconnects and restarts
  • Alias in console tab titles - console tabs currently show [TU-xxxx] user/host and ignore the alias; when an alias is set, the tab should display it (e.g. [dc01-system] user/host)
  • Notes & tags teamserver-side - notes and tags are stored in the local client SQLite today, so other operators never see them; persist them on the teamserver like aliases, shared across operators and surviving reconnects
  • Remove Map View - drop the geolocation map (ip-api.com); unused in operations and leaks the operator IP to a third party
  • Split console reuse - split view currently creates new DemonInteracted widgets and only mirrors output; reuse the existing session consoles so local command history, focus, and task state stay in sync
  • Agent timeline - chronological view of all tasks for a single agent; useful for post-engagement reconstruction

Networking (agent right-click)

  • SOCKS5 proxy - right-click -> Networking -> SOCKS5 -> Start.../Stop, teamserver-side SOCKS5 listener tunneling through the agent; persists across restarts
  • Port forwarding - right-click -> Networking -> Port Forward -> Add.../Remove..., bind a local port and forward through the agent; persists across restarts
  • SOCKS manager window - Actions -> SOCKS Manager: global view of all active SOCKS5 tunnels (agent ID, port) with Stop button
  • Port forward manager window - Actions -> Port Forward Manager: global view of all active port forwards (agent ID, bind port, remote host:port) with Remove button

v0.3 - Go API + start replacing Havoc code

Major goal: begin progressively replacing the Havoc-inherited source code with 100% Mugen code. Drop Python in favor of Go for all API and modules.

API - Python -> Go migration

  • Drop Python API - full deprecation of the mugen Python module and import havoc compatibility
  • Go module API - compiled .so plugins loaded dynamically by the teamserver, or native embedded modules
  • Port existing modules - rewrite current Python modules in Go (SituationalAwareness, persistence, privesc)
  • Go plugin SDK - documentation and stable interface for writing Mugen modules in Go

Client UI refactor (exploratory)

  • Sidebar navigation - replace the current mini-navbar with a persistent left sidebar for primary sections (sessions, callbacks, resource manager, loot, scripts, etc.); top navbar kept but stripped to Mugen menu, theme toggle, and About only - idea to be refined

Client stability

  • WebSocket heartbeat - 30-minute keepalive ping to prevent idle disconnects by reverse proxies or the teamserver; the inherited Havoc client has no keepalive
  • Null-safety in packet handler - guard against a race where a packet arrives before Packager is initialized; currently crashes the client
  • Package memory management - packets allocated in DecodePackage are never freed after dispatch; fix the progressive memory leak
  • Exception wrappers in WebSocket handlers - uncaught exceptions in the message handler crash the client; wrap and log instead

Security hardening

  • Per-IP brute-force protection - exponential backoff on failed auth attempts (per IP, not per username to avoid lockouts), auto-decay after inactivity, memory-only
  • Per-session unique key exchange - replace the inherited static/fingerprinted Havoc KEX with a per-agent HMAC-based derivation + HKDF key expansion; eliminates the static network signature shared across all Demon agents

Progressive Havoc code replacement

  • Audit of inherited code - identify and document all parts of the codebase that remain unmodified Havoc code
  • Teamserver refactoring - replace inherited handlers and data structures with a 100% Mugen architecture
  • Demon agent protocol - document and stabilize the Demon binary protocol to enable a clean reimplementation

New agents

  • macOS agent - Mach-O implant in C/ObjC, launchd persistence, Keychain access, TCC bypass primitives
  • Cross-platform shellcode stager - minimal HTTP stager (~1KB) for Linux and macOS

Infrastructure

  • Docker packaging - docker-compose up to start a full teamserver + redirector stack
  • One-line install script (Debian/Ubuntu/Arch/Kali)
  • CI/CD pipeline - GitHub Actions: build client, build teamserver, Go tests on every PR
  • Integration tests - end-to-end automated: start teamserver, connect client, generate payload, verify check-in

Extensibility

  • External agent SDK - documented protocol + Go library for implementing a custom agent
  • gRPC transport - alternative to WebSocket for client-server communication

Ongoing / Maintenance

  • Security audit of teamserver HTTP handler and authentication flow
  • Performance: reduce client memory usage at high session count (> 500)
  • Backward compatibility of .yaotl profiles across versions

Release names

VersionNameStatus
v0.1The Fragrant Flower Blooms With DignityReleased
v0.2My Dress-Up DarlingIn progress
v0.3TBDPlanned