Skip to content

Tuoni 0.17.2

Tuoni 0.17.2 improves file access and hosting, command delivery and recovery, client editing, and listener configuration. It also updates Windows agents and commands, with compatibility changes to registry and service searches and native Windows SSH described under Upgrading from 0.17.1.

See the 0.17.0 release notes for the main new features and improvements.

File Access and Hosting

Private command-result files and files belonging to hidden commands now follow their visibility rules when accessed or reused in configurations.

Hosted files handle encoded paths, Unicode, and query strings consistently. Deleting an eligible hosted file removes its path associations and manifests while retaining protection for files still in use. Script paths correctly decode spaces, literal plus signs, and escaped characters.

Command Delivery and Alias Reliability

Command delivery no longer loses queued work during subscriber registration or shutdown. After a server restart, unsent persistent data updates are restored in order after the original command. Result storage failures are reported without preventing later results from being processed.

Command history searches include static aliases and archived alias versions. Canceling a scripted alias stops its callbacks and unfinished child commands, and a forced stop finalizes unfinished work. Alias configuration forms also handle commands with all parameters or attachments already preset.

Client Editing and Configuration

Alias editing preserves your drafts and attachments after failed saves or upload retries. File changes and Base64 uploads are handled correctly, duplicate submissions are prevented, and failed saves no longer report success. Long command forms keep all fields and the Create button reachable when scrolling.

Discovery editors retain drafts after failed saves and preserve edits made while a save is in progress. Optional annotations can be cleared, ports are validated correctly, and rediscovery preserves existing annotations. Account and password forms retain drafts after failures, recheck password confirmation, validate usernames, and select the authenticated account correctly.

Other client fixes include:

  • Payload configuration: Local timestamps and repeated daylight saving time hours retain the selected instant, and explicit empty option selections are preserved.
  • File browsing: Paths, file actions, and folder names follow the connected agent's filesystem rules, including backslashes in Unix filenames.
  • Terminal output and completion: JSON-only results respect your JSON display preference, and argument completion handles names ending in a hyphen.
  • Navigation and layout: Graph controls remain accessible below expanded filters, job links handle repeated query IDs, and the Classic loading layout displays consistently.
  • Security updates: Updated dependencies and runtimes address known security findings.

Windows Agents

Commercial Windows payloads include these fixes:

  • 🔒 Embedded HTTP communication: Large results and disconnects no longer leave affected agents hanging.
  • 🔒 Payload stability: Buffer handling and validation of malformed input are corrected.
  • 🔒 Process listing: Process-name lookups use the correct buffer capacity, and process handles are released correctly.
  • 🔒 Payload customization: EncodeShellcode overrides and code generation apply the intended settings.

Default Windows agents handle relay output, command backpressure, and disconnects more reliably, keeping stop handling responsive and avoiding stuck commands. Default and commercial Windows payloads also include changes intended to reduce static signature matches.

Windows Commands

Windows port scans improve work scheduling, live results, timeouts, and cancellation. File moves check file identity, and native moves verify copy success before removing the source. Native recursive deletion handles directory links and junctions correctly.

Relay commands fix forwarding buffers, connection shutdown, and SOCKS5 connection setup. .NET execution restores standard output and error streams and flushes captured output after failures, and native WinRM commands handle streamed output and completion reliably.

The server correctly handles split or combined network, service, and registry result frames. Registry operations preserve literal slashes in key names and support streamed backup downloads. When saving network information to Discovery is enabled, reported hostnames fill missing Discovery names without replacing existing names.

Listener Configuration

HTTP and HTTPS listeners apply the selected port to both callbacks and bindToPort. External WebSocket listener creation preserves custom paths and passes ports as numbers.

Listener creation forms validate settings before submission. Failed listener updates restore the previous configuration and status.

Additional Server Fixes

The application programming interface (API) returns appropriate errors for missing resources and invalid settings, and pagination handles large offsets without overflowing. Command validation rejects malformed or out-of-range addresses, ports, timestamps, and options.

Command-note links open the corresponding command details. Plugin storage replaces obsolete values correctly when data is overwritten with a different type.

Upgrading from 0.17.1

Search and SSH compatibility changes

Review saved command configurations, aliases, and integrations that use registry or service searches or native Windows SSH before upgrading.

  • Registry and service searches: Matching is case-insensitive and applies to the whole field, with * and ? wildcards. A plain text pattern is an exact match; use *text* to retain substring matching. Remove the former matchMode parameter from saved configurations and integrations.
  • Native Windows SSH: Set TUONI_SSH_KNOWN_HOSTS to a readable known-hosts file containing the trusted host key. Native SSH jump, execution, and upload commands reject missing, mismatched, or revoked keys. Use exact host entries; hashed hostnames, patterns, and certificates are not supported by this implementation.
  • Command plugin permissions: Enabling or disabling command plugins now requires an administrator account.

Community

Join our Discord community to ask questions, share feedback, and connect with other Tuoni users.

Find release artifacts and changelogs on GitHub.