
PhantomRecon은 AI(Agent Development Kit - ADK를 통한 Google의 Gemini)로 구동되는 자율적 공격 보안 워크플로우를 시연하도록 설계된 CLI 기반의 모듈식 에이전트 중심 레드 팀 자동화 도구입니다.
PhantomRecon은 AI(Agent Development Kit - ADK를 통한 Google Gemini) 기반의 자율적 공격적 보안 워크플로를 시연하도록 설계된 CLI 기반의 모듈식 에이전트 중심 레드팀 자동화 도구입니다.
python -m phantomrecon
python -m phantomrecon --target example.com --auto \
--nmap-timeout 30 --nmap-top-ports 100 --nmap-args "-sV -Pn"
--target <domain|ip>: 평가할 대상--auto: 정찰 → 계획 → 라우팅 → 보고서 실행--nmap-timeout <seconds>: NMAP_TIMEOUT 재정의--nmap-top-ports <N>: NMAP_TOP_PORTS 재정의--nmap-args "...": Nmap 인수(NMAP_ARGS)에 추가--nmap-disable: Nmap 비활성화(NMAP_DISABLE=1 설정)환경 변수도 직접 지원됩니다: NMAP_TIMEOUT, NMAP_TOP_PORTS, NMAP_ARGS, NMAP_DISABLE.
.gitignore는 reports/sample_report.md를 제외한 reports/*를 추적 대상에서 제외합니다.reports/ 아래에 저장됩니다.개념 증명(proof-of-concept)으로 제작된 이 도구는 대상 식별, 광범위한 정찰(Nmap, DNS, 웹 검색) 수행, LLM을 사용한 공격 전략 계획, 시뮬레이션된 익스플로잇의 조건부 실행, 보고서 생성을 시뮬레이션합니다.
phantomrecon/
├── phantomrecon/ # Main package (exported orchestrator agent)
│ ├── __init__.py
│ ├── __main__.py # CLI entrypoint (interactive and non-interactive)
│ └── agent/ # Agent graph and tools
├── agents/ # Python modules containing agent/tool logic
│ ├── recon_logic.py # Nmap, DNS (dig), seeded web analysis; ADK search enabled
│ ├── routing_logic.py # Logic for the Exploit Router agent
│ ├── exploit_web_logic.py # Functions for web exploits (currently simulated)
│ ├── exploit_sql_logic.py # Functions for SQL exploits (currently simulated)
│ └── report_logic.py # Functions for report generation using session state
├── configs/
│ └── targets.json # (Optional) Target configuration
├── data/
│ └── dummy_scan_output.json # Example Nmap data if no target specified
├── demos/
│ └── walkthrough.md # Demo steps
├── prompts/ # Prompt templates for LLM agents
├── reports/
│ └── sample_report.md # Example output report
├── requirements.txt # Python dependencies (includes google-adk)
├── .gitignore # Files excluded from version control
└── LICENSE # MIT License
recon_workflow - 병렬 에이전트):
nmap_tool)dns_tool)web_search_tool)aggregation_tool):
aggregated_recon_data를 세션 상태에 기록합니다.planning_agent - LlmAgent):
attack_planner_prompt.txt를 사용하여 JSON 공격 계획을 생성합니다.attack_plan을 세션 상태에 기록합니다.exploit_router - RouterAgent):
attack_plan을 읽습니다.web_exploit_tool, sql_exploit_tool)를 조건부로 실행합니다.exploit_results 목록에 추가합니다.report_tool):
python3, pip, nmap, dig, whois, sqlmap, wapiti, wpscan, searchsploit.python3 -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
pip install -r requirements.txt
.env.example을 .env로 복사하거나(예시 파일이 있는 경우) .env를 편집합니다.GOOGLE_API_KEY 변수에 Google API 키(AI Studio 또는 Vertex AI 설정에서)를 추가합니다.GOOGLE_GENAI_USE_VERTEXAI를 True 또는 False로 설정하고 관련 변수(GOOGLE_CLOUD_PROJECT, GOOGLE_CLOUD_LOCATION)를 구성합니다.python -m phantomreconpython -m phantomrecon --target <target> --autoadk run phantomrecon이 도구는 승인된 보안 테스트 및 교육 목적으로만 사용해야 합니다. 명시적 허가 없이 시스템에 사용하지 마십시오.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다 - 자세한 내용은 LICENSE 파일을 참조하세요.
sudo apt install nmap 또는 brew install nmap)sudo apt install dnsutils 또는 brew install bind)sudo apt install whois 또는 brew install whois)sudo apt install sqlmap 또는 brew install sqlmap)sudo apt install wapiti 또는 brew install wapiti)sudo apt install ruby-full 그런 다음 gem install wpscan 또는 brew install wpscan)sudo apt install exploitdb 또는 brew install exploitdb)requirements.txt에 나열된 Python 라이브러리(pip install -r requirements.txt로 설치)adk web 인터페이스를 사용하여 사용자에게 대상 IP/도메인을 요청합니다.dig, nslookup, dig +trace, AXFR 시도, whois)sqlmap), Wapiti 스캔(구문 분석된 결과), WPScan(구문 분석된 결과, 조건부), 기본 반사형 XSS, 기본 명령 인젝션 - (실제 점검)searchsploit), 인증 후 열거(sqlmap 직접 연결) - (실제 점검)searchsploit), 구성 감사(ssh-audit 사용, 구문 분석된 결과) - (실제 점검)ToolContext를 사용하여 에이전트/도구 간에 데이터를 전달합니다.PhantomRecon은 Google의 Agent Development Kit(ADK)을 기반으로 하는 완전 자율 멀티 에이전트 아키텍처를 사용합니다.
시니어 오케스트레이터 에이전트 (gemini-1.5-pro-latest)
전문화된 보안 에이전트
오케스트레이터는 시니어 침투 테스터처럼 작동합니다:
주요 특징:
context.session.state(ADK 세션)를 통한 상태 관리executor_fix.py)CLI로 실행(권장):
python -m phantomrecon --target <domain|ip> --auto
대화형 콘솔:
python -m phantomrecon
선택적 ADK 러너:
adk run phantomrecon -- --target <domain|ip> --auto