Skip to content

Commercial Native Commands

Native commands available exclusively in the commercial payload. These extend the core agent with privilege management, runtime override capabilities, and Linux/BSD shell access.

Quick Reference

Command OS Summary
chmod Linux / BSD Change file or directory permissions
override-list Windows List all loaded override DLLs
override-load Windows Load a DLL to override agent functionality
override-set Windows Apply a loaded DLL override
override-unload Windows Unload an override DLL
override-unset Windows Remove an active override
privilege-disable Windows Disable a token privilege
privilege-enable Windows Enable a token privilege
privilege-list Windows List all current token privileges
sh Linux / BSD Execute a shell command via sh

chmod

OS Support: Linux, BSD

Purpose: Changes the access permissions of a file or directory on the target system.

Parameter Type Required Default Description
path string Yes - Path of the file or directory to modify.
access string Yes - Permission string in symbolic or octal notation (e.g. 755, u+rw, a=rwx, o-wx, +x).

Example:

chmod --path /tmp/agent --access +x


override-list

OS Support: Windows (commercial payload only)

Purpose: Lists all override DLLs currently loaded by the agent and the agent functionalities they override.

Parameters: None

Example:

override-list

Info

Override DLLs are loaded with override-load and activated with override-set. This command shows which overrides are currently active.


override-load

OS Support: Windows (commercial payload only)

Purpose: Uploads a DLL into the agent's memory, making it available to override core agent functionality.

Parameter Type Required Default Description
name string Yes - A unique identifier for this override DLL (used to reference it in override-set).
@files.dll file Yes - The DLL file to load.

Example:

override-load --name myhttp --@files.dll custom_http.dll

Tip

After loading, use override-set to activate the override for a specific functionality. Use override-list to confirm the DLL was loaded successfully.


override-set

OS Support: Windows (commercial payload only)

Purpose: Activates an override by directing a specific agent functionality to a method in a previously loaded DLL.

Parameter Type Required Default Description
functionality string Yes - The agent functionality to override (e.g. http_send, sleep_callback).
dll int Yes - The numeric ID of the loaded DLL (as shown by override-list).
method string Yes - The exported method name in the DLL to invoke.

Example:

override-set --functionality http_send --dll 1 --method CustomHttpSend

Warning

Applying an incorrect override can make the agent unstable or break its communication channel. Test overrides in a controlled environment before deploying operationally.


override-unload

OS Support: Windows (commercial payload only)

Purpose: Unloads a previously loaded override DLL from the agent's memory.

Parameter Type Required Default Description
id int Yes - The numeric ID of the DLL to unload, as shown by override-list.

Example:

override-unload --id 1

Warning

Unloading a DLL that has an active override applied will cause that override to break. Run override-unset to remove the active override before unloading the DLL.


override-unset

OS Support: Windows (commercial payload only)

Purpose: Removes an active override, restoring the agent's default behaviour for that functionality.

Parameter Type Required Default Description
functionality string Yes - The functionality from which to remove the override.

Example:

override-unset --functionality http_send


privilege-disable

OS Support: Windows (commercial payload only)

Purpose: Disables one or more privileges in the agent's current process token.

Parameter Type Required Default Description
privilege string Yes - Name of the privilege to disable (e.g. SeDebugPrivilege), or * to disable all.

Example:

privilege-disable --privilege SeDebugPrivilege

Warning

Disabling privileges cannot always be reversed within the same process. Use privilege-list first to confirm the current state, and avoid disabling privileges that the agent needs for its own operations.


privilege-enable

OS Support: Windows (commercial payload only)

Purpose: Enables one or more privileges in the agent's current process token.

Parameter Type Required Default Description
privilege string Yes - Name of the privilege to enable (e.g. SeDebugPrivilege), or * to enable all available.

Example:

privilege-enable --privilege SeDebugPrivilege

Tip

Common privileges to enable before sensitive operations:

  • SeDebugPrivilege - required for token-steal from other users' processes
  • SeImpersonatePrivilege - required for token impersonation techniques
  • SeTakeOwnershipPrivilege - allows taking ownership of files and registry keys

privilege-list

OS Support: Windows (commercial payload only)

Purpose: Lists all privileges in the agent's current process token along with their enabled/disabled state.

Parameters: None

Example:

privilege-list


sh

OS Support: Linux, BSD

Purpose: Executes a command using the system's sh shell.

Parameter Type Required Default Description
command string Yes - The shell command to execute.
stdin string[] No - Lines sent to stdin, simulating Enter presses between each.

Example:

sh --command "id && hostname && cat /etc/passwd | head -5"