18 KiB
+++ title = "Features" chapter = false weight = 10 pre = "2. " +++
Cazalla Features Overview
This document provides detailed explanations of Cazalla's key features and capabilities.
📋 Table of Contents
- Process Browser Integration
- File Browser Integration
- Context Tracking
- Artifacts Support
- Credentials Support
- SOCKS Proxy Support
- Reverse Port Forwarding (RPFWD) Support
- Token Support
- Keylogging Support
- File Downloads Support
- File Uploads Support
- OPSEC Checking
Process Browser Integration
Cazalla fully integrates with Mythic's Process Browser feature, providing unified process management across multiple callbacks on the same host.
Features
- Unified Process Lists: All process listings from different callbacks on the same host are aggregated
- Process Hierarchy: View process parent-child relationships when parent process IDs are available
- Rich Process Data: Includes process name, PID, PPID, architecture, user account, and session ID
- Automatic Synchronization: Process lists are automatically synchronized with Mythic's Process Browser UI
- Process Actions: Kill processes, steal tokens, and list tokens directly from the Process Browser UI
- Cache Management: Process lists automatically clear stale entries using
update_deleted=Trueflag
How It Works
- Execute
pscommand: The agent enumerates all running processes - Translator Conversion: The translator automatically converts the process list to Mythic's Process Browser JSON format
- UI Update: Processes appear in the Process Browser UI with all details
- Interactive Actions: You can perform actions directly from the UI:
- Kill: Terminate a process (uses
killcommand) - Steal Token: Steal token from a process (uses
steal_tokencommand) - List Tokens: List tokens from a process (uses
list_tokenscommand)
- Kill: Terminate a process (uses
Accessing Process Browser
- Navigate to a callback in the Mythic UI
- Click the PROCESSES tab (next to the CALLBACK tab)
- View all processes from all callbacks on that host
- Use UI buttons for process actions
Implementation Details
psCommand: Implementsprocess_browser:listsupported UI featurekillCommand: Implementsprocess_browser:killsupported UI feature- Process Data Format: Includes PID, process name, PPID, architecture, user, session ID
- Automatic Cache Clearing: All processes marked with
update_deleted=Trueto clear stale entries
File Browser Integration
Cazalla seamlessly integrates with Mythic's File Browser, allowing visual file system navigation and operations.
Features
- Visual Navigation: Browse directories and files visually through the Mythic UI
- Drag-and-Drop Downloads: Download files with a simple click
- Upload Integration: Upload files directly from the File Browser interface
- Automatic Path Resolution: Relative paths are automatically resolved using the current working directory
- Real-time Updates: File listings update automatically as you navigate
How It Works
- Execute
lscommand: The agent lists directory contents - Translator Conversion: The translator converts the listing to Mythic's File Browser format
- UI Display: Files and directories appear in the File Browser UI
- Interactive Operations: Perform file operations directly from the UI:
- Download: Click file → Download
- Upload: Right-click directory → Upload
- Delete: Right-click file → Delete (uses
rmcommand)
Accessing File Browser
- Navigate to a callback in the Mythic UI
- Click the Files icon in the top navigation
- Browse directories and files visually
- Perform operations directly from the UI
Path Handling
- Relative Paths: Automatically resolved using the current working directory
- Absolute Paths: Full paths work as expected
- Path Normalization: Double backslashes and invalid characters are automatically handled
Context Tracking
Cazalla automatically tracks and displays dynamic callback context information in the Mythic UI.
Features
- Current Working Directory: Displays the agent's current directory
- Impersonation Context: Shows the currently impersonated user (if any)
- Real-time Updates: Context tabs update automatically as the agent's state changes
- Visual Display: Context information appears as tabs above the tasking area
Supported Context Fields
Current Working Directory (cwd)
- Updated by:
cdcommand - Initial value: Automatically set during check-in
- Display: Shows the current directory path (e.g.,
C:\Users\localuser\Downloads)
Impersonation Context (impersonation_context)
- Updated by:
steal_token,make_token,rev2self - Initial value: Automatically set during check-in with the process's current user
- Display: Shows the currently impersonated user (e.g.,
NT AUTHORITY\SYSTEM)
Commands That Update Context
cd: Updatescwdwhen directory changessteal_token: Updatesimpersonation_contextwhen token is stolenmake_token: Updatesimpersonation_contextwhen token is createdrev2self: Clearsimpersonation_contextwhen reverting to original token
Artifacts Support
Cazalla automatically reports artifacts created during command execution, allowing Mythic to track forensic evidence.
Features
- Automatic Detection: Artifacts are automatically reported for relevant commands
- Multiple Artifact Types: Supports Process Create, File Write, File Delete, File Read, Process Termination, API Call, Network Connection
- Artifact Management: Artifacts appear in Mythic's Artifacts page
- Extensible: Easy to add artifact reporting for new commands
Supported Artifact Types
| Artifact Type | Commands | Description |
|---|---|---|
| Process Create | shell |
Command execution via cmd.exe |
| File Write | cp, mkdir, upload |
File creation or modification |
| File Delete | rm |
File or directory deletion |
| File Read | download |
File download operations |
| Process Termination | kill |
Process termination with PID |
| API Call | screenshot, keylog_start |
API usage for screen capture/keylogging |
| Network Connection | rpfwd start |
Reverse port forward listener |
Viewing Artifacts
- Navigate to your callback in the Mythic UI
- Click the Artifacts icon (fingerprint) in the top navigation
- View all artifacts created by commands
- Filter by artifact type, needs cleanup, resolved status
Credentials Support
Cazalla supports reporting discovered credentials to Mythic's credential store.
Features
- Automatic Detection: Commands can report discovered credentials
- Multiple Credential Types: Supports
plaintext,hash,certificate,key,ticket,cookie - Credential Management: Credentials appear in Mythic's Credentials page
- Associated with Tasks: Credentials are linked to the task and callback that discovered them
Credential Detection in cat Command
The cat command automatically detects and reports credentials from file contents:
- Format
username:password:marcos:password123 - Format
domain\username:password:test\marcos:password - Format
username@domain:password:marcos@tes.com:password - Passwords in config files:
password=valueorpassword:value - HTTP URLs with credentials:
http://user:pass@host - NTLM hashes: Format
aad3b435b51404ee:hashor:32hexchars
Viewing Credentials
- Navigate to your callback in the Mythic UI
- Click the CREDENTIALS icon (key) in the top navigation
- View all credentials discovered by commands
- Filter by credential type, realm, account
SOCKS Proxy Support
Cazalla includes full SOCKS5 proxy support, allowing you to route traffic through the agent to access internal network resources.
Features
- SOCKS5 Protocol: Full SOCKS5 proxy server support
- Multiple Connections: Supports multiple simultaneous SOCKS connections
- Dynamic Sleep: Automatically reduces sleep interval when SOCKS is active
- Connection Tracking: Each connection has a unique
server_idfor tracking
How It Works
- Mythic opens a SOCKS port on the server (default:
7002) - Client connects to Mythic's SOCKS port (e.g., via
proxychains) - Mythic forwards SOCKS traffic to the agent with a unique
server_idper connection - Agent establishes the actual connection to the target host
- Bidirectional relay between client ↔ Mythic ↔ Agent ↔ Target
Using the Proxy
# Start SOCKS proxy
socks {"action":"start","port":7002}
# Configure proxychains
# Edit /etc/proxychains.conf
[ProxyList]
socks5 <mythic_server_ip> 7002
# Use with any tool
proxychains curl https://internal-server.local
proxychains nmap -sT 192.168.1.0/24
Performance Considerations
- Latency: Proxy speed depends on beacon interval. SOCKS mode automatically reduces sleep to 100ms
- Throughput: Suitable for interactive sessions and moderate data transfer
- Concurrent Connections: Supports multiple simultaneous SOCKS connections
Reverse Port Forwarding (RPFWD) Support
Cazalla includes reverse port forwarding (RPFWD) support, allowing you to tunnel incoming connections from the agent to a remote destination through Mythic.
Features
- Reverse Tunneling: Connections originate from external clients to the agent
- Remote Destination: Forwards connections to configured remote destinations
- Multiple Connections: Supports multiple simultaneous RPFWD connections
- Automatic Cleanup: Closed connections are automatically cleaned up
How It Works
- Agent opens a listener on a local port (e.g.,
8080on the agent host) - External client connects to the agent's listener port
- Agent sends connection data to Mythic via RPFWD protocol
- Mythic connects to the configured remote destination (
remote_host:remote_port) - Bidirectional relay between client ↔ Agent ↔ Mythic ↔ Remote destination
Use Cases
- Access internal services: Expose internal services (e.g., database, web server)
- Bypass firewall restrictions: When you can't connect from Mythic but can connect to the agent
- Service tunneling: Tunnel arbitrary TCP services through the agent
Example
# Start reverse port forward
rpfwd {"action":"start","port":8080,"remote_host":"192.168.1.100","remote_port":80}
# Connect to agent:8080 will forward to 192.168.1.100:80
curl http://<agent_ip>:8080
Token Support
Cazalla supports Windows token manipulation and impersonation, following Mythic's Token specification.
Features
- Token Listing: Enumerate all viewable tokens from running processes
- Token Theft: Steal tokens from processes to impersonate different users
- Token Creation: Create new tokens using credentials (domain, username, password)
- Token Impersonation: Impersonate tokens for subsequent tasking
- Token Revert: Revert to original token when done impersonating
- SeDebugPrivilege: Automatically enables
SeDebugPrivilegefor accessing system processes - Mythic Integration: Tokens are tracked in Mythic's Token UI and can be selected for tasking
Token Commands
list_tokens: Enumerate all available tokenssteal_token <pid>: Steal token from a processmake_token domain username password: Create token from credentialsrev2self: Revert to original tokenwhoami: Display current security context
Using Tokens for Tasking
- Execute
list_tokensto see available tokens - Execute
steal_token <pid>to steal a token (or usemake_tokento create one) - In the Mythic UI, a dropdown appears next to the tasking bar
- Select a token from the dropdown before issuing commands
- Commands will execute with the selected token's security context
Keylogging Support
Cazalla supports capturing keystrokes from the target system and reporting them to Mythic's Keylogs feature.
Features
- Window-Aware Keylogging: Captures keystrokes along with the active window title
- User Context: Includes the username in each keylog entry
- Process-Agnostic: Works with any application (Notepad, browsers, terminals, etc.)
- Automatic Buffering: Buffers keystrokes and sends them periodically (every 3 seconds or 128 bytes)
- Background Thread: Runs as a separate thread, allowing other commands to execute while keylogging
How It Works
- Start Keylogging: Execute
keylog_start - Background Thread: Agent creates a background thread that monitors keyboard input
- Keystroke Capture: Uses
GetAsyncKeyStateto detect key presses - Window Detection: Captures the active window title
- Periodic Transmission: Sends keystrokes every 3 seconds or when buffer reaches 128 bytes
- Stop Keylogging: Execute
keylog_stopto terminate the keylogger
Universal Process Support
The keylogger works with any Windows application because it:
- Uses
GetForegroundWindow()to get the currently active window - Captures keystrokes system-wide using
GetAsyncKeyState - Doesn't require injection into specific processes
Viewing Keylogs
- Navigate to your callback in the Mythic UI
- Click the KEYLOGS tab in the top navigation
- View all captured keystrokes grouped by task, user, window, and timestamp
File Downloads Support
Cazalla supports downloading files from the target to the Mythic server using chunked transfers.
Features
- Chunked File Transfers: Large files are automatically split into chunks (512KB default)
- Automatic Registration: Files are automatically registered with Mythic before transfer
- Progress Tracking: Mythic tracks download progress (chunks received/total chunks)
- File Read Artifacts: Automatically reports File Read artifacts when files are downloaded
- Full Path Tracking: Reports full file paths for proper tracking
How It Works
- Command Execution: Execute
download C:\path\to\file.txt - File Registration: Agent sends file metadata to Mythic
- Chunk Transfer: Agent sends file data in chunks (base64-encoded)
- Completion: File appears in Mythic's file browser once all chunks are received
Download Process
- Chunk Size: 512KB per chunk (configurable)
- File Size Limit: Supports files up to 2GB (can be extended)
- Base64 Encoding: Chunk data is base64-encoded before transmission
- Artifact Reporting: Automatically reports "File Read" artifact
File Uploads Support
Cazalla supports uploading files from the Mythic server to the target using chunked transfers.
Features
- Chunked File Transfers: Large files are automatically split into chunks (512KB default)
- Automatic Path Normalization: Automatically handles path formatting
- Smart Path Handling: Automatically appends filename when path is a directory
- File Browser Integration: Fully integrated with Mythic's File Browser UI
- Progress Tracking: Mythic tracks upload progress (chunks sent/total chunks)
- File Write Artifacts: Automatically reports File Write artifacts
How It Works
- Command Execution: Execute
upload <file_id> C:\path\to\destination.txt - Path Normalization: Agent normalizes the destination path
- Chunk Requests: Agent requests file chunks from Mythic sequentially
- Chunk Writing: Agent decodes and writes chunks to the destination file
- Completion: File Write artifact is reported when complete
Path Handling
- Normalization: Automatically normalizes double backslashes
- Directory Detection: Automatically detects directories and appends filename
- Parent Directory Creation: Automatically creates parent directories if they don't exist
- Error Handling: Clear error messages for invalid paths, access denied, etc.
OPSEC Checking
Cazalla includes comprehensive OPSEC Checking functionality that provides operational security warnings and blocking for commands based on their detection risks.
Features
- Pre-execution Blocking: Commands can be blocked before execution
- Post-execution Warnings: Artifacts are automatically tracked and warned about
- Customizable Bypass Roles: Configure who can approve blocked tasks
- Detailed Warnings: Comprehensive explanations of OPSEC risks
How It Works
- OPSEC Pre-Check (
opsec_pre): Runs before task creation, can block execution - OPSEC Post-Check (
opsec_post): Runs after task creation, warns about artifacts
Commands with OPSEC Checking
- High-Risk Commands (Blocking):
shell,steal_token,kill,keylog_start,rm(system files) - Warning-Only Commands:
screenshot,rpfwd,socks,download,upload,make_token, etc.
Bypass Roles
operator: Any operator can bypassother_operator: Requires approval from a different operatorlead: Only operation lead can approve
For detailed information, see OPSEC Guide.
Related Documentation
- Commands Reference - Detailed command documentation
- OPSEC Guide - Operational security considerations
- Usage Examples - Practical examples
- Getting Started - Installation and setup
Last Updated: 2024