
Mikrotrick 익스플로잇(CVE-2026-67276)용 테스트 도구
MikroTik RouterOS의 SSH 공개키 인증 우회 취약점(CVE-2026-67276)을 탐지하도록 설계된 자동화된 동작 검증기입니다.
이 스크립트는 대상 공개키의 모듈러스만 일치하는 위조 서명을 사용하여 핸드셰이크를 수립함으로써, SSH 서비스의 불완전한 검증 결함이 인증을 허용하는지 테스트합니다.
CVE-2026-67276은 RouterOS SSH 데몬 핸들러 내 RSA 공개키 검증의 불완전성에서 비롯됩니다. 영향을 받는 버전은 클라이언트의 공개키 인증 요청을 처리할 때 키 유형과 RSA 공개 모듈러스($n$) 만 일치시키고, 공개 지수($e$) 검증은 생략합니다.
대상 사용자에게 구성된 인가된 공개키를 보유한 공격자는 로그인 페이로드를 위조할 수 있습니다. 유효한 인가 모듈러스와 함께 지수를 $1$($e=1$)로 설정한 임시 키 블롭을 제출하면, 검증자가 기대하는 정확한 구조와 일치하는 수학적으로 예측 가능한 서명이 통과될 수 있습니다. 이는 해당 개인키를 소유하거나 필요로 하지 않고도 인증을 완전히 우회합니다.
ssh-rsa OpenSSH 공개키 파일의 로컬 사본에서 모듈러스($n$)를 추출합니다.ssh-rsa, rsa-sha2-256 또는 rsa-sha2-512)에 맞게 자동으로 조정합니다.검증기는 Python 3과 사용자 지정 SSH 메시지 구성을 위한 paramiko 라이브러리가 필요합니다.
pip install paramiko
python3 ssh_modulus_forge_check.py -H <TARGET_IP> -u <USERNAME> -k <PATH_TO_AUTHORIZED_PUBLIC_KEY>
| 플래그 | 설명 | 기본값 |
|---|---|---|
-H, --host | 대상 호스트 IP 주소 또는 호스트 이름. | 필수 |
-p, --port | 대상 SSH 포트 번호. | 22 |
-u, --user | 검증할 대상 사용자 이름. | 필수 |
-k, --pubkey | 대상 계정에 바인딩된 합법적인 .pub 파일 경로. | 필수 |
--sig-alg | 서명 유형 강제 지정(ssh-rsa, rsa-sha2-256, rsa-sha2-512). | auto |
--exec | 성공 시 접근 증명으로 실행할 원격 명령. | None |
--timeout | 네트워크 및 인증 연결 시간 초과(초). | 10 |
python3 ssh_modulus_forge_check.py -H 192.168.88.1 -u admin -k id_rsa.pub --exec "/system resource print"
취약한 장치를 보호하려면 RouterOS 설치를 수정된 릴리스로 즉시 업데이트해야 합니다. 패치를 기본적으로 예약할 수 없는 경우, 로컬 IP 방화벽 규칙(/ip firewall filter)을 적용하거나 RouterOS 서비스 관리(/ip service)를 사용하여 허용된 소스 주소를 제한함으로써 서비스에 대한 관리 액세스를 제한하십시오.
이 구현은 승인된 네트워크에서 방어적 동작 검증, 자격 증명 감사 및 패치 준수 확인을 위한 목적으로만 제공됩니다.