Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2018-14847 — Analysis and PoC for CVE-2018-14847, MikroTik RouterOS Winbox information disclosure vulnerability allowing unauthenticated read access to the credential database. | Kitploit
도구/GitHubGitHub/themalwareguardian/cve-2018-14847
Embedded Systems SecurityPassword CrackingIoT SecurityVulnerability AnalysisExploitationInformation Gathering
GitHubthemalwareguardian/cve-2018-14847

CVE-2018-14847

Analysis and PoC for CVE-2018-14847, MikroTik RouterOS Winbox information disclosure vulnerability allowing unauthenticated read access to the credential database.

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
3개월 전아직 검토되지 않음

🐞 MikroTik CVE-2018-14847

MikroTik의 Winbox 프로토콜에서 인증되지 않은 경로 순회 취약점으로 /flash/rw/store/user.dat의 관리자 자격 증명이 누출됩니다.




📑 목차

  • 개요
  • 영향을 받는 버전
  • 취약점
    📂
    • Winbox 프로토콜
    • 경로 순회
    • 암호 복호화
    • 개발자 백도어
  • 익스플로잇
  • 참고 자료



📋 개요

CVE-2018-14847는 Winbox 관리 프로토콜(TCP 포트 8291)에 영향을 미치는 MikroTik RouterOS의 경로 순회 취약점입니다. 인증되지 않은 원격 공격자가 라우터 파일 시스템에서 임의의 파일을 읽을 수 있으며, 여기에는 약한 정적 XOR 키로 암호화된 비밀번호를 저장하는 사용자 자격 증명 데이터베이스 /flash/rw/store/user.dat가 포함됩니다.

이 취약점은 2018년 7월 Jacob Baines(Tenable)가 By the Way 익스플로잇을 통해 처음 공개했습니다. 이 저장소는 완전한 프로토콜 문서와 함께 독립형 Python3 재구현을 제공합니다.




🎯 영향을 받는 버전

도구 다운로드
채널버전
장기 지원6.30.1 - 6.40.7
안정6.29 - 6.42
베타6.29rc1 - 6.43rc3

MikroTik은 2018년 4월에 이 취약점을 패치했습니다. 수정된 버전보다 오래된 RouterOS를 실행하는 장치는 여전히 취약합니다.




🔬 취약점

🧠 Winbox 프로토콜

Winbox는 TCP 포트 8291에서 실행되는 MikroTik의 독점 바이너리 관리 프로토콜입니다. 프레임 구조는 다음과 같습니다:

root@kitploit:~
[total_len - 2][0x01][0x00][total_len - 4]["M2"][fields...]

4바이트 헤더는 전체 프레임 크기를 인코딩합니다. 표준 리틀 엔디언 u16이 아닙니다. 각 바이트는 독립적으로 total_length - 2와 total_length - 4를 인코딩합니다.

각 프레임 내부의 필드 인코딩:

타입 바이트의미값
0xff확장 필드 마커field_id와 값이 따라옴
0x09u8 정수1바이트
0x21문자열1바이트 길이 접두사 + 데이터
0x88응답 예상 마커값 없음
0xfe확장 필드 ID3바이트 ID + 타입 + 값

파일 시스템 핸들러는 엔드포인트(sys=5, handler=0)에 있으며 세 가지 관련 명령을 제공합니다:

  • 0x06 - 파일 열기
  • 0x04 - 파일 읽기
  • 0x01 - 파일 생성

🧨 경로 순회

Winbox 파일 시스템 핸들러는 open-file 명령에 전달된 경로를 검증하지 않습니다. '/////./../' 시퀀스를 삽입하여 공격자는 샌드박스 경계를 벗어나 루트 파일 시스템에 도달합니다:

root@kitploit:~
/////./..//////./..//////./../flash/rw/store/user.dat

각 '/////./../' 세그먼트(10바이트)는 한 디렉토리 레벨 위로 이동합니다. 세 개의 세그먼트가 루트에 도달한 후 flash/rw/store/user.dat가 RouterOS 사용자 자격 증명 데이터베이스입니다. 요청에는 인증이 필요하지 않습니다.

익스플로잇은 두 개의 프레임을 전송합니다:

  1. 열기 요청: 순회 경로가 포함된 open-file 명령
    • 응답 바이트 [38] → session_id
  2. 읽기 요청: session_id가 패치된 read-file 명령
    • 응답 바이트 [55]부터 → raw user.dat 내용

🔐 암호 복호화

user.dat는 nv::message 레코드의 시퀀스입니다. 각 레코드 앞에는 2바이트 리틀 엔디언 길이 필드가 있으며 매직 바이트 M2로 시작합니다. 각 레코드 내의 필드는 3바이트 리틀 엔디언 필드 ID를 사용합니다:

필드 ID타입의미
0x01문자열사용자 이름
0x02u8그룹 - 3 = 전체 관리자 접근
0x11문자열암호화된 비밀번호 (설정되지 않은 경우 비어 있음)

비밀번호는 RouterOS에 컴파일된 하드코딩된 솔트에서 파생된 정적 XOR 키로 암호화됩니다:

root@kitploit:~
key      = MD5(username + "283i4jfkai3389")
password = XOR(encrypted_pass[i], key[i % len(key)])  until null byte

즉, 영향을 받는 모든 장치에서 추출된 user.dat는 무차별 대입 없이 오프라인으로 복호화할 수 있습니다.


🧬 개발자 백도어

관리자 비밀번호를 획득한 후 공격자는 Winbox를 통해 인증하고 create-file 명령을 사용하여 숨겨진 개발자 로그인을 활성화하는 두 개의 파일을 작성할 수 있습니다:

root@kitploit:~
/pckg/option                       activates the option package
/flash/nova/etc/devel-login        enables the devel user

이러한 파일이 존재하면 라우터는 관리자 비밀번호를 사용하여 Telnet 및 SSH를 통해 devel 사용자로 BusyBox 루트 셸을 노출합니다.

일부 RouterOS 버전에서는 SSH가 작동하려면 먼저 Telnet에 연결해야 합니다.




⚙️ 익스플로잇

Exploit_CVE_2018_14847.py는 외부 종속성이 없는 독립형 Python3 익스플로잇입니다. Winbox 바이너리 프로토콜을 처음부터 구현하며 다음을 수행합니다:

  1. 인증되지 않은 경로 순회로 user.dat 추출.
  2. nv::message 레코드의 바이너리 파싱.
  3. MD5-XOR 비밀번호 복호화.
root@kitploit:~
# 기본 포트 8291
python3 Exploit_CVE_2018_14847.py 192.168.1.10

# 사용자 지정 포트
python3 Exploit_CVE_2018_14847.py 192.168.1.10 8291

사후 이용 - 개발자 백도어 셸:

root@kitploit:~
# Telnet (먼저 연결해야 함)
telnet -l devel 192.168.1.10

# SSH (Telnet 세션 이후)
ssh -oHostKeyAlgorithms=+ssh-dss [email protected]



📚 참고 자료

  • MikroTik Security Advisory

    • MikroTik의 공식 패치 권고 및 타임라인.
  • Tenable - By the Way PoC

    • Jacob Baines의 원본 C++ 익스플로잇.
  • NVD - CVE-2018-14847

    • CVSS 9.1 (심각).