Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2018-14847 — Анализ и PoC для CVE-2018-14847, уязвимости раскрытия информации в MikroTik RouterOS Winbox, позволяющей неавторизованный доступ на чтение к базе учётных данных. | Kitploit
Инструменты/GitHubGitHub/themalwareguardian/cve-2018-14847
Безопасность встроенных системВзлом паролейБезопасность IoTАнализ уязвимостейЭксплуатацияСбор информации
GitHubthemalwareguardian/cve-2018-14847

CVE-2018-14847

Анализ и PoC для CVE-2018-14847, уязвимости раскрытия информации в MikroTik RouterOS Winbox, позволяющей неавторизованный доступ на чтение к базе учётных данных.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
54 месяцев назадЕщё не проверено

🐞 MikroTik CVE-2018-14847

Неаутентифицированный обход пути в протоколе Winbox от MikroTik, приводящий к утечке учетных данных администратора из /flash/rw/store/user.dat




📑 Содержание

  • Обзор
  • Затронутые версии
  • Уязвимость
    📂
    • Протокол Winbox
    • Обход пути
    • Дешифрование паролей
    • Разработческий бэкдор
  • Эксплойт
  • Ссылки



📋 Обзор

CVE-2018-14847 — это уязвимость обхода пути в MikroTik RouterOS, затрагивающая протокол управления Winbox (TCP-порт 8291). Неаутентифицированный удалённый злоумышленник может читать произвольные файлы из файловой системы роутера, включая базу учётных данных пользователя /flash/rw/store/user.dat, в которой пароли хранятся в зашифрованном виде с помощью слабого статического XOR-ключа.

Уязвимость была впервые раскрыта Джейкобом Бейнсом (Tenable) в июле 2018 года через эксплойт By the Way. Данный репозиторий содержит самостоятельную реализацию на Python3 с полной документацией протокола.




🎯 Затронутые версии

Скачать инструмент
КаналВерсии
Longterm6.30.1 - 6.40.7
Stable6.29 - 6.42
Beta6.29rc1 - 6.43rc3

MikroTik исправил эту уязвимость в апреле 2018 года. Устройства, работающие на более старых версиях RouterOS, чем исправленные, остаются уязвимыми.




🔬 Уязвимость

🧠 Протокол Winbox

Winbox — это проприетарный бинарный протокол управления MikroTik, работающий через TCP-порт 8291. Фреймы структурированы следующим образом:

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

4-байтовый заголовок кодирует общий размер фрейма. Это не стандартный little-endian u16 — каждый байт независимо кодирует total_length - 2 и total_length - 4.

Кодирование полей внутри каждого фрейма:

Тип байтаЗначениеЗначение
0xffМаркер расширенного поляза ним следуют field_id и значение
0x09u8 целое1 байт
0x21Строкапрефикс длины (1 байт) + данные
0x88Маркер ожидания ответабез значения
0xfeИдентификатор расширенного поля3-байтовый id + тип + значение

Обработчик файловой системы находится на конечной точке (sys=5, handler=0) и предоставляет три релевантные команды:

  • 0x06 — открыть файл
  • 0x04 — прочитать файл
  • 0x01 — создать файл

🧨 Обход пути

Обработчик файловой системы Winbox не санирует путь, передаваемый в команду открытия файла. Встраивая последовательности '/////./../', злоумышленник выходит за границы песочницы и достигает корневой файловой системы:

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

Каждый сегмент '/////./../' (10 байт) поднимается на один уровень каталога вверх. Три сегмента достигают корня, после чего flash/rw/store/user.dat представляет собой базу учётных данных пользователя RouterOS. Запрос не требует аутентификации.

Эксплойт отправляет два фрейма:

  1. Запрос на открытие: команда open-file с путём обхода
    • Байт ответа [38] → session_id
  2. Запрос на чтение: команда read-file с внедрённым session_id
    • Ответ, начиная с байта [55] → содержимое user.dat

🔐 Дешифрование паролей

user.dat представляет собой последовательность записей nv::message. Каждая запись предваряется 2-байтовым полем длины в LE и начинается с магических байтов M2. Поля внутри каждой записи используют 3-байтовый идентификатор поля в LE:

Идентификатор поляТипЗначение
0x01строкаимя пользователя
0x02u8группа — 3 = полный доступ администратора
0x11строказашифрованный пароль (пусто, если не задан)

Пароли шифруются с помощью статического XOR-ключа, полученного из жёстко заданной соли, скомпилированной в RouterOS:

root@kitploit:~
key      = MD5(username + "283i4jfkai3389")
password = XOR(encrypted_pass[i], key[i % len(key)])  до нулевого байта

Это означает, что любой user.dat, извлечённый с любого затронутого устройства, может быть дешифрован офлайн без перебора.


🧬 Разработческий бэкдор

После получения пароля администратора злоумышленник может аутентифицироваться через Winbox и использовать команду create-file для записи двух файлов, активирующих скрытый вход разработчика:

root@kitploit:~
/pckg/option                       активирует пакет option
/flash/nova/etc/devel-login        включает пользователя devel

После создания этих файлов роутер предоставляет root-оболочку BusyBox через Telnet и SSH под пользователем devel, используя пароль администратора.

На некоторых версиях RouterOS сначала необходимо подключиться через Telnet, чтобы заработал SSH.




⚙️ Эксплойт

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

    • Официальный патч и хронология от MikroTik.
  • Tenable — By the Way PoC

    • Оригинальный эксплойт на C++ от Джейкоба Бейнса.
  • NVD — CVE-2018-14847

    • CVSS 9.1 (Критический).