PrismSec 🔷
침투 테스트 도구를 위한 안전하고 모듈식 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
도구 (13개 등록됨)
Nmap — 포트 스캐닝
| MCP 도구 | 설명 |
|---|
nmap_port_scan | 빠른/전체/서비스/스텔스/공격 모드로 포트 스캔 |
nmap_service_detect | 열린 포트에서 서비스/버전 탐지 |
nmap_full_scan | 65535개 TCP 포트 전체 스캔 |
Nuclei — 취약점 스캐닝
| MCP 도구 | 설명 |
|---|
nuclei_vuln_scan | 모든 템플릿으로 전체 취약점 스캔 |
nuclei_severity_scan | 심각도(critical, high 등)로 필터링된 스캔 |
nuclei_template_scan | 특정 템플릿을 사용한 타겟 스캔 |
Gobuster — 디렉터리/DNS 무차별 대입
| MCP 도구 | 설명 |
|---|
gobuster_directory | 구성 가능한 확장자로 디렉터리 무차별 대입 |
gobuster_dns | DNS 서브도메인 무차별 대입 |
기타 도구
| MCP 도구 | 설명 |
|---|
subfinder_enumerate | 수동 서브도메인 열거 (crt.sh, VirusTotal 등) |
httpx_probe | 웹 프로빙 — 활성 감지, 타이틀, 기술 지문 수집 |
|
메타
| MCP 도구 | 설명 |
|---|
check_tools | 설치된 보안 도구 확인 |
사용법
Claude Desktop
claude_desktop_config.json에 추가하세요:
{
"mcpServers": {
"prismsec": {
"command": "python3",
"args": ["/path/to/prismsec/server.py"],
"env": {}
}
}
}
Claude Code
claude mcp add prismsec python3 /path/to/prismsec/server.py
Cursor / Windsurf / Cline
.cursor/mcp.json 또는 동등한 파일에 추가하세요:
{
"mcpServers": {
"prismsec": {
"command": "python3",
"args": ["/path/to/prismsec/server.py"]
}
}
}
SSE 전송 (원격)
# 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) |
보안 고려사항
⚠️ 승인된 테스트만 수행하세요. 소유하거나 서면 승인을 받은 시스템에만 사용하세요.
- 도구 출력에는 민감한 정보(IP, 열린 포트, 취약점)가 포함될 수 있습니다
- 서버는 기본적으로
127.0.0.1에 바인딩됩니다 — 신뢰할 수 없는 네트워크에 노출하지 마세요
- 각 도구에는 리소스 고갈을 방지하기 위한 구성 가능한 시간초과가 있습니다
라이선스
MIT
Model Context Protocol 표준을 기반으로 다양한 클라이언트 호환성을 지원하도록 제작되었습니다.