Skip to main content

pentestcode-ai-pentest-agent

AI-powered penetration testing agent with multi-agent architecture, engagement state tracking, and autonomous security testing

설치로 이동

소스 정보

저장소
reason-machines/security-skills
최근 소스 활동
2026년 7월 14일 21:23
감지된 SKILL.md 언어
영어
스타
12
포크
1

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
pentestcode-ai-pentest-agent
description
AI-powered penetration testing agent with multi-agent architecture, engagement state tracking, and autonomous security testing
triggers
["run automated penetration test","use PentestCode to scan targets","set up AI pentesting agent","enumerate services with PentestCode","manage pentest engagement state","coordinate multi-agent security testing","parse nmap results into engagement","spray credentials across discovered services"]
# PentestCode AI Pentest Agent > Skill by [ara.so](https://ara.so) — Security Skills collection. PentestCode is an AI penetration testing agent that runs in your terminal with a multi-agent architecture. It maintains persistent engagement state, coordinates 13 specialized security agents, and automates reconnaissance through post-exploitation workflows. Built on TypeScript with Effect library. ## Installation ```bash # Quick install (self-contained binary) curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash # Pin specific version PENTESTCODE_VERSION=0.1.7 curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash # Custom install directory PENTESTCODE_INSTALL=/usr/local/bin curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash # From source (requires Bun) bun install bun run build --single --skip-embed-web-ui # Binary at packages/opencode/dist/pentestcode-<os>-<arch>/bin/pentestcode ``` ## Authentication & Configuration ```bash # Configure LLM provider (required first step) pentestcode auth login # Configuration file: .pentestcode/pentestcode.jsonc ``` Example configuration: ```jsonc { "provider": { "anthropic": { "model": "claude-sonnet-4-20250514", "apiKey": "${ANTHROPIC_API_KEY}" } }, "mode": "auto", // auto, free, or guided "pauseOnFindings": "checkpoint", // never, always, checkpoint "scope": { "targets": ["10.10.10.0/24"], "exclude": ["10.10.10.1"] } } ``` Supported providers: Anthropic, OpenAI, Google, Azure, AWS Bedrock, Ollama, Together, Groq, Fireworks, DeepSeek, Mistral. ## Core Usage Patterns ### Interactive Session ```bash # Launch interactive mode pentestcode # Inside session you: "pentest 10.10.10.5, goal is domain admin" you: "scan 192.168.1.0/24 and enumerate all services" you: "spray credentials across SMB and WinRM" ``` ### One-Shot Execution ```bash # Execute single command and exit pentestcode --prompt "scan 10.10.10.0/24 and enumerate all services" # With custom config pentestcode --config custom.jsonc --prompt "pentest 10.10.11.23" ``` ### CTF Mode ```bash pentestcode --prompt "HTB box 10.10.11.45, find user.txt and root.txt" ``` ## Slash Commands ```bash # Engagement dashboard /status # View discovered hosts and services /targets # Show vulnerabilities by severity /vulns # List discovered credentials /creds # View/edit target scope /scope add 10.10.10.0/24 /scope exclude 10.10.10.1 /scope list # Phase management /phase # Show current phase /phase recon # Jump to phase # Switch operational modes /mode auto # Autonomous execution /mode free # No phase structure /mode guided # Step-by-step approval # Pause behavior /pause never # Run continuously /pause always # Stop at every finding /pause checkpoint # Stop at phase boundaries # Generate report /report ``` ## Multi-Agent Architecture PentestCode uses 13 specialized agents coordinated by a strategist: ```typescript // Agent types and their roles: // - pentest: Lead strategist/coordinator // - recon: Passive information gathering // - scanner: Active service discovery // - enumerator: Service enumeration // - exploiter: Vulnerability exploitation // - identity: AD/Kerberos attacks // - infrastructure: SNMP/IPMI/databases // - webapp: OWASP Top 10 testing // - post-exploit: Post-exploitation tasks // - exploit-dev: Exploit development // - critic: False positive checking // - reporter: Report generation // - (hidden): context compression, session management ``` Agents spawn in parallel and share engagement state: ```bash # Scanner finds open ports → state updated # Enumerator sees new services immediately → spawns parallel enumeration # Exploiter receives vuln data → begins exploitation ``` ## Built-in Tools ### Parser Tools (Mandatory Usage) ```bash # nmap_parse - Parse nmap XML into engagement state nmap -sS -sV -p- 10.10.10.5 -oX scan.xml # Agent must use: nmap_parse scan.xml # nuclei_parse - Parse Nuclei JSON findings nuclei -u https://target.com -json -o nuclei.json # Agent must use: nuclei_parse nuclei.json # cme_parse - Parse NetExec/CrackMapExec output netexec smb 10.10.10.0/24 -u users.txt -p passwords.txt > cme.log # Agent must use: cme_parse cme.log # gobuster_parse - Parse directory brute output gobuster dir -u https://target.com -w wordlist.txt -o gobuster.txt # Agent must use: gobuster_parse gobuster.txt # bloodhound_parse - Parse SharpHound JSON # Agent must use: bloodhound_parse bloodhound.json # sqlmap_parse - Parse sqlmap output # Agent must use: sqlmap_parse sqlmap.log ``` ### Analysis Tools ```bash # xss_detect - Analyze HTTP responses for XSS # Input: response body, reflected parameters # Output: XSS vulnerability classification # jwt_analyze - JWT security analysis # Checks: alg:none, weak HMAC, expiry, claims # scope_check - Validate targets against scope # Returns: in_scope boolean, CIDR/wildcard matching ``` ### Tactical Tools ```bash # cred_spray - Plan credential spray # Inputs: credentials list, discovered services # Output: spray plan across SMB/WinRM/RDP/LDAP/SSH # attack_path_suggest - Graph-based attack path finding # Algorithm: Dijkstra + Yen's K-shortest paths # Output: Ranked paths to objective # tunnel_manage - Manage pivot tunnels # Supports: SSH, chisel, ligolo # Tracks: Live sessions, tunnel topology ``` ### State Management Tools ```typescript // state_update - Record findings (30+ mutation types) // Usage patterns: // Add host state_update({ type: "add_host", ip: "10.10.10.5", hostname: "dc01.corp.local", os: "Windows Server 2019" }) // Add service state_update({ type: "add_service", host: "10.10.10.5", port: 445, protocol: "tcp", service: "microsoft-ds", version: "Windows Server 2019" }) // Add vulnerability state_update({ type: "add_vuln", host: "10.10.10.5", title: "SMB Signing Not Required", severity: "medium", confidence: 0.9, evidence: "nmap output shows signing disabled" }) // Add credential state_update({ type: "add_cred", username: "administrator", password: "P@ssw0rd", type: "plaintext", domain: "CORP", valid_for: ["smb://10.10.10.5", "winrm://10.10.10.5"] }) // Batch updates state_update([ { type: "add_host", ip: "10.10.10.6" }, { type: "add_service", host: "10.10.10.6", port: 80 } ]) ``` ```typescript // state_query - Query engagement state (20+ query types) // Get all hosts state_query({ type: "hosts" }) // Get services on specific host state_query({ type: "services", host: "10.10.10.5" }) // Get vulnerabilities by severity state_query({ type: "vulns", severity: "critical" }) // Get all credentials state_query({ type: "creds" }) // Get access paths state_query({ type: "access", host: "10.10.10.5" }) // Get AD domain model state_query({ type: "ad_domain" }) // Check attack paths to objective state_query({ type: "attack_paths", source: "10.10.10.5", target: "domain_admin" }) ``` ## Engagement State Structure The engagement state persists at `.pentestcode/state.json`: ```typescript interface EngagementState { // Hosts & services hosts: Array<{ ip: string; hostname?: string; os?: string; ports: Array<{ port: number; protocol: "tcp" | "udp"; state: "open" | "closed" | "filtered"; service?: string; version?: string; banner?: string; }>; }>; // Vulnerabilities vulns: Array<{ id: string; host: string; title: string; severity: "critical" | "high" | "medium" | "low" | "info"; status: "suspected" | "confirmed" | "exploited"; confidence: number; // 0.0-1.0 evidence: string[]; cve?: string; }>; // Credentials creds: Array<{ username: string; password?: string; hash?: string; type: "plaintext" | "ntlm" | "aes256" | "rc4" | "ssh_key"; domain?: string; valid_for: string[]; // URLs where cred works }>; // Access gained access: Array<{ host: string; type: "shell" | "rdp" | "winrm" | "ssh" | "db" | "smb"; username: string; privilege: "user" | "admin" | "system"; }>; // Relationships (entity graph) relationships: Array<{ from: string; to: string; type: "EXPLOITED_VIA" | "CREDENTIAL_FROM" | "ADMIN_OF" | "PIVOT_TO"; cost: number; // For path finding }>; // Active Directory model ad_domain?: { name: string; domain_controllers: string[]; domain_admins: string[]; password_policy: object; trusts: Array<{ domain: string; type: string }>; }; // Current phase phase: "recon" | "scan" | "enumerate" | "exploit" | "post-exploit" | "report"; // Objectives (for CTF/goal-oriented tests) objectives: Array<{ id: string; description: string; status: "pending" | "complete"; flag?: string; }>; } ``` ## Real Workflow Example ```bash # 1. Start engagement pentestcode you: "pentest 10.10.10.5, goal is domain admin" # Agent flow: # - Spawns scanner agent → runs nmap # - Parses XML with nmap_parse → populates hosts/services in state # - Recognizes ports 88 (Kerberos) + 389 (LDAP) → identifies DC # - Spawns 3 parallel enumerators: SMB, LDAP, HTTP # - SMB enumerator finds null session → writable share # - LDAP enumerator extracts user list → updates state # - HTTP enumerator runs gobuster → finds admin portal # - Identity agent runs AS-REP roast → gets hash # - Exploiter runs hashcat → cracks password # - Post-exploit agent sprays cred across all services # - WinRM access gained → spawns shell # - Dumps SAM/LSA → extracts domain admin hash # - Updates state with EXPLOITED_VIA relationships # - Generates findings.md with evidence chain # 2. Check progress /status # Shows: 1 DC, 7 services, 12 vulns, 3 creds, WinRM access # 3. View findings /vulns # Lists vulnerabilities by severity with evidence # 4. Review credentials /creds # Shows cracked passwords and where they work # 5. Generate report /report # Creates markdown pentest report with timeline ``` ## Skills System PentestCode loads knowledge packs on demand: ```bash # Skills directory: .pentestcode/skills/ # Phase checklists (6 files) PHASE_RECON.md PHASE_SCAN.md PHASE_ENUMERATE.md PHASE_EXPLOIT.md PHASE_POST_EXPLOIT.md PHASE_REPORT.md # Service knowledge (9 files) SERVICE_SMB.md SERVICE_SSH.md SERVICE_HTTP.md SERVICE_DNS.md SERVICE_DATABASES.md # ... etc # Playbooks (4 files) PLAYBOOK_INFRASTRUCTURE.md PLAYBOOK_ACTIVE_DIRECTORY.md PLAYBOOK_WEB_APPLICATION.md PLAYBOOK_CLOUD.md ``` Add custom skills by creating `SKILL_NAME.md`: ```markdown # Custom Skill: Internal App Testing ## Tools - Custom scanner at /opt/internal-scanner - Credential wordlist at /wordlists/internal.txt ## Workflow 1. Run internal-scanner against target 2. Parse output with custom parser 3. ... ``` Skills are plain markdown — no code changes needed. ## Mode-Specific Patterns ### Auto Mode (Autonomous) ```bash pentestcode --prompt "pentest 10.10.10.0/24" # Agent: # - Plans full engagement # - Spawns subagents as needed # - Progresses through phases automatically # - Stops at checkpoints for review (if pause=checkpoint) ``` ### Free Mode (Unrestricted) ```bash pentestcode /mode free you: "scan this random IP I found: 8.8.8.8" # Agent: # - Bypasses scope checks # - No phase structure # - Responds to direct requests # - Useful for ad-hoc testing ``` ### Guided Mode (Step-by-Step) ```bash pentestcode /mode guided you: "pentest 10.10.10.5" # Agent proposes: "Run nmap -sS -sV -p- 10.10.10.5?"
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기