Zebbern Kali MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VPN_DIR | No | Host directory mounted at /vpn (read-only) for VPN configs | ./vpn |
| API_PORT | No | Flask server port | 5000 |
| DEBUG_MODE | No | Enable debug logging | 0 |
| HTB_ROUTES | No | Comma-separated CIDRs to route (e.g. 10.129.0.0/16,10.10.0.0/16) | |
| EXTRA_HOSTS | No | Comma-separated hostname:ip pairs added to /etc/hosts | |
| KALI_API_URL | No | MCP client: URL of the Kali Flask server | http://127.0.0.1:5000 |
| BLOCKING_TIMEOUT | No | Default command timeout (seconds) | 30 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| zebbern_execA | Execute ANY command on the Kali server without restrictions. Full root access, no timeout limits (default 1 hour). Args: command: The command to execute (can be any shell command, pipes, chains, etc.) timeout: Timeout in seconds (default: 3600 = 1 hour) cwd: Optional working directory for the command background: If True, run fire-and-forget — returns immediately with a task_id Returns: Command output with stdout, stderr, return_code, execution_time. When background=True, returns immediately with a task_id instead. |
| exec_streamA | Execute a command with real-time streaming output via SSE (text/event-stream). Posts to api/command with streaming=True. Useful for long-running commands like nmap, nuclei, fuzzing. Args: command: The command to execute timeout: Timeout in seconds (default: 3600 = 1 hour) Returns: Streaming output collected in real-time with all events |
| healthA | Check the health status of the Kali API server. Returns: Server health information |
| system_network_infoA | Get comprehensive network information for the Kali Linux system. Returns: Network information including interfaces, IP addresses, routing table, etc. |
| send_inputA | Send text input to any active interactive session (msfconsole, SSH, mysql, python REPL, shell, etc.). This is a generic primitive that works with ANY session type managed by the backend — it is not limited to Metasploit. Use this together with read_output() to have a full interactive conversation with a long-running process:
Args: session_id: The session identifier returned when the session was created. input_text: The text to send to the session's stdin. Include a trailing newline (\n) if the target process expects one. session_type: Hint for the backend on how to handle the session. 'auto' (default) lets the backend detect the type. Other values: 'msfconsole', 'ssh', 'shell', 'mysql', 'python'. Returns: dict with at minimum: - success (bool): whether the input was accepted - session_id (str): echo of the session targeted - error (str, optional): present only on failure |
| read_outputA | Read / poll output from any active interactive session by its ID. Works with msfconsole, SSH, mysql, python REPL, shell, or any other session type managed by the backend. Typical workflow:
The backend will wait up to Args: session_id: The session identifier to read from. timeout: Maximum seconds the backend should wait for new output before returning (default: 5). Use a higher value for slow commands (e.g. nmap, compilation). lines: Maximum number of output lines to return (default: 100). Older lines are trimmed first when the buffer exceeds this. Returns: dict with at minimum: - success (bool): whether the read succeeded - output (str): the collected output text - session_id (str): echo of the session targeted - lines_returned (int): number of lines in output - error (str, optional): present only on failure |
| reverse_shell_listener_startA | Start a reverse shell listener on the specified port. Args: port: Port to listen on (default: 4444) session_id: Optional session identifier (auto-generated as shell_{port} if empty) listener_type: Type of listener - 'netcat' or 'pwncat' (default: netcat) auto_upgrade: Automatically attempt TTY upgrade on connection (default: False) Returns: Session ID and listener status |
| reverse_shell_commandA | Execute a command in an active reverse shell session. Args: session_id: The session ID (e.g., 'shell_4444') command: Command to execute on the target timeout: Command timeout in seconds Returns: Command output from the target system |
| reverse_shell_send_payloadA | Send a payload command to trigger a reverse shell connection in a non-blocking way. Executes the payload in a background thread to avoid blocking the server. Waits then returns session status to verify the connection was established. Args: session_id: The session ID of the reverse shell listener payload_command: The payload command to execute (e.g., curl with reverse shell) timeout: Timeout for the payload execution in seconds (default: 10) wait_seconds: Seconds to wait before checking session status (default: 5) Returns: Payload execution status and session info |
| reverse_shell_statusA | Get the status of reverse shell sessions. Args: session_id: Optional specific session ID to check (if empty, shows all sessions) Returns: Status information for reverse shell sessions |
| reverse_shell_stopB | Stop a reverse shell session. Args: session_id: The session ID to stop Returns: Stop operation result |
| reverse_shell_upload_contentB | Upload content directly to the target via reverse shell. Args: session_id: The reverse shell session ID content: Base64 encoded content to upload remote_file: Path where to save the file on the target method: Upload method (base64) encoding: Content encoding (utf-8, binary) |
| reverse_shell_download_contentA | Download file content from target via reverse shell and return as base64. Args: session_id: The reverse shell session ID remote_file: Path to the file on the target method: Download method (base64, cat) |
| reverse_shell_generate_payloadA | Generate reverse shell payloads for manual execution on targets. Args: local_ip: Your local IP address that the target should connect back to local_port: Local port to connect back to (default: 4444) payload_type: Type of payload (bash, python, nc, php, powershell, perl) encoding: Encoding format (plain, base64, url, hex) Returns: Generated payload in various formats ready for manual execution |
| payload_templatesA | List available payload templates and encoders for msfvenom. Returns: List of template names and available encoders |
| payload_generateA | Generate a payload using msfvenom. Args: lhost: Your IP address for callback lport: Port for callback (default: 4444) template: Use a predefined template (e.g., 'windows_meterpreter_reverse_tcp') payload: Metasploit payload string (ignored if template specified) format_type: Output format - exe, elf, raw, ps1, etc. encoder: Encoder to use (e.g., 'x86/shikata_ga_nai') iterations: Number of encoding iterations bad_chars: Characters to avoid in payload (e.g., '\x00\x0a\x0d') nops: Number of NOP sled bytes to prepend (default: 0) output_name: Custom output filename (auto-generated if empty) Returns: Generated payload info including base64 content for small payloads |
| payload_listB | List all generated payloads. |
| payload_host_startB | Start HTTP server to host generated payloads for download. Args: port: Port for the hosting server (default: 8888) Returns: Server URL for downloading payloads |
| payload_host_stopA | Stop the payload hosting server. |
| payload_one_linerB | Generate reverse shell one-liner commands. Args: lhost: Your IP address for callback lport: Port for callback (default: 4444) shell_type: Type of shell - bash, python, nc, php, powershell, perl, ruby, or 'all' Returns: One-liner command(s) ready to copy-paste |
| exploit_searchA | Search for exploits using searchsploit. Args: query: Search term (service name, CVE, software version, etc.) exact: Use exact matching (default: False) Returns: List of matching exploits with EDB IDs |
| exploit_suggest_from_nmapC | Analyze nmap scan output and suggest exploits for discovered services. Args: nmap_output: Raw nmap scan output text Returns: Exploit suggestions grouped by service/port |
| exploit_suggest_for_serviceB | Get exploit suggestions for a specific service. Args: service: Service name (e.g., 'apache', 'openssh', 'vsftpd') version: Version string (optional, e.g., '2.3.4', '8.4p1') Returns: List of suggested exploits |
| exploit_detailsA | Get full details and source code for an exploit. Args: edb_id: Exploit-DB ID number Returns: Exploit metadata and source code |
| exploit_copyA | Copy an exploit to a working directory for modification. Args: edb_id: Exploit-DB ID number destination: Directory to copy to (default: /tmp) Returns: Path to copied exploit file |
| msf_session_createA | Create a new persistent Metasploit (msfconsole) session. Returns: Session ID to use with other msf_session_* tools |
| msf_session_executeA | Execute a command in an existing Metasploit session. Args: session_id: The session ID from msf_session_create command: The Metasploit command to execute (e.g., "use exploit/...", "set RHOSTS ...", "run") timeout: Command timeout in seconds (default: 300) read_delay: Seconds to wait before reading output for slow-responding commands (default: 2) Returns: Command output and status |
| msf_session_listA | List all active Metasploit sessions. |
| msf_session_destroyB | Destroy a specific Metasploit session. Args: session_id: The session ID to destroy |
| msf_session_destroy_allA | Destroy all active Metasploit sessions. |
| tools_nmapA | Execute an Nmap scan against a target. Args: target: Target IP, hostname, or CIDR range scan_type: Nmap scan type flags (default: -sV) ports: Port specification (e.g., '80,443' or '1-1024') additional_args: Extra nmap arguments output_format: Output format — 'normal', 'xml', or 'grepable' (default: normal). When 'xml', adds -oX - for structured XML output. |
| tools_niktoB | Execute Nikto web server scanner. Args: target: Target URL or IP additional_args: Extra nikto arguments tuning: Nikto scan tuning options (e.g., '1' for interesting file, '2' for misconfiguration) output_format: Output format (e.g., 'htm', 'csv', 'xml', 'txt') |
| tools_ssh_auditB | Execute ssh-audit to analyze SSH server security configuration. Args: target: Target hostname or IP port: SSH port (default: 22) timeout: Connection timeout in seconds scan_type: Scan type (ssh1, ssh2) policy_file: Path to policy file on Kali additional_args: Extra arguments |
| tools_gobusterC | Execute Gobuster to find directories, DNS subdomains, or virtual hosts. Args: url: Target URL mode: Gobuster mode (dir, dns, vhost, fuzz) wordlist: Wordlist path on Kali additional_args: Extra gobuster arguments threads: Number of concurrent threads (default: 10) extensions: File extensions to search for, comma-separated (e.g., 'php,html,txt') status_codes: Positive status codes to match, comma-separated (e.g., '200,301,302') |
| tools_wpscanA | Execute WPScan WordPress vulnerability scanner. Args: url: Target WordPress URL additional_args: Extra wpscan arguments api_token: WPScan API token for vulnerability data lookups enumerate: Enumeration options (e.g., 'vp' for vulnerable plugins, 'u' for users) output_format: Output format — 'cli', 'json', or 'cli-no-colour' (default: cli) |
| tools_sqlmapB | Execute SQLmap SQL injection scanner. Args: url: Target URL with parameter(s) data: POST data string additional_args: Extra sqlmap arguments technique: SQL injection techniques to test (e.g., 'BEUSTQ') level: Level of tests to perform, 1-5 (default: 1) risk: Risk of tests to perform, 1-3 (default: 1) dbs: Enumerate DBMS databases (default: False) tables: Enumerate DBMS database tables (default: False) dump: Dump DBMS database table entries (default: False) |
| tools_hydraB | Execute Hydra password cracking tool. Args: target: Target IP or hostname service: Service to attack (ssh, ftp, http-get, etc.) username: Single username username_file: Path to username list on Kali password: Single password password_file: Path to password list on Kali additional_args: Extra hydra arguments tasks: Number of parallel connection threads (default: 16) wait: Timeout in seconds for each connection attempt (default: 32) port: Target port override (default: 0 means use service default) |
| tools_johnA | Execute John the Ripper password cracker. Args: hash_file: Path to hash file on Kali wordlist: Wordlist path format_type: Hash format (e.g., 'NT', 'md5crypt', 'raw-sha256') additional_args: Extra john arguments |
| tools_enum4linuxC | Execute Enum4linux Windows/Samba enumeration tool. Args: target: Target IP additional_args: Enum4linux flags (default: -a for all) |
| tools_subfinderB | Execute Subfinder for subdomain enumeration. Args: target: Target domain additional_args: Extra subfinder arguments |
| tools_httpxB | Execute httpx for HTTP probing. Args: target: Target URL, domain, or IP additional_args: Extra httpx arguments |
| tools_arjunB | Discover hidden HTTP parameters using Arjun. Args: url: Target URL method: HTTP method (GET, POST, JSON) headers: Custom headers as key:value pairs, comma-separated wordlist: Custom wordlist path on Kali (default: Arjun built-in) delay: Delay between requests in seconds (default: 0) threads: Number of concurrent threads (default: 2) include: Only test these parameters (comma-separated) exclude: Skip these parameters (comma-separated) |
| tools_fierceC | Execute Fierce for DNS reconnaissance. Args: domain: Target domain additional_args: Extra fierce arguments |
| tools_byp4xxC | Execute byp4xx for 403 bypass testing. Args: url: Target URL returning 403 method: HTTP method additional_args: Extra arguments |
| tools_subzyC | Execute Subzy for subdomain takeover detection. Args: target: Target domain or file with subdomains additional_args: Extra subzy arguments |
| tools_assetfinderC | Execute Assetfinder for asset discovery. Args: domain: Target domain additional_args: Extra assetfinder arguments |
| tools_waybackurlsC | Execute waybackurls to fetch URLs from Wayback Machine. Args: domain: Target domain additional_args: Extra arguments |
| tools_masscanA | Execute Masscan for fast port scanning across large IP ranges. Masscan is an internet-scale port scanner capable of scanning the entire internet in under 6 minutes. It produces SYN packets asynchronously, making it significantly faster than traditional scanners for large target ranges. Args: target: Target IP, CIDR range, or hostname (e.g., '10.0.0.0/24') ports: Port specification (default: '1-65535' for full range). Supports ranges ('1-1024'), lists ('80,443,8080'), or mixed ('22,80,443,8000-9000'). rate: Packets per second (default: 1000). Higher values scan faster but may overwhelm the network or trigger IDS. Common values: 1000 (safe), 10000 (moderate), 100000 (aggressive). additional_args: Extra masscan arguments (e.g., '--banners' to grab service banners) Example usage: tools_masscan(target='192.168.1.0/24', ports='80,443,8080', rate=5000) tools_masscan(target='10.0.0.1', ports='1-1024') tools_masscan(target='172.16.0.0/16', ports='22,80,443', rate=10000, additional_args='--banners') |
| tools_katanaA | Execute Katana for web crawling with JavaScript parsing support. Katana is a next-generation crawling and spidering framework that supports headless browsing and JavaScript rendering, allowing it to discover endpoints hidden behind client-side routing and dynamically generated content. Args: url: Target URL to crawl (e.g., 'https://example.com') depth: Maximum crawl depth (default: 3). Higher values discover more pages but take longer. js_crawl: Enable JavaScript crawling/rendering (default: True). When enabled, Katana uses a headless browser to execute JS and discover dynamically loaded endpoints. scope: Regex pattern to restrict crawl scope (e.g., '.*.example.com'). Empty string means no scope restriction. additional_args: Extra katana arguments (e.g., '-H "Authorization: Bearer token"') Example usage: tools_katana(url='https://example.com') tools_katana(url='https://target.com', depth=5, js_crawl=True) tools_katana(url='https://app.example.com', scope='.*.example.com', additional_args='-H "Cookie: session=abc"') |
| tools_sslscanA | Execute sslscan to test SSL/TLS ciphers and certificate configuration. Sslscan probes a target's SSL/TLS service to enumerate supported cipher suites, protocol versions, and certificate details. Useful for identifying weak ciphers, expired certificates, and misconfigured TLS deployments. Args: target: Target hostname or IP to scan (e.g., 'example.com') port: TLS port to connect to (default: 443) additional_args: Extra sslscan arguments (e.g., '--no-colour' or '--show-certificate') Example usage: tools_sslscan(target='example.com') tools_sslscan(target='10.0.0.5', port=8443) tools_sslscan(target='mail.example.com', port=993, additional_args='--show-certificate') |
| tools_crtshA | Query crt.sh certificate transparency logs for passive subdomain enumeration. Searches Certificate Transparency (CT) logs via crt.sh to discover subdomains that have had TLS certificates issued for them. This is a passive reconnaissance technique that does not send any traffic to the target domain itself. Args: domain: Target domain to search (e.g., 'example.com') include_expired: Include expired certificates in results (default: False). When True, results may contain historical subdomains that are no longer active but once held valid certificates. Example usage: tools_crtsh(domain='example.com') tools_crtsh(domain='target.org', include_expired=True) |
| tools_gowitnessA | Capture a screenshot of a web page using gowitness. Uses a headless Chrome browser to render and screenshot web pages. Useful for visual reconnaissance, documenting findings, and identifying web technologies from page appearance. Args: url: Target URL to screenshot (e.g., 'https://example.com') threads: Number of concurrent screenshot threads (default: 4) resolution: Browser viewport resolution as WIDTHxHEIGHT (default: '1280x720') additional_args: Extra gowitness arguments Example usage: tools_gowitness(url='https://example.com') tools_gowitness(url='https://target.org', threads=8, resolution='1920x1080') |
| tools_amassB | Perform advanced subdomain enumeration using OWASP Amass. Amass performs network mapping of attack surfaces and external asset discovery using open-source information gathering and active reconnaissance techniques. Args: domain: Target domain for subdomain enumeration (e.g., 'example.com') mode: Enumeration mode — 'passive' for OSINT-only or 'active' for DNS resolution and zone transfers (default: 'passive') additional_args: Extra amass arguments Example usage: tools_amass(domain='example.com') tools_amass(domain='target.org', mode='active') |
| cve_searchA | Search the NVD (NIST National Vulnerability Database) for CVEs. Query by keyword (e.g., 'Apache Log4j'), specific CVE ID (e.g., 'CVE-2021-44228'), or product name. Returns CVSS scores, descriptions, references, and weakness classifications. Args: keyword: Search keyword — product name, library, or description text (e.g., 'OpenSSH', 'Apache Struts', 'buffer overflow') cve_id: Specific CVE identifier to look up (e.g., 'CVE-2021-44228'). When provided, keyword is ignored. results_per_page: Number of results to return (1-100, default 20) Example usage: cve_search(keyword='Log4j') cve_search(cve_id='CVE-2021-44228') cve_search(keyword='OpenSSH', results_per_page=50) |
| cve_package_auditA | Check a specific software package for known vulnerabilities using OSV.dev. Queries the Open Source Vulnerabilities database to find all known CVEs and security advisories affecting a package. Supports version-specific queries across all major ecosystems. Args: package: Package name (e.g., 'lodash', 'django', 'openssl') version: Specific version to check (e.g., '4.17.20'). If omitted, returns all known vulnerabilities for any version. ecosystem: Package ecosystem — 'npm', 'PyPI', 'Maven', 'Go', 'crates.io', 'NuGet', 'Packagist', 'RubyGems', 'Debian', 'Alpine', etc. If omitted, OSV auto-detects. Example usage: cve_package_audit(package='lodash', version='4.17.20', ecosystem='npm') cve_package_audit(package='django', ecosystem='PyPI') cve_package_audit(package='openssl') |
| ssh_session_startA | Start a persistent SSH session to a target host. Args: target: Target hostname or IP username: SSH username (default: root) password: SSH password (if using password auth) key_file: Path to SSH private key file (if using key auth) port: SSH port (default: 22) session_id: Optional session identifier (auto-generated if empty) Returns: Session ID and connection status |
| ssh_session_commandC | Execute a command in an active SSH session. Args: session_id: The SSH session ID command: Command to execute on the remote host timeout: Command timeout in seconds (default: 60) Returns: Command output from remote host |
| ssh_session_statusA | Check the status of an SSH session. Args: session_id: The SSH session ID to check |
| ssh_session_stopB | Stop/disconnect an SSH session. Args: session_id: The SSH session ID to stop |
| ssh_sessionsB | List all active SSH sessions. |
| ssh_session_upload_contentA | Upload content directly to a remote host via SSH (no local temp files). Args: session_id: The SSH session ID content: Base64-encoded content to upload remote_path: Destination path on the remote host encoding: Content encoding (utf-8, binary) |
| ssh_session_download_contentB | Download file content from a remote host via SSH as base64. Args: session_id: The SSH session ID remote_path: Path to the file on the remote host |
| ssh_estimate_transferB | Estimate file transfer time over SSH. Args: file_size_bytes: File size in bytes operation: Transfer operation type (upload, download) Returns: Estimated transfer time and recommendations |
| kali_uploadB | Upload content to the Kali server filesystem. Args: content: Base64-encoded file content remote_path: Destination path on the Kali server encoding: Content encoding (utf-8, binary) verify_checksum: Compute and send SHA256 checksum for integrity verification |
| kali_downloadA | Download file content from the Kali server as base64. Args: remote_path: Path to file on the Kali server verify_checksum: Verify SHA256 checksum if provided by the server Returns: File content encoded as base64 |
| target_upload_fileA | Upload content to a target via an active session (SSH or reverse shell). Args: session_id: Active session ID content: Base64-encoded file content remote_path: Destination path on the target method: Transfer method (ssh, reverse_shell) encoding: Content encoding (utf-8, binary) verify_checksum: Compute and send SHA256 checksum for integrity verification |
| target_download_fileB | Download file content from a target via an active session. Args: session_id: Active session ID remote_path: Path to file on the target method: Transfer method (ssh, reverse_shell) verify_checksum: Verify SHA256 checksum if provided by the server Returns: File content encoded as base64 |
| fingerprint_urlA | Fingerprint a URL to detect technologies, frameworks, and CMS. Args: url: Target URL to fingerprint Returns: Detected technologies, headers, and server information |
| fingerprint_wafB | Detect Web Application Firewall (WAF) on a target URL. Args: url: Target URL to test for WAF Returns: WAF detection results |
| fingerprint_headersA | Analyze HTTP response headers for security posture. Args: url: Target URL to check headers Returns: Header analysis with security ratings |
| api_graphql_introspectB | Introspect a GraphQL endpoint to discover schema, types, and queries. Args: url: GraphQL endpoint URL |
| api_graphql_fuzzB | Fuzz a GraphQL endpoint for vulnerabilities. Args: url: GraphQL endpoint URL query: Specific query to fuzz (auto-generated from schema if empty) depth: Fuzzing depth (default: 3) |
| api_jwt_analyzeA | Analyze a JWT token for weaknesses. Args: token: The JWT token string to analyze Returns: Decoded header/payload, algorithm analysis, and potential vulnerabilities |
| api_jwt_crackB | Attempt to crack a JWT token's signing secret. Args: token: The JWT token to crack wordlist: Path to wordlist on the Kali server |
| api_fuzz_endpointB | Fuzz an API endpoint with various payloads. Args: url: Target API endpoint URL method: HTTP method (GET, POST, PUT, DELETE) parameters: Comma-separated parameter names to fuzz wordlist: Custom wordlist path (default: built-in) headers: Custom headers as key:value pairs, comma-separated |
| api_rate_limit_testA | Test API rate limiting controls. Args: url: Target API endpoint requests_count: Number of requests to send (default: 100) method: HTTP method (default: GET) |
| api_auth_bypass_testC | Test for authentication bypass vulnerabilities. Args: url: Target API endpoint method: HTTP method headers: Custom headers as key:value pairs |
| api_ffuf_fuzzB | Fuzz using ffuf for content discovery and parameter brute-forcing. Args: url: Target URL with FUZZ keyword (e.g., http://target/FUZZ) wordlist: Wordlist path on Kali server method: HTTP method mc: Match HTTP status codes (comma-separated) headers: Custom headers (key:value, comma-separated) data_str: POST data with FUZZ keyword |
| api_kiterunner_scanB | Scan API endpoints using Kiterunner for route discovery. Args: url: Target base URL wordlist: Custom wordlist or kiterunner routes file |
| api_nuclei_scanC | Run Nuclei templates against API endpoints. Args: url: Target URL tags: Nuclei template tags (default: api) severity: Filter by severity (critical, high, medium, low) |
| api_newman_runC | Run a Postman/Newman collection against API endpoints. Args: collection: Path to Postman collection JSON file environment: Path to Postman environment JSON file |
| ad_tools_statusA | Check which AD tools are available on the Kali server. |
| ad_bloodhound_collectB | Run BloodHound data collection against an Active Directory domain. Args: domain: Target AD domain (e.g., corp.local) username: Domain username password: Domain password dc_ip: Domain Controller IP (auto-detected if empty) collection_method: Collection method (all, default, DCOnly, etc.) nameserver: Custom DNS nameserver |
| ad_secretsdumpB | Dump secrets (NTLM hashes, Kerberos keys) from a domain controller using secretsdump.py. Args: domain: AD domain username: Domain admin username password: Domain admin password target: Specific target (default: DC) dc_ip: Domain Controller IP hashes: NTLM hash for pass-the-hash (LMHASH:NTHASH) |
| ad_kerberoastC | Perform Kerberoasting attack to extract service ticket hashes. Args: domain: AD domain username: Domain username password: Domain password dc_ip: Domain Controller IP target_user: Specific user to target (all SPNs if empty) |
| ad_asreproastA | Perform AS-REP Roasting to get hashes for accounts with pre-auth disabled. Args: domain: AD domain dc_ip: Domain Controller IP username: Specific username to test userlist: Path to username list file on Kali |
| ad_psexecC | Execute commands on a remote Windows host via PsExec (impacket). Args: target: Target IP or hostname domain: AD domain username: Username password: Password hashes: NTLM hash for pass-the-hash command: Command to execute (default: cmd.exe) |
| ad_wmiexecB | Execute commands on a remote Windows host via WMI (impacket). Args: target: Target IP or hostname domain: AD domain username: Username password: Password hashes: NTLM hash for pass-the-hash command: Command to execute |
| ad_ldap_enumA | Enumerate Active Directory via LDAP. Args: domain: AD domain username: Domain username password: Domain password dc_ip: Domain Controller IP query: Query type (users, groups, computers, spns, admins, all) |
| ad_password_sprayB | Perform password spraying attack against AD accounts. Args: domain: AD domain password: Password to spray dc_ip: Domain Controller IP userlist: Path to username list file on Kali delay: Delay between attempts in seconds (default: 0) |
| ad_smb_enumC | Enumerate SMB shares and information on a target. Args: target: Target IP or hostname username: Username for authenticated enum password: Password domain: AD domain |
| pivot_chisel_serverB | Start a Chisel server for tunneling. Args: port: Listening port (default: 8080) reverse: Allow reverse tunnels (default: True) |
| pivot_chisel_clientA | Start a Chisel client to connect to a Chisel server. Args: server_url: Chisel server URL (e.g., http://attacker:8080) tunnels: Tunnel specifications (e.g., 'R:8888:10.10.10.5:80') fingerprint: Server fingerprint for verification |
| pivot_ssh_localA | Create an SSH local port forward (access remote service locally). Args: ssh_host: SSH server to tunnel through local_port: Local port to listen on remote_host: Remote host to forward to (from SSH server's perspective) remote_port: Remote port to forward to username: SSH username password: SSH password key_file: SSH key file path |
| pivot_ssh_remoteA | Create an SSH remote port forward (expose local service on remote host). Args: ssh_host: SSH server to tunnel through remote_port: Port to open on the SSH server local_host: Local host to forward to local_port: Local port to forward to username: SSH username password: SSH password key_file: SSH key file path |
| pivot_ssh_dynamicB | Create an SSH dynamic SOCKS proxy. Args: ssh_host: SSH server to use as SOCKS proxy socks_port: Local SOCKS port (default: 1080) username: SSH username password: SSH password key_file: SSH key file path |
| pivot_socat_forwardB | Create a socat port forward. Args: listen_port: Local port to listen on target_host: Target host to forward to target_port: Target port to forward to protocol: Protocol (tcp, udp) |
| pivot_ligolo_startC | Start a Ligolo-ng proxy server for pivoting. Args: interface: TUN interface name (default: ligolo) port: Listening port (default: 11601) |
| pivot_list_tunnelsA | List all active tunnels and port forwards. |
| pivot_stop_tunnelB | Stop a specific tunnel. Args: tunnel_id: The tunnel ID to stop |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zebbern/zebbern-kali-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server