Releases: shell-dot/tuoni
Releases · shell-dot/tuoni
0.13.0
Release Notes - Tuoni v0.13.0
Highlights
- Multi-Server Support - Major overhaul including spawn across servers, multi-server notifications, redesigned left menu for better server overview, and tab persistence per server connection
- Major Performance Improvements - Event actor caching, parallel shutdown of command queues and listeners, command template caching, deferred file list loading, and virtual scrolling for large directories
- Agent Blocking - New
BLOCKEDagent status with endpoints to block/unblock agents, UI dialogs, and bulk block-all/block-selected actions - Evasion & Commercial Improvements - New AMSI bypass for the commercial agent, .NET listener code obfuscation, obfuscation configuration for commercial payloads, self-destruction via
diecommand andautoDestructDatepayload option, DNS listener rotation fix,keepConnectionsAlivefor HTTP listeners
Server
New Features
- Agent block/unblock - New API endpoints to block and unblock agents; introduces
AgentStatusto properly handle BLOCKED state with additional checks - Cancel queued commands - Calling the stop endpoint now cancels a command if it hasn't been sent to the agent yet
- Edit payload name - New endpoint to rename payloads after creation
- Script alias descriptions - Script aliases can now have an optional description field
- SDK settings - Improved setting registration mechanism for SDK plugins
- Linux e2e testing - Added option to run e2e tests with Linux agents
Bug Fixes
- Fix failed commands being re-queued on startup
- Fix command canceling sometimes removing other queued commands from the queue
- Fix payload endpoint permissions
- Fix DNS listener host rotation for commercial payloads; resolver now also accepts domain names instead of just IP addresses
- Fix IP separators in Linux & BSD DNS listeners
- Fix rportfwd configuration info
- Fix portscan crash condition in BSD templates
- Fix
lscommand basedir when using wildcards - Fix download command handling of NT kernel namespace paths
- Fix duplicate key exception in EntityCache
Evasion & Commercial Improvements
- Obfuscation configuration added to commercial payload settings with supporting templates
- New AMSI bypass without any memory protection manipulation, available inside the commercial agent and as a command
- All listeners' .NET code is now obfuscated
- Garbage code generator for commercial payloads
- Improved shellcode detection handling for single command shellcode
- Additional obfuscation improvements across commercial templates
- Metadata value transformation defaults in listeners
Agent & Payload Improvements
- Self-destruction added to the commercial agent via the
diecommand, and as a payload configuration option (autoDestructDate) to help limit unplanned sessions - Payload download via name (not just ID) over HTTP listener - first match will apply
- Launchers can now use payload name in addition to payload ID
- Payload padding support for Linux & BSD
- Portscan support for BSD agents
- Linux agent named pipe files are now cleaned up
keepConnectionsAliveconfiguration for HTTP listeners - reuses established connections instead of opening new ones per request, reducing network noise. Now optional and can be disabled
Client
Multi-Server Support
- Spawn across servers - Use the
spawncommand to display payloads by listener, template, payload type, or configuration - and inject across remote servers. Typespawnwithout arguments to get started - Multi-server notifications - Stay informed across all connected servers via shared WebSocket
- Redesigned left menu - Better overview of connected servers with emoji and notification indicators
- Tab persistence - Tabs are saved and restored per server connection
New Features
- Agent blocking UI - Block/unblock agents with confirmation dialog; bulk block-all and block-selected actions
- Kill all agent confirmation - Confirmation dialog before killing all agents
- Clear command queue - New
clearcommand to clear an agent's command queue - Command context menu - Right-click menu on commands for quick actions
- Copy to clipboard for downloaded file viewer - Copy functionality with visual feedback added to download command
- File list overhaul - Complete redesign for ls command output. Now supports listing C:\windows\system32 and much bigger folders without performance issues. Includes virtual scrolling, deferred loading, and search functionality
- Terminal find - Browser Ctrl+F capture in terminal is now optional
- Keyboard shortcuts - Cursor navigation shortcuts in terminal input added:
ctrl+aandctrl+e - Command highlighting - Terminal input highlighting better reflects how the command will be parsed
- Command sent indicator - Commands now show
sentstatus in terminal output - Debug toggle - Toggle to show/hide failed command debug info in terminal via profile settings
- Improved help - Help command output now groups and prioritizes commands
- Execution configuration - Added all new spawn dialog for execConf options
- MANAGE_JOBS permission - Users page now shows MANAGE_JOBS permission
Bug Fixes
- Fix job page timestamps
- Fix localStorage access check in general store initialization
- Fix
nullstring in execConf assignment (now properly converts to null)
Payload & Template Changes
- RocketShip JSON now uses only the
payload.configurationobject, same as payloads page - Payload page JSON viewer supports configuration-only mode same as rocket ship
UI Improvements
- RocketShip visual: support for 10+ launchers, headphones icon for listener chip
- Improved error handling for command-not-found with detailed notification
0.12.2
Tuoni 0.12.2
BindTCP, rportfwd and QoL
Misc
- Added
rportfwdcommand for windows/linux/bsd - Linux & BSD agents now return
payloadIdvalue in metadata - Relay Bind TCP listener is now supported also for Linux and BSD agents
- Fixed token related issues in commercial agent
- Crashed listener shellcode execution is restored where possible on windows agent
- Better use of tokens when network related COM is used (
jump-wmican now use stolen token) - Relay Bind TCP listener can be reconnected
Tuoni 0.12.1
SMB, bindAddress and filename
🖥️ Client
- In the terminal all "integer" values can now also be entered in the HEX format, eg. 0xFF will be converted to 255
⚙️ Server
- Reordered the new
filenameandbindAddressfields in the HTTP listener default conf - Additional template values in HTTP listener filename
🔒 Commercial
- Refactor and overall improvement of tokens handling
- Shellcode does not allocate RWE memory for itself anymore
Misc
- SMB listener allows reconnection without previous connection failure
0.12.0
New commands, launchers and better encryption!
🖥️ Client
explorer.exeis now highlighted in thepscommand output- Fixed terminal crash when agent metadata does not have IP set to better support 3rd party agents
- Users view now has confirmation box when trying to disable your own account
- Added search for "hosts" and "credentials" view
- Improved hosts view sorting to sort correctly by IP addresses
⚙️ Server
- Added feature to specify payload filename template when served via the http listener.
- Added API endpoint to clear agent queue
- Supports agent communication encryption in CBC and GCM (used to be only CBC)
- Payload plugins are now initialized before listener and command plugins
- Add create/update timestamps to API for each command result entry
- Add option for command plugins to hide some result entries from API response
🔒 Commercial
- Added
keyloggerwindows command - Added
memory-layoutcommand - Fix token not applying for plugin commands correctly for commercial agent
screen-trackercommand now prints out the correct count for screenshots taken- Improved DNS listener
- Added native
privilege-listcommand to commercial agent (current works with process token only) - Added native
privilege-enablecommand to commercial agent (current works with process token only) - Added native
privilege-disablecommand to commercial agent (current works with process token only) - Fixed command stopping handling issues with some commands
Misc
- Added 2 new launchers #86 by @palangosjuze
- Improved licence key validation #89 by @AllRWeak
- Added
token-from-handlecommand that can be used with token handles created by BOF's or .NET code - Commands shellcode can provide new token directly to agent
- Upgraded agent communication encryption to GCM
🏗️ SDK 0.12.0 Released!
0.11.2
DNS Listener, Scripting and Mimikatz
🖥️ Client Improvements
- Improved
shelldot.listener.relay-agent-reverse-tcplistener creation dialog - Added
shelldot.listener.agent-reverse-dnslistener creation dialog - Improved new payload creation dialog on the Payloads page to fit with the rest of the dialogs style
⚙️ Server Enhancements
- Added
shelldot.listener.agent-reverse-dnsplugin for commercial tier ( BETA ) - Tuoni Scripting Engine (
TSE) scripts now allow editing agent metadata mimikatzcommand now supports multiple commands in one execution (space delimited)screenshot&screen-trackercommands now return jpeg instead of png, saving ~10x network bandwidthscreen-trackernow calculates the--timeoutargument more accurately--execConf.ppidnow works as expected in the commercial payloadcdcommand in Linux now properly updates agent metadata again
For a complete list of changes, visit our GitHub release page.
Tuoni 0.11.1
Performance Improvements and Network Intelligence
🖥️ Client Improvements
- Terminal Performance: Resolved command debouncing issues that occurred when processing multiple simultaneous command events
- Connection Management: Standardized default connection URL to
https://local-c2:8443, removing automatic URL detection for more consistent behavior - Client Server Middleware: Enhanced localhost connection handling with improved override configurations
- Error Handling: Strengthened API error management to prevent console logging issues
⚙️ Server Enhancements
- ELF Loading: Cleaned up
load-elfcommand output by removing extraneous stdout messages - Network Intelligence: Enhanced
agent.metadata.listenerProperties.connectionIpto properly parse and respectForwarded,X-Forwarded-For, andX-Real-IPheaders for accurate client IP detection - Linux Library Payload: Linux
Librarypayload now supportsLD_PRELOADinjection method - Proxy Authentication: Added Kerberos and NTLM proxy authentication detection & support for HTTP listener (enabled by default, Windows only)
For a complete list of changes, visit our GitHub release page.
0.11.0
Tuoni 0.11.0
Payload Guardrails, Mutex, BOF Upgrades & More!
🖥️ Client Enhancements
- Redesigned text file preview in the terminal with full syntax highlighting for a better viewing experience
- Expanded file download support to all command status types (
ongoing,failed,success) and added support for multiple files in results - Terminal commands now accept
number (float)arguments, andlscommand output time format is now set to en-CA locale - Improved autocompletion for
--@filesarguments and madepayloadidvalidation case-insensitive
⚙️ Server Improvements
- Username minimum length reduced from 3 to 1 character
- Default payload metadata now includes version and type
- Fixed Screenshot Hi-DPI issue and improved wording in
portscancommand documentation - Added
screen-trackercommand for commercial payloads - Introduced guardrails to default and commercial Windows payloads, including 4 new options (
DomainExists,DomainNotExists,TimeBefore,TimeAfter) and a specialEnvSecretguardrail for commercial payloads - All payloads now support mutex to enforce single instance execution
- BOFs now support sending back files and introduce two new options:
- designated_thread: By default, each BOF runs in its own thread. If this option is set to
true, the BOF will instead run on a shared thread with all other BOFs that also have this option set totrue. - keep_in_memory: By default, a loaded BOF is removed from memory once execution finishes. If this option is set to
true, the BOF stays in memory and will be reused on subsequent executions instead of being reloaded.
- designated_thread: By default, each BOF runs in its own thread. If this option is set to
- Added support for
reverse-relay-tcplisteners (commercial Windows payload) and manualwebProxyconfiguration for HTTP listener - Numerous internal fixes and optimizations across default, commercial, Linux, and BSD payloads
🧪 Experimental
- Added API scripting endpoints to support future features
- Added initial event triggers support in the Tuoni Scripting Engine (TSE)
0.10.4
🖥️ Client Enhancements
- Introduced comprehensive plugin settings management within server configuration interface
- Enhanced terminal capabilities with direct inline viewing support for additional image file formats
- Improved terminal selection highlighting consistency and reliability
⚙️ Server Improvements
- Enhanced
downloadcommand functionality to support file retrieval even when files are actively opened by other processes - Introduced TLS Common Name configuration option for
agent-reverse-httpplugin, enabling custom certificate CN override for self-signed certificates underserver settings - Implemented intelligent plugin version management to automatically load the most recent version when multiple instances of the same plugin exist in
/srv/tuoni/plugins/server - Enhanced
bofcommand argument processing with support fornullvalue packing in function parameters - Resolved missing relocations in
bofcommand execution for improved stability - EXPERIMENTAL Server-Side-Scripting
- Implemented configurable file-change debouncing mechanism for script monitoring
- Introduced preliminary support for third-party Python package integration within server-side scripts
🔒 COMMERCIAL Tier
- Introduced new
LIBRARYpayload type for Linux payload plugin, enabling sophisticated library-based execution techniques - Added additional configuration options to Linux Payload for code execution, such as disabling
memfdand specifying a custom location for temporary files - Improved
lscommand handling in Linux agent for better detection and display of hidden files and empty directory structures
🚀 tuoni command
0.10.3
Tuoni 0.10.3
Maintenance and Stability Improvements
🖥️ Client Enhancements
- Resolved terminal file caching issue that impacted
--@filescommands - Fixed terminal autocomplete functionality to ensure consistent command completion
- For terminal memory
- For terminal history
- Enhanced
--@filescommands positional detection
⚙️ Server Improvements
- EXPERIMENTAL
- Implemented graceful error handling in Server-Side Script engine when scripts directory is not present
🏗️ SDK 0.10.0 Released!
0.10.2
Tuoni 0.10.2
Enhanced User Experience and Python Support
🖥️ Client Enhancements
- Implemented persistent memory for agent table sorting preferences, improving workflow efficiency
- Refined Jobs page to display only active jobs since last server reboot by default, with additional option to view complete history
- Added sorting capabilities to the Jobs Table for better data management
⚙️ Server Improvements
- EXPERIMENTAL
- Enhanced Server-Side Scripting with full Python standard library support, significantly expanding automation capabilities
- Introduced configurable sandboxing levels for Server-Side Scripts, providing flexible security options based on deployment requirements
🗎 Documentation
- Redesigned releases page to accommodate growing version history