AI 기반 모의 침투 테스트를 위해 nmap, nuclei, gobuster, subfinder, httpx, nikto, sqlmap을 래핑하는 안전하고 모듈식 MCP 서버
침투 테스트 도구를 위한 안전하고 모듈식 MCP 서버입니다.
7개의 업계 표준 보안 도구(nmap, nuclei, gobuster, subfinder, httpx, nikto, sqlmap)를 13개의 등록된 MCP 도구로 래핑합니다 — Claude, Cursor, Copilot 및 모든 MCP 호환 AI 에이전트에서 바로 사용할 수 있습니다.
| 기능 | 설명 |
|---|---|
| Zero shell=True | 모든 하위 프로세스 호출은 asyncio.create_subprocess_exec를 사용 — 셸 인젝션 없음 |
| 입력 검증 | 대상, URL, 포트, 심각도 — 실행 전에 모두 검증 |
| 인젝션 탐지 | 셸 메타문자(;, $(), 백틱, |) 차단 |
| 시간초과 강제 | 모든 도구에 구성 가능한 시간초과 — 중단된 프로세스 자동 종료 |
| 구조화된 출력 | 파싱된 XML/JSON/텍스트 → AI 에이전트용 깔끔한 JSON |
| 모듈식 아키텍처 | 도구당 파일 하나 — 추가, 유지보수, 테스트가 쉬움 |
| MCP SDK v2 | 최신 Model Context Protocol SDK 기반 |
git clone https://github.com/azmisyahrul/prismsec.git
cd prismsec
pip install -e .
필요한 보안 도구를 설치하세요:
# Ubuntu/Debian
apt install nmap nikto sqlmap
# Go-based tools
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
go install github.com/OJ/gobuster/v3@latest
| MCP 도구 | 설명 |
|---|---|
nmap_port_scan | 빠른/전체/서비스/스텔스/공격 모드로 포트 스캔 |
nmap_service_detect | 열린 포트에서 서비스/버전 탐지 |
nmap_full_scan | 65535개 TCP 포트 전체 스캔 |
| MCP 도구 | 설명 |
|---|---|
nuclei_vuln_scan | 모든 템플릿으로 전체 취약점 스캔 |
nuclei_severity_scan | 심각도(critical, high 등)로 필터링된 스캔 |
nuclei_template_scan | 특정 템플릿을 사용한 타겟 스캔 |
| MCP 도구 | 설명 |
|---|---|
gobuster_directory | 구성 가능한 확장자로 디렉터리 무차별 대입 |
gobuster_dns | DNS 서브도메인 무차별 대입 |
| MCP 도구 | 설명 |
|---|---|
subfinder_enumerate | 수동 서브도메인 열거 (crt.sh, VirusTotal 등) |
httpx_probe | 웹 프로빙 — 활성 감지, 타이틀, 기술 지문 수집 |
nikto_web_scan | 웹 서버 취약점 스캐닝 |
sqlmap_injection_test | SQL 인젝션 탐지 및 테스트 |
| MCP 도구 | 설명 |
|---|---|
check_tools | 설치된 보안 도구 확인 |
claude_desktop_config.json에 추가하세요:
{
"mcpServers": {
"prismsec": {
"command": "python3",
"args": ["/path/to/prismsec/server.py"],
"env": {}
}
}
}
claude mcp add prismsec python3 /path/to/prismsec/server.py
.cursor/mcp.json 또는 동등한 파일에 추가하세요:
{
"mcpServers": {
"prismsec": {
"command": "python3",
"args": ["/path/to/prismsec/server.py"]
}
}
}
# Server side
python3 server.py --transport sse --host 0.0.0.0 --port 8000
# Client config
{
"mcpServers": {
"prismsec": {
"url": "http://localhost:8000/sse"
}
}
}
prismsec/
├── server.py # MCP server entry point (13 tools)
├── pyproject.toml # Project config + dependencies
├── tools/ # Tool wrappers (one file per tool)
│ ├── base.py # ToolWrapper ABC + async runner
│ ├── nmap.py # Nmap — XML parsing, scan modes
│ ├── nuclei.py # Nuclei — JSON output parsing
│ ├── gobuster.py # Gobuster — text output parsing
│ ├── subfinder.py # Subfinder — subdomain enum
│ ├── httpx.py # Httpx — web probing
│ ├── nikto.py # Nikto — web vuln scan
│ └── sqlmap.py # Sqlmap — SQL injection testing
├── parsers/ # Output parsers
│ ├── xml_parser.py # nmap XML → structured JSON
│ ├── json_parser.py # JSON/JSONL parsing
│ └── text_parser.py # Gobuster, nikto, sqlmap text
└── utils/ # Shared utilities
├── runner.py # AsyncRunner with timeout
├── validator.py # Input validation + injection detection
├── rate_limiter.py # Token bucket rate limiter
└── logging.py # Structured logging
| 환경 변수 | 기본값 | 설명 |
|---|---|---|
LOG_LEVEL | INFO | 로깅 수준 (DEBUG, INFO, WARNING, ERROR) |
⚠️ 승인된 테스트만 수행하세요. 소유하거나 서면 승인을 받은 시스템에만 사용하세요.
127.0.0.1에 바인딩됩니다 — 신뢰할 수 없는 네트워크에 노출하지 마세요MIT
Model Context Protocol 표준을 기반으로 다양한 클라이언트 호환성을 지원하도록 제작되었습니다.