PentesterFlow/agent
Agentic offensive-security in your terminal
PentesterFlow – 침투 테스트를 위한 휴먼 인 더 루프 에이전틱 AI CLI
개요 – 보안 분석가가 침투 테스트 수행 중 LLM 기반 "에이전트"를 구동할 수 있게 해주는 오픈소스 터미널 기반 어시스턴트입니다. 이 에이전트는 계획을 수립하고, 실제 보안 도구(curl, shell, Burp, 파일 유틸리티 등)를 호출하며, 잠재적으로 파괴적인 작업을 수행하기 전에 분석가의 승인을 요청할 수 있습니다. 모든 상호작용은 기록되고, 증거는 저장되며, 세션은 나중에 다시 시작할 수 있습니다.
중요성 – 범용 AI 에이전트는 종종 허위 결과를 생성하고, 긴 수행 과정 중 문맥을 잃으며, 실제로 수행하는 작업을 숨깁니다. PentesterFlow는 다음과 같은 방법으로 이러한 문제를 해결합니다:
- 권한 등급(
ask,auto-safe,yolo)을 통해 인간이 통제권을 유지합니다. - 모든 도구 호출(예: 정확한
curl명령)을 표시하고 요청/응답 증거를 저장합니다. - 세션 간 "메모리"를 유지하여 모델이 재학습 없이도 프로젝트별 사실을 기억합니다.
- 구조화된 플레이북 역할을 하는 내장된 보안 중심 스킬(정찰, IDOR, SSRF, JWT, GraphQL 등)을 제공합니다.
사용 방법
- 설치 – macOS, Linux 또는 Windows용 원라인 설치 스크립트를 실행합니다(또는 사전 빌드된 바이너리를 다운로드합니다). 스크립트는 SHA-256 체크섬을 검증합니다.
curl -fsSL https://raw.githubusercontent.com/PentesterFlow/agent/main/install.sh | sh - CLI 시작 –
pentesterflow는 OpenTUI 채팅 인터페이스를 실행합니다. - 모델 구성 –
/provider를 사용하거나--backend/--model플래그를 전달합니다. Ollama/LM Studio를 통한 로컬 모델 및 호스팅된 API(OpenAI 호환, Anthropic, Gemini, Groq, Kimi, DeepSeek 등)와 함께 작동합니다. - 대상 설정 –
/target https://app.example.com. - 목표 부여 – 예:
test the orders API for broken access control. 에이전트는 다음을 수행합니다:- 일련의 단계를 계획합니다.
- 도구를 호출합니다(HTTP 요청, 셸 명령, Burp 수집, 파일 편집).
- "민감한" 작업에 대해 승인을 받을 때까지 일시 정지합니다.
- 증거를 기록하고, 발견 사항을 확인하면
./findings/아래에 Markdown 보고서를 작성합니다.
- 나중에 재개 –
pentesterflow --resume <session-id>는 저장된 JSON 세션을 로드하고, 요약을 표시하며, 중단한 위치에서 계속합니다.
주요 기능
| 기능 | 제공 내용 |
|---|---|
| 에이전트 루프 | 계획 → 실행 → 관찰 → 검증 → 보고 → 학습, 선택적 자동 계속 포함. |
| 모델 유연성 | Ollama, LM Studio, Kimi, Groq, OpenRouter, DeepSeek, Gemini, Anthropic 및 모든 OpenAI 호환 엔드포인트를 지원합니다. |
| 도구 모음 | Shell/Bash, HTTP 클라이언트, 파일 읽기/쓰기, grep/glob, 웹 페치/검색, Burp 브리지, 브라우저 캡처, 커버리지 추적, 백그라운드 작업 및 확장 가능한 플러그인. |
| 스킬(플레이북) | 정찰, 웹 취약점, SSRF, SSTI, JWT, GraphQL, 레이스 컨디션 등을 위한 마크다운 기반의 즉시 사용 가능한 방법론. 메인 컨텍스트를 간결하게 유지하기 위해 하위 에이전트로 분기할 수 있습니다. |
| 권한 등급 | ask(위험한 호출마다 프롬프트 표시), auto-safe(안전한 호출 자동 승인), yolo(모든 호출 자동 승인 – 랩 환경 전용). |
| 투명한 실행 | 모든 명령이 표시되고, 복사 및 붙여넣기가 가능하며, JSON-lines 형식으로 기록됩니다. |
| 지속적인 학습 | 각 턴 후 시스템은 유용한 사실, 성공적인 워크플로우 및 실수를 ./.pentesterflow/intelligence/(프로젝트) 및 ~/.pentesterflow/intelligence/(개인)에 조용히 저장합니다. 이는 향후 세션에서 숨겨진 컨텍스트로 주입됩니다. |
| 세션 메모리 및 재개 | 전체 대화, 압축된 메모리, 대상 상태 및 주기적 스냅샷이 ~/.pentesterflow/sessions/에 저장됩니다. |
| 보고 | 확인된 발견 사항은 PoC, 영향, 수정 조치 및 첨부된 요청/응답 증거와 함께 Markdown(./findings/<slug>.md)으로 작성됩니다. /report를 통해 SARIF로 내보냅니다. |
| Burp 통합 | 컴패니언 브리지를 통해 선택한 Burp 요청을 CLI로 푸시하고 확인된 발견 사항을 다시 가져올 수 있습니다. |
| 브라우저 캡처 / MCP | 캡처된 브라우저 트래픽을 에이전트가 쿼리할 수 있는 구조화된 데이터로 수집합니다. |
보안 모델 – 이 도구는 임의의 셸 명령을 실행하고 파일을 편집할 수 있지만, 명시적인 사용자 동의 없이는 결코 그렇게 하지 않습니다(위험한 yolo 모드를 활성화하지 않는 한). 비밀 정보는 영구 메모리 파일에 기록되기 전에 삭제됩니다. README는 이 소프트웨어가 명시적인 권한이 있는 시스템에서만 사용되어야 한다고 강조합니다.
일반적인 워크플로우 예시
$ pentesterflow
> /target https://app.example.com
> test the orders API for broken access control
[Agent] plans: enumerate /orders endpoints → try IDOR → confirm finding
[Tool] http GET https://app.example.com/api/v1/orders/1043
[Tool] shell curl ... (awaiting approval)
> approve
[Agent] confirms high‑severity IDOR, writes ./findings/idor-orders.md
Ready – qwen3:14b – app.example.com
대상 사용자 – 완전한 감사 가능성과 통제력을 유지하면서 LLM의 지원을 원하는 보안 엔지니어, 버그 바운티 헌터 또는 레드팀 멤버.
위의 모든 정보는 리포지토리의 README에서 직접 가져온 것이며, 추가 기능은 추론되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트