0xSteph/pentest-ai
Open-source AI pentester that proves every finding. Machine oracles re-run each exploit; verified bugs ship a proof capsule you can replay yourself.
pentest‑ai (ptai) – AI‑coordinated, oracle‑verified penetration testing
개요 – ptai는 기존 보안 스캐너, 익스플로잇 도구 및 커스텀 프로브를 *조정(coordinate)*하는 데 대규모 언어 모델(LLM)을 사용하는 Python 기반 명령줄 도구입니다. 취약점이 발견되면 도구는 대상에 대해 결정론적이고 비파괴적인 개념 증명(the “oracle”)을 재실행합니다. 오라클이 N/N회 문제를 재현했을 때만 해당 발견이 VERIFIED(검증됨)로 표시되므로, 보고서에는 Nuclei 또는 ZAP와 같은 스캐너의 일반적인 노이즈 섞인 출력이 아닌, 입증된 취약점만 포함됩니다.
주요 기능
- LLM 기반 워크플로우 오케스트레이션 – LLM(Claude, OpenAI, Ollama 등)이 200개 이상의 래핑된 도구와 약 60개의 웹 프로브 파이프라인을 구동하여, 어떤 도구를 실행하고 결과를 어떻게 연결할지 결정합니다.
- 오라클 검증 – 각 후보 익스플로잇은 전용 “머신 오라클”(예: 유출된 비밀번호로 로그인, 조작된 요청 재전송)에 의해 재실행됩니다. 오라클이 성공할 때만 해당 발견에 VERIFIED 배지와 나중에 재생 가능한 휴대용 증명 캡슐(
ptai replay)이 부여됩니다. - 다단계 에이전트 – 정찰, 인증 처리, 웹/API/AD/클라우드 테스트, 권한 상승, 익스플로잇 체인 구축, PoC 검증, 탐지 규칙 생성, 보고서 작성, 그리고 선택 사항으로 레드팀, 모바일 및 무선 에이전트를 지원합니다.
- 제로 트러스트 실행 – 모든 네트워크 트래픽은 사용자의 머신에서 발생합니다. 사용자가 LLM 엔드포인트를 제공하지 않는 한 클라우드 서비스가 필요하지 않습니다. Ollama를 사용하여 완전히 오프라인으로 실행할 수 있습니다.
- CI/CD 통합 – GitHub Action 예시는 검증된 고위험 발견이 나타날 때 SARIF, JUnit 또는 PDF 보고서와 함께 PR을 실패시키는 방법을 보여줍니다.
- 범위 안전성 – 활성 도구는 호스트에 고정되어 있습니다. 스캐너는 페이지에서 스크래핑된 타사 URL을 절대 따라가지 않습니다.
- 비용 가드 – 독립형(non-MCP) 모드에서 LLM 비용은 기본적으로 10 USD로 제한됩니다. 이 제한은
PTAI_PRICE_LIMIT를 통해 구성할 수 있습니다.
작동 방식 (하이레벨 흐름)
ptai start <target>가 작업을 시작합니다.- Recon(정찰) 단계에서 포트, DNS, 서비스 핑거프린트를 수집합니다.
- Auth(인증) 단계에서 로그인하고(자격 증명은 환경 변수, 1Password, Vault 등에서 참조 가능) 세션을 유지합니다.
- Web / API / AD / Cloud 에이전트가 결정론적 프로브를 실행합니다 (OWASP Top 10, API Top 10 등을 포함하는 60개 이상의 SPA 인식 체크).
- 발견 내용은 로컬 SQLite DB에 저장됩니다.
- Exploit‑chain 에이전트가 발견 내용을 상관 관계 분석하여 다단계 공격 경로를 구축합니다.
- **Poc‑validator (오라클)**가 각 발견을 재실행합니다. 성공한 것만 VERIFIED로 표시되고 재생 가능한 캡슐로 패키징됩니다.
- Report 에이전트가 markdown, HTML, PDF, SARIF, JUnit 및 선택적 탐지 규칙 내보내기를 생성합니다.
설치 및 사용법
pip install ptai # 코어 패키지
tai start https://target.com # 대화형 실행 (인증, 범위 등에 대한 프롬프트 표시)
tai demo # 번들된 취약한 앱을 대상으로 한 빠른 데모
tai replay <capsule> # 증명 캡슐을 직접 재생
다음 세 가지 실행 경로가 문서화되어 있습니다:
- 경로 1 – API 키 없이 Claude Code(또는 기타 MCP 호환 클라이언트)에서
ptai를 구동합니다. 클라이언트의 기존 Anthropic 구독이 LLM을 제공합니다. - 경로 2 –
ptai setup --mcp를 통해 다른 MCP 클라이언트(Cursor, VS Code Copilot 등)를 자동 구성합니다. - 경로 3 – CI, 에어갭 터미널 또는 MCP 클라이언트가 없는 사용자를 위한 독립형 CLI입니다. LLM API 키 또는 로컬 Ollama 서버가 필요합니다.
벤치마크 (README에 보고된 내용)
- 14개의 취약점 클래스를 포함하는 커스텀 허니팟에서
ptai는 23개의 발견을 100% 정밀도 및 제로 오탐으로 검증했습니다. - OWASP Juice Shop에서 단일 스캔으로 12개의 오라클 검증된 발견(예: JWT
alg:none, BOLA, 순차적 IDOR, 타입 혼동)을 생성했습니다. - 이 도구는 허니팟 하네스와 클린 앱 테스트 스위트를 제공하므로 이러한 수치를 재현할 수 있습니다.
사용 시기
- 각 취약점에 대한 높은 신뢰도의 재현 가능한 증명이 필요한 내부 레드팀 또는 침투 테스트 작업.
- 검증된 보안 발견에 따라 병합을 제한해야 하는 CI/CD 파이프라인.
- 엄격한 데이터 프라이버시 요구 사항이 있는 환경 (로컬 실행, 텔레메트리 없음, 오프라인 LLM 옵션).
- 이미 MCP 호환 LLM 클라이언트(Claude Code, Cursor 등)를 사용 중이며 보안 도구로 확장하려는 팀.
제한 사항 / 주의 사항
- LLM은 조정 역할만 수행합니다. 탐지 범위는 큐레이션된 프로브 라이브러리(약 60개의 웹 프로브, 200개 이상의 래핑된 도구)에 따라 달라집니다. 라이브러리에 없는 새로운 버그는 발견되지 않습니다.
- 오라클 검증은 실행 오버헤드를 추가합니다. 노트북에서 전체 스캔을 수행하는 데 몇 분이 걸릴 수 있습니다.
- 독립형 모드에서는 LLM 사용 시 API 비용이 발생합니다. 기본 10달러 한도는 한도를 높이지 않으면 긴 작업 중에 중단될 수 있습니다.
- 이 도구는 **공격적(offensive)**이며 승인된 사용 정책 동의가 필요합니다. 테스트 권한이 있는 시스템에 대해서만 실행해야 합니다.
TL;DR – pentest‑ai (pip 패키지 ptai)는 발견된 모든 익스플로잇을 자동으로 재실행하여 기계적으로 검증된 증명을 생성함으로써 차별화되는 오픈 소스 LLM 조정형 침투 테스트 프레임워크입니다. 로컬에서 실행되며, 기존 보안 도구와 통합되고, CI/CD를 지원하며, 클라우드 기반(MCP) 및 완전 오프라인 사용 모드를 모두 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트