지속적인 엥게이지먼트 상태를 유지하며 다중 에이전트 정찰, 익스플로잇, 사후 익스플로잇 및 보고를 오케스트레이션하는 자율형 AI 침투 테스트 에이전트
터미널에서 실행되는 AI 침투 테스트 에이전트.
멀티 에이전트 아키텍처 • 인게이지먼트 상태 추적 • 20개 이상의 LLM 제공자
PentestCode는 터미널에서 동작하는 자율 침투 테스트 에이전트입니다. 타겟을 지정하면 도구를 실행하고, 출력을 읽고, 네트워크에 대한 그림을 갱신하며, 다음에 무엇을 할지 스스로 결정합니다 — 마치 실제 운영자처럼요. OpenCode(MIT)의 하드 포크로, 코드 편집 중심 기능을 걷어내고 공격적 보안을 위해 재구축했습니다.
베타 — 실제 인게이지먼트와 CTF에서 검증되었지만 거친 부분이 있을 수 있습니다. 문제가 생기면 이슈를 등록해 주세요. 그것이 더 나은 도구를 만듭니다.
명령 하나로 전체 공격 체인이 실행됩니다:
you: "pentest 10.10.10.5, goal is domain admin"
| 단계 | 에이전트가 하는 일 |
|---|---|
| 스캔 | nmap -sS -p-가 7개의 열린 포트를 찾고 XML을 파싱해 인게이지먼트 상태에 바로 반영 |
| 식별 | 포트 88 + 389 → 도메인 컨트롤러. 세 개의 열거자를 병렬로 실행 (SMB, LDAP, HTTP) |
| 열거 | Null SMB 세션 → 쓰기 가능한 공유. LDAP → 사용자 목록. Gobuster → 웹 디렉터리 |
| 공격 | AS-REP roast → 크랙 가능한 해시 → 첫 번째 유효 자격 증명 |
| 스프레이 | 해당 자격 증명을 알려진 모든 호스트의 SMB, WinRM, LDAP, RDP에 스프레이 |
| 익스플로잇 | WinRM 발판 → 포스트 익스플로잇 에이전트가 SAM / LSA / DPAPI 덤프 |
| 결과 | 도메인 관리자 해시 확보 — 모든 단계가 증거 체인과 함께 기록됨 |
사람들이 게을러지는 부분에서도 체계적입니다: 모든 호스트의 모든 서비스에 모든 자격 증명을 스프레이하고, 확인해야 할 것들을 잊지 않습니다. 학습한 모든 내용은 구조화된 상태에 저장되며 실행 중에 /status, /vulns, /creds로 조회할 수 있습니다.
npm install -g pentestcode-ai
# via curl
curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
단일 자체 포함 바이너리 — Bun, Node, 런타임 설치가 필요 없습니다. Linux와 macOS, x64와 arm64를 지원합니다.
Arch Linux (AUR):
paru -S pentestcode-bin
버전 고정:
PENTESTCODE_VERSION=0.1.7 curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
사용자 지정 디렉터리:
PENTESTCODE_INSTALL=/usr/local/bin curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
소스에서 빌드:
bun install
bun run build --single --skip-embed-web-ui
# binary at packages/opencode/dist/pentestcode-<os>-<arch>/bin/pentestcode
pentestcode auth login # connect your LLM provider
pentestcode # interactive session
pentestcode --prompt "scan 10.10.10.0/24 and enumerate all services" # one-shot
ai-sdk를 통해 20개 이상의 제공자와 호환됩니다 — Anthropic, OpenAI, Google, Azure, AWS Bedrock, Ollama 등.
PentestCode를 채팅 창에 붙여넣은 침투 테스트 프롬프트와 구분 짓는 두 가지: 에이전트 팀과 그들이 공유하는 메모리입니다.
설계는 HPTSA 연구의 전략가-코디네이터 모델을 따릅니다 — 단일 에이전트 대비 4.3배 향상:
┌─────────────┐
│ pentest │ strategist / coordinator
│ (lead) │ plans, dispatches, tracks state
└──────┬──────┘
┌───────┬───────┼───────┬───────┐
▼ ▼ ▼ ▼ ▼
┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐
│recon ││scan- ││explo-││iden- ││post- │
│ ││ner ││iter ││tity ││explo │ ... + 7 more
└──────┘└──────┘└──────┘└──────┘└──────┘
리드 에이전트(pentest)가 인게이지먼트를 작업으로 나누고 전문 서브에이전트를 병렬로 파견합니다 — 각자 고유한 시스템 프롬프트, 도구 권한, 도메인 지식을 가집니다. 총 13개 에이전트: recon, scanner, enumerator, exploiter, identity (AD/Kerberos), infrastructure (SNMP/IPMI/데이터베이스), webapp (OWASP Top 10), post-exploit, exploit-dev, critic (오탐 검사기), reporter, 그리고 컨텍스트 압축과 세션 관리를 위한 숨겨진 에이전트들.
스캐너가 포트를 찾으면 열거자가 즉시 확인합니다 — 모든 에이전트가 하나의 구조화된 인게이지먼트 상태를 읽고 쓰기 때문입니다:
상태는 세션을 넘어 유지됩니다: 터미널을 닫고 다음 날 돌아와도 에이전트는 멈춘 지점에서 재개합니다. 함께 사람이 읽을 수 있는 findings.md가 모든 취약점, 자격 증명, 접근 획득을 타임스탬프와 함께 기록합니다 — tail -f로 인게이지먼트가 펼쳐지는 모습을 지켜볼 수 있습니다.
bash 외에 18개의 내장 침투 테스트 도구가 있습니다. 파서 도구는 필수입니다: nmap 실행 후 에이전트는 XML을 손으로 grep하는 대신 반드시 nmap_parse를 통해 출력을 파이프해야 하므로, 모든 발견 사항이 인게이지먼트 상태에 도달합니다.
| 도구 | 하는 일 |
|---|---|
nmap_parse | nmap XML 파싱 → 호스트/서비스 자동 채우기 |
nuclei_parse | Nuclei JSON 파싱 → 심각도와 함께 취약점 생성 |
cme_parse | NetExec 출력 파싱 → 자격 증명/접근/호스트 갱신 |
gobuster_parse | 디렉터리 브루트 출력 파싱 → 발견 사항 분류 |
bloodhound_parse | SharpHound JSON 파싱 → AD 모델 채우기 |
sqlmap_parse | sqlmap 출력 파싱 → 인젝션 지점 추출 |
xss_detect | 반사형/저장형 XSS 응답 분석 |
jwt_analyze | JWT 디코드, alg:none/약한 HMAC/만료 확인 |
cred_spray | 발견된 모든 서비스에 대한 자격 증명 스프레이 계획 |
scope_check | CIDR/와일드카드 범위 검증 |
attack_path_suggest | 관계 그래프를 통한 비용 기반 경로 탐색 |
tunnel_manage | SSH/chisel/ligolo 터널 계획, 라이브 세션 추적 |
phase_control | 품질 게이트를 포함한 단계 관리 |
report_gen | markdown/JSON 침투 테스트 보고서 생성 |
state_update | 발견 사항 기록 (30개 이상의 변경 유형, 배치 모드) |
state_query | 인게이지먼트 상태 조회 (20개 이상의 쿼리 유형) |
19개의 선별된 지식 팩으로, 필요할 때만 로드되어 관련 있을 때만 컨텍스트를 소비합니다:
스킬은 순수 markdown입니다. 스킬 디렉터리에 SKILL.md를 넣어 직접 추가할 수 있습니다 — 코드 변경이 필요 없습니다.
슬래시 명령어로 라이브 세션을 제어합니다:
| 명령어 | 하는 일 |
|---|---|
/status | 인게이지먼트 대시보드 — 호스트, 취약점, 자격 증명, 단계 |
/targets | 호스트 및 서비스 테이블 |
/vulns | 심각도별 발견 사항 |
/creds | 발견된 자격 증명 |
/scope | 타겟 범위 보기/편집 |
/phase | 단계 관리 |
/mode | auto / free / guided 전환 |
/pause | 발견 시 일시정지 (never / always / checkpoint) |
/report | 침투 테스트 보고서 생성 |
그리고 에이전트에게 얼마나 자율성을 줄지 설정합니다:
모드는 일시정지 동작과 결합됩니다 — auto + pause always는 모든 발견 사항에서 검토를 위해 멈추는 자율 실행을 제공합니다.
공격적 보안 전반에 걸친 하나의 툴킷:
설정은 .pentestcode/pentestcode.jsonc에 있습니다:
{
"provider": {
"anthropic": {
"model": "claude-sonnet-4-20250514"
}
}
}
제공자: Anthropic, OpenAI, Google, Azure, AWS Bedrock, Ollama, Together, Groq, Fireworks, DeepSeek, Mistral, 그리고 ai-sdk를 통한 그 이상.
실제 사용에서 나온 버그 보고가 가장 가치 있는 기여입니다. CTF 박스, HTB 머신, 또는 승인된 침투 테스트에서 PentestCode를 실행하고, 무언가 잘못될 때 — 루프에 빠지거나, 명백한 경로를 놓치거나, 도구 출력에 질식하거나, 토큰을 낭비할 때 — 다음을 포함해 이슈를 열어 주세요:
findings.md 및/또는 관련 세션 출력기능 요청과 PR도 환영합니다. 코드베이스는 Effect 라이브러리 기반의 TypeScript입니다 — 아키텍처는 CLAUDE.md를 참조하세요.
MIT — LICENSE 참조.
Hard fork of OpenCode • Built for offensive security • Self-hosted & open source