PenTest MCP Server
🏗️ 아키텍처
┌──────────────────────────────────────────────────────────┐
│ $ pentest ask --query "scan for SQLi and XSS" \ │
│ --target http://localhost:3000 --consent │
└──────────────────┬───────────────────────────────────────┘
│ Direct Python execution
▼
┌──────────────────────────────────────────────────────────┐
│ GEMINI-POWERED AGENT (Python) │
│ │
│ Phase 1: PLAN → LLM selects tools from query │
│ Phase 2: EXECUTE → Runs tools, collects findings │
│ Phase 3: REPORT → LLM generates professional report │
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌────────────────┐ │
│ │ Session │ │ Scan Mode │ │ Tool │ │
│ │ Manager │ │ Orchestrator│ │ Registry │ │
│ └─────────────┘ └──────┬───────┘ └────────────────┘ │
│ │ │
│ ┌────────────────┼────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌────────────┐ ┌────────────┐ ┌────────────────┐ │
│ │ nmap │ │ sqlmap │ │ ffuf │ │
│ │ nuclei │ │ dalfox │ │ nikto │ │
│ │ sslyze │ │ commix │ │ gobuster │ │
│ │ wafw00f │ │ arjun │ │ subfinder │ │
│ │ ... 30+ │ │ ... │ │ ... │ │
│ └────────────┘ └────────────┘ └────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────┐ │
│ │ GEMINI API │ │
│ │ (Flash Lite) │ │
│ │ Triage · Analysis │ │
│ │ CVSS · Reporting │ │
│ └──────────────────────┘ │
└──────────────────────────────────────────────────────────┘✨ 주요 기능
기능 | 설명 |
자연어 인터페이스 | 평이한 영어로 보안 질문을 하면 AI가 적절한 도구를 선택하고 실행합니다 |
3가지 스캔 모드 | Quick(5-10분), Medium(15-30분), Extensive(45분 이상) — 각 모드별 깊이와 AI 분석 수준이 다릅니다 |
30개 이상의 보안 도구 | nmap, sqlmap, nuclei, ffuf, dalfox, nikto, wafw00f, subfinder, sslyze 등 |
AI 기반 분석 | Gemini AI(Flash Lite)가 취약점 분류, CVSS 점수 산정 및 경영진 보고서 생성 |
자동 도구 선택 |
|
세션 관리 | 여러 대상에 걸쳐 보안 평가 추적, 일시 중지 및 재개 |
OWASP Top 10 커버리지 | OWASP 2021 카테고리에 매핑된 체계적인 스캔 |
스마트 폴백 | 전문 도구가 설치되어 있지 않은 경우, Python 기반 구현이 이를 대체 |
📋 목차
🚀 빠른 시작
사전 요구 사항
Python 3.11+
uv (Python 패키지 관리자)
Gemini API 키 (무료 티어 제공)
1. 복제 및 설치
git clone https://github.com/yourusername/pentest-ai-cli
cd pentest-ai-cli
# Install dependencies
uv sync2. 환경 설정
cp .env.example .env.env 파일을 편집하여 Gemini API 키를 추가하세요:
GEMINI_API_KEY=your_gemini_api_key_here3. 보안 도구 설치 (선택 사항)
서버는 Python 기반 폴백으로 작동하지만, 전문적인 수준의 스캔을 위해서는 외부 도구를 설치하세요:
# macOS (Homebrew)
brew install nmap sqlmap
# Install ffuf (Go-based fuzzer)
go install github.com/ffuf/ffuf/v2@latest
# Install nuclei (vulnerability scanner)
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# Install subfinder (subdomain discovery)
go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest팁:
session_init을 실행하여 시스템에서 감지된 도구를 확인하세요.
4. 스캔 시작!
pentest ask \
--query "run a quick security scan" \
--target https://example.com \
--consent🎯 스캔 모드
Quick 모드 (5-10분)
즉각적인 위험 평가를 위한 빠른 분류.
테스트 | 도구 |
WAF 탐지 | wafw00f / custom |
DNS 열거 | dnsrecon / custom |
포트 스캔 (상위 20개) | nmap / custom |
헤더 분석 | custom |
TLS/SSL 감사 | sslyze / custom |
기술 지문 인식 | whatweb / custom |
민감 파일 발견 | ffuf / custom |
Medium 모드 (15-30분)
OWASP Top 10을 다루는 표준 모의 해킹.
테스트 | 도구 |
Quick 모드의 모든 기능 | — |
포트 스캔 (상위 100개) | nmap |
XSS 스캔 | dalfox / custom |
SQL 인젝션 | sqlmap |
디렉토리 발견 | ffuf / gobuster |
CORS 설정 오류 | corscanner / custom |
경로 탐색 | custom |
오픈 리다이렉트 | custom |
CSRF 체크 | custom |
Extensive 모드 (45분 이상)
경영진 수준의 포괄적인 보안 평가.
테스트 | 도구 |
Medium 모드의 모든 기능 | — |
포트 스캔 (상위 1000개) | nmap / masscan |
서브도메인 열거 | subfinder / amass |
고급 퍼징 | wfuzz / ffuf |
SSRF 프로빙 | custom |
시크릿 스캔 | trufflehog |
Git 노출 | git-dumper |
JWT 분석 | jwt_tool |
GraphQL 보안 | graphql-cop |
커맨드 인젝션 | commix |
🔧 지원 도구
서버는 30개 이상의 보안 도구를 자동 감지와 함께 통합합니다. 도구가 설치되어 있지 않아도 Python 기반 폴백이 스캔을 계속 수행합니다.
도구 | 카테고리 | 필수 여부 |
nmap | 포트 스캔 | 선택 (폴백 있음) |
sqlmap | SQL 인젝션 | 선택 |
ffuf | 퍼징 / 파일 발견 | 선택 (폴백 있음) |
nuclei | 취약점 스캔 | 선택 |
dalfox | XSS 스캔 | 선택 |
subfinder | 서브도메인 발견 | 선택 |
wafw00f | WAF 탐지 | 선택 (폴백 있음) |
sslyze | TLS/SSL 감사 | 선택 (폴백 있음) |
nikto | 웹 서버 스캔 | 선택 |
gobuster | 디렉토리 무차별 대입 | 선택 |
whatweb | 기술 지문 인식 | 선택 (폴백 있음) |
wfuzz | 고급 퍼징 | 선택 |
arjun | 숨겨진 파라미터 발견 | 선택 |
testssl | SSL/TLS 테스트 | 선택 |
masscan | 빠른 포트 스캔 | 선택 |
amass | OSINT / 서브도메인 열거 | 선택 |
dnsrecon | DNS 열거 | 선택 (폴백 있음) |
theHarvester | 이메일/도메인 OSINT | 선택 |
retire.js | JS 라이브러리 CVE 스캔 | 선택 |
trufflehog | 시크릿 탐지 | 선택 |
git-dumper | Git 저장소 노출 | 선택 |
commix | 커맨드 인젝션 | 선택 |
corscanner | CORS 설정 오류 | 선택 (폴백 있음) |
jwt_tool | JWT 분석 | 선택 |
graphql-cop | GraphQL 보안 | 선택 |
xsstrike | 고급 XSS | 선택 |
hydra | 무차별 대입 | 선택 |
shodan | 인터넷 인텔리전스 | 선택 |
enum4linux-ng | SMB 열거 | 선택 |
💬 사용 예시
pentest ask 명령어는 Gemini AI를 사용하여 자연어 쿼리를 기반으로 보안 스캔을 자동으로 계획하고 실행합니다.
빠른 취약점 스캔
pentest ask \
--query "scan for SQL injection and XSS vulnerabilities" \
--target http://localhost:3000 \
--consent전체 OWASP Top 10 감사
pentest ask \
--query "perform a comprehensive OWASP Top 10 security audit" \
--target https://example.com \
--consent정찰 전용
pentest ask \
--query "enumerate subdomains and check for exposed sensitive files" \
--target example.com \
--consent사용자 지정 보고서 경로
pentest ask \
--query "check security headers and TLS configuration" \
--target https://example.com \
--consent \
--output security-audit-2024.md📖 전체 문서: 자세한 사용 가이드, 예시 및 문제 해결은 CLI_USAGE_GUIDE.md를 참조하세요.
📁 프로젝트 구조
pentest-ai/
├── pentest_mcp/
│ ├── scan_modes.py # Quick/Medium/Extensive scan orchestration
│ ├── agent.py # Standalone CLI orchestrator
│ ├── session.py # Session state management
│ ├── models.py # Pydantic data models
│ ├── config.py # Environment & settings
│ ├── cli.py # CLI interface (includes "ask" command)
│ ├── cli_ui.py # Beautiful CLI UI components
│ ├── tools/
│ │ ├── __init__.py # Python-native security tools
│ │ ├── professional.py # External tool wrappers (nmap, sqlmap, etc.)
│ │ └── tool_registry.py # Tool execution and result processing
│ └── utils/
│ └── sanitizer.py # Input validation & sanitization
├── tests/
│ └── test_system.py # System tests
├── wordlists/ # Fuzzing wordlists for ffuf/gobuster
├── reports/ # Generated scan reports (Markdown)
├── CLI_USAGE_GUIDE.md # Example prompts and detailed usage guide
├── pyproject.toml # Project dependencies & metadata
├── Makefile # Development shortcuts
├── install_tools.sh # Security tool installer script
└── .env.example # Environment variable template⚙️ 설정
환경 변수
변수 | 설명 | 기본값 |
| Gemini API 키 | 필수 |
| 분석용 LLM 모델 |
|
| 최대 응답 토큰 |
|
| LLM 온도 |
|
| 세션 저장 경로 |
|
| 로그 상세 수준 |
|
|
|
|
AI 분석 파이프라인
각 스캔 모드는 스캔 깊이에 맞춰 조정된 별도의 Gemini AI 프롬프트를 사용합니다:
Quick: 간결한 분류 — 중요/높음 위험 발견 사항에만 집중
Medium: 균형 잡힌 위험 평가 및 수정 방안을 포함한 OWASP Top 10 분석
Extensive: 철저한 CVSS 점수 발견 사항, 규정 준수 매핑 및 전략적 권장 사항을 포함한 경영진 요약 보고서
🔍 문제 해결
Read-only file system 오류
보고서는 <project_root>/reports/에 저장됩니다. 프로젝트 디렉토리에 쓰기 권한이 있는지 확인하세요.
Gemini API 오류
API 키 확인:
echo $GEMINI_API_KEYaistudio.google.com에서 속도 제한 확인
Gemini를 사용할 수 없는 경우에도 서버는 스캔을 계속하며, 원시 도구 출력은 여전히 반환됩니다.
도구가 감지되지 않음
Homebrew 또는 패키지 관리자를 통해 누락된 도구를 설치하세요. 외부 도구가 없어도 Python 폴백이 핵심 기능을 커버합니다.
⚠️ 보안 공지
이 도구는 승인된 보안 테스트용으로만 사용해야 합니다.
스캔 대상에 대해 항상 명시적인 서면 허가를 받으세요.
무단 테스트는 컴퓨터 사기 및 남용법(CFAA), IT Act 2000/2008 및 전 세계 유사 법률을 위반합니다.
consent_confirmed매개변수는 윤리적 안전장치로 존재하며, 이를 절대 우회하지 마세요.API 키를 버전 관리 시스템에 커밋하지 마세요.
📝 라이선스
자세한 내용은 LICENSE를 참조하세요.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MohitSahoo/MCPToolForWebVulnerabilities-'
If you have feedback or need assistance with the MCP directory API, please join our Discord server