| name | pentest-ai-killer-automation |
| description | Comprehensive pentesting automation server integrating 69+ security tools with AI assistants through MCP and REST API |
| triggers | ["run a pentest on this target","scan this web application for vulnerabilities","perform network reconnaissance on this domain","automate security testing with pentest-ai-killer","set up comprehensive penetration testing workflow","execute nuclei/sqlmap/nmap scan through pentakill","integrate pentest tools with AI assistant","run cloud security assessment on AWS"] |
Pentest AI Killer Automation
Skill by ara.so — Security Skills collection.
Pentest AI Killer (Pentakill) is a comprehensive pentesting automation server that integrates 69+ security tools (nmap, nuclei, sqlmap, httpx, gobuster, etc.) with AI assistants through the Model Context Protocol (MCP). It provides a unified REST API and optional CLI for executing reconnaissance, vulnerability assessment, network discovery, password cracking, and cloud security testing.
Installation
Docker Compose (Recommended)
git clone https://github.com/vietjovi/pentest-ai-killer.git
cd pentest-ai-killer
docker-compose up -d
Default uses Dockerfile.base (~500MB-1GB, essential tools). For full toolset (~2GB-4GB), edit docker-compose.yml:
services:
pentest-ai-killer:
build:
dockerfile: Dockerfile
Manual Installation (Ubuntu 20.04+)
git clone https://github.com/vietjovi/pentest-ai-killer.git
cd pentest-ai-killer
sudo bash install_pentest_tools.sh
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Build pentakill CLI (Optional)
go build -o bin/pentakill ./cmd/pentakill
GOOS=linux GOARCH=amd64 go build -o bin/pentakill-linux-amd64 ./cmd/pentakill
GOOS=darwin GOARCH=arm64 go build -o bin/pentakill-darwin-arm64 ./cmd/pentakill
Configuration
API Authentication
Edit config.py before first run:
X_API_KEY = "your-secure-api-key-here"
PENTEST_TOOLS = {
"web_reconnaissance": [
{"tool": "httpx", "enabled": True},
{"tool": "nuclei", "enabled": True},
],
"vulnerability_assessment": [
{"tool": "sqlmap", "enabled": True},
{"tool": "nikto", "enabled": True},
]
}
Environment Variables
export PENTAKILL_URL="http://127.0.0.1:8080"
export PENTAKILL_API_KEY="your-secure-api-key-here"
docker run -d -p 8080:8080 \
-v $(pwd)/config.py:/app/config.py:ro \
-v $(pwd)/reports:/app/reports \
pentest-ai-killer:base
Starting the Server
source venv/bin/activate
python3 pentest_ai_killer_server.py
Server runs on http://localhost:8080
REST API Usage
All endpoints require X-API-KEY header.
Execute Specific Tool
curl -X POST http://localhost:8080/tools/nmap \
-H "Content-Type: application/json" \
-H "X-API-KEY: ${PENTAKILL_API_KEY}" \
-d '{
"targets": "scanme.nmap.org"
}'
Category Scans
curl -X POST http://localhost:8080/web-reconnaissance \
-H "Content-Type: application/json" \
-H "X-API-KEY: ${PENTAKILL_API_KEY}" \
-d '{
"targets": "testphp.vulnweb.com"
}'
curl -X POST http://localhost:8080/comprehensive-pentest \
-H "Content-Type: application/json" \
-H "X-API-KEY: ${PENTAKILL_API_KEY}" \
-d '{
"targets": "example.com"
}'
curl -X POST http://localhost:8080/cloud-security-assessment \
-H "Content-Type: application/json" \
-H "X-API-KEY: ${PENTAKILL_API_KEY}" \
-d '{
"targets": "my-aws-account",
"aws_profile": "default"
}'
Custom Tool Commands
import requests
response = requests.post(
"http://localhost:8080/tools/nuclei",
headers={
"Content-Type": "application/json",
"X-API-KEY": os.environ["PENTAKILL_API_KEY"]
},
json={
"targets": "testphp.vulnweb.com",
"custom_command": "nuclei -u testphp.vulnweb.com -t cves/ -severity critical,high"
}
)
print(response.json())
List Available Tools
curl -H "X-API-KEY: ${PENTAKILL_API_KEY}" http://localhost:8080/tools
curl -H "X-API-KEY: ${PENTAKILL_API_KEY}" http://localhost:8080/categories
pentakill CLI Usage
The pentakill Go binary provides a CLI interface to the REST API without requiring MCP integration.
Basic Commands
./bin/pentakill health
./bin/pentakill tools
./bin/pentakill categories -json
./bin/pentakill run tool nmap -target scanme.nmap.org
./bin/pentakill run category web-reconnaissance -target example.com
./bin/pentakill run tool nuclei \
-target testphp.vulnweb.com \
-custom-command "nuclei -u testphp.vulnweb.com -t cves/ -severity critical"
Advanced Usage
./bin/pentakill -url http://192.168.1.100:8080 \
-key "custom-key" \
-timeout 600 \
run category comprehensive-pentest -target example.com
./bin/pentakill run tool sqlmap \
-params-json '{"targets":"testphp.vulnweb.com/listproducts.php?cat=1","sqlmap_options":"--batch --dbs"}'
Category names accept underscores or hyphens: comprehensive_network_pentest maps to /comprehensive-pentest.
MCP Integration
Connect Pentest AI Killer to AI assistants (Claude Desktop, Cursor, LibreChat).
Setup
- Install MCP dependencies:
source venv/bin/activate
pip install -r requirements_mcp.txt
- Configure AI assistant:
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"pentest-ai-killer": {
"command": "/usr/bin/python3",
"args": ["/path/to/pentest-ai-killer/pentest_ai_killer_mcp.py"],
"env": {
"PENTEST_API_URL": "http://127.0.0.1:8080"
}
}
}
}
Cursor (~/.cursor/mcp.json):
{
"mcpServers": {
"pentest-ai-killer": {
"command": "/usr/bin/python3",
"args": ["/path/to/pentest-ai-killer/pentest_ai_killer_mcp.py"],
"env": {
"PENTEST_API_URL": "http://127.0.0.1:8080"
}
}
}
}
- Restart AI assistant
MCP Natural Language Usage
Ask your AI assistant:
- "Use pentest-ai-killer mcp, perform a comprehensive pentest on testphp.vulnweb.com"
- "Use pentest-ai-killer mcp, run web reconnaissance on example.com"
- "Use pentest-ai-killer mcp and template 05, run a fast web pentest on testphp.vulnweb.com"
- "Use pentest-ai-killer mcp, scan example.com for vulnerabilities using nuclei"
- "Use pentest-ai-killer mcp, get API information in input/api_postman_info.txt, then run api pentest"
MCP Python API
from pentest_ai_killer_mcp import PentestAIKillerMCP
mcp = PentestAIKillerMCP(api_url="http://127.0.0.1:8080")
result = await mcp.mcp_execute_tool(
tool_name="nuclei",
targets="testphp.vulnweb.com",
custom_command="nuclei -u testphp.vulnweb.com -t cves/"
)
result = await mcp.mcp_vulnerability_assessment(
targets="example.com"
)
result = await mcp.mcp_execute_template(
template_id="05_fast_web_pentest",
target="testphp.vulnweb.com"
)
reports = await mcp.mcp_get_latest_reports(limit=10)
report_content = await mcp.mcp_read_report(
report_path="reports/testphp.vulnweb.com_nuclei_20250124_143022.txt"
)
Key API Endpoints
| Endpoint | Method | Description |
|---|
/health | GET | Server health check |
/tools | GET | List all available tools |
/categories | GET | List all tool categories |
/tools/{tool_name} | POST | Execute specific tool |
/web-reconnaissance | POST | Web security scanning (httpx, nuclei, etc.) |
/network-discovery | POST | Network reconnaissance (nmap, rustscan) |
/vulnerability-assessment | POST | Vulnerability testing (sqlmap, nikto, wpscan) |
/password-cracking | POST | Password brute-forcing |
/comprehensive-pentest | POST | Full pentest suite (autorecon, legion) |
/cloud-security-assessment | POST | AWS security (prowler, cloudsploit) |
/kubernetes-security-assessment | POST | Kubernetes security (kube-hunter) |
/container-security-assessment | POST | Container security (trivy, clair) |
/iac-security-assessment | POST | IaC security (checkov, tfsec) |
/multi-cloud-assessment | POST | Multi-cloud security |
Common Patterns
Sequential Tool Execution
import requests
import os
API_URL = "http://localhost:8080"
API_KEY = os.environ["PENTAKILL_API_KEY"]
headers = {
"Content-Type": "application/json",
"X-API-KEY": API_KEY
}
target = "testphp.vulnweb.com"
httpx_resp = requests.post(
f"{API_URL}/tools/httpx",
headers=headers,
json={"targets": target}
)
subfinder_resp = requests.post(
f"{API_URL}/tools/subfinder",
headers=headers,
json={"targets": target}
)
nuclei_resp = requests.post(
f"{API_URL}/tools/nuclei",
headers=headers,
json={
"targets": target,
"custom_command": f"nuclei -u {target} -t cves/ -severity critical,high"
}
)
sqlmap_resp = requests.post(
f"{API_URL}/tools/sqlmap",
headers=headers,
json={
"targets": f"{target}/listproducts.php?cat=1",
"sqlmap_options": "--batch --dbs --risk=3 --level=5"
}
)
Parallel Execution with Process Management
import requests
import time
processes = []
tools = ["httpx", "subfinder", "nuclei"]
for tool in tools:
resp = requests.post(
f"{API_URL}/tools/{tool}",
headers=headers,
json={"targets": target}
)
if resp.json().get("success"):
processes.append(tool)
time.sleep(5)
status_resp = requests.get(f"{API_URL}/processes", headers=headers)
print(status_resp.json())
Template-Based Workflows
templates = {
"01_full_pentest": "Comprehensive pentest workflow",
"02_reconnaissance": "Recon-only workflow",
"05_fast_web_pentest": "Quick web application scan"
}
result = await mcp.mcp_execute_template(
template_id="05_fast_web_pentest",
target="testphp.vulnweb.com"
)
Reading and Managing Reports
reports_resp = requests.get(
f"{API_URL}/mcp/reports",
headers=headers
)
reports = reports_resp.json()
target_reports = [r for r in reports if "testphp.vulnweb.com" in r]
if target_reports:
latest = sorted(target_reports)[-1]
with open(f"reports/{latest}", "r") as f:
report_content = f.read()
print(report_content)
Adding Custom Tools
- Install the tool (ensure it's in PATH):
sudo apt install custom-tool
go install github.com/author/custom-tool@latest
export PATH=$PATH:$HOME/go/bin
- Add to
config.py:
PENTEST_TOOLS = {
"vulnerability_assessment": [
{
"tool": "custom-tool",
"command": "custom-tool",
"params": "-v --threads 10 [TARGET]",
"description": "Custom vulnerability scanner",
"enabled": True
}
]
}
- Test the tool:
curl -X POST http://localhost:8080/tools/custom-tool \
-H "Content-Type: application/json" \
-H "X-API-KEY: ${PENTAKILL_API_KEY}" \
-d '{"targets": "example.com"}'
Key Tools by Category
Web Reconnaissance (10 enabled)
httpx: HTTP probing and URL discovery
nuclei: Template-based vulnerability scanning
subfinder: Subdomain enumeration
gospider: Web crawling
katana: Web crawling and spidering
hakrawler: URL discovery
gau: URL fetching from archives
waybackurls: Wayback Machine URL extraction
paramspider: Parameter discovery
arjun: HTTP parameter discovery
Vulnerability Assessment (12 enabled)
sqlmap: SQL injection detection and exploitation
nikto: Web server vulnerability scanning
wpscan: WordPress security scanner
dalfox: XSS scanning
wapiti: Web application vulnerability scanner
gobuster: Directory/file brute-forcing
ffuf: Web fuzzing
xsstrike: Advanced XSS detection
commix: Command injection exploitation
noSQLMap: NoSQL injection testing
wafw00f: WAF detection
zap: OWASP ZAP security testing
Network Discovery (2 enabled)
nmap: Network port scanning
rustscan: Fast port scanner
Comprehensive Pentest (2 enabled)
autorecon: Automated reconnaissance
legion: Automated penetration testing framework
Troubleshooting
API Server Not Starting
sudo lsof -i :8080
export FLASK_RUN_PORT=9090
python3 pentest_ai_killer_server.py
Tools Not Found
export PATH=$PATH:$HOME/go/bin
which nuclei httpx subfinder
sudo bash install_pentest_tools.sh
Docker Permission Issues
sudo usermod -aG docker $USER
newgrp docker
sudo chown -R $(id -u):$(id -g) reports/
MCP Connection Failures
curl -H "X-API-KEY: ${PENTAKILL_API_KEY}" http://127.0.0.1:8080/health
which python3
python3 pentest_ai_killer_mcp.py
Authentication Errors
grep X_API_KEY config.py
echo $PENTAKILL_API_KEY
sed -i 's/X_API_KEY = .*/X_API_KEY = "new-key"/' config.py
Report Access Issues
mkdir -p reports
chmod 755 reports
docker run -v $(pwd)/reports:/app/reports pentest-ai-killer:base
Tool Execution Timeouts
./bin/pentakill -timeout 1200 run tool nmap -target example.com
response = requests.post(
f"{API_URL}/tools/nmap",
headers=headers,
json={"targets": "example.com"},
timeout=1200
)
Security Considerations
⚠️ WARNING: This tool is for authorized security testing only. Unauthorized use is illegal.
- Change default API key in
config.py before deployment
- Use HTTPS in production (reverse proxy with nginx/traefik)
- Restrict network access (firewall rules, VPN)
- Store API keys securely (environment variables, secrets management)
- Review tool configurations before enabling dangerous features
- Monitor execution logs for suspicious activity
- Scope targets carefully to avoid unintended scanning
Resources