
Автономный Python PoC, эксплуатирующий цепочку MikroTrick SSH (CVE-2026-86060, CVE-2026-67279) для получения неаутентифицированного полного административного доступа к устройствам MikroTik RouterOS.
poc_mikrotrick.py — это самодостаточный эксплойт для цепочки атак через SSH,
которую CERT Polska раскрыла под названием "MikroTrick" 2026-09-05 и которая
эксплуатировалась в дикой природе как минимум с 2026-09-02 против доступных из
интернета устройств MikroTik RouterOS. Один запуск превращает
неаутентифицированное SSH-соединение в полноценную консоль
администратора. Без учётных данных, без взаимодействия с пользователем.
| CVE | Роль в цепочке | Дефект |
|---|---|---|
| CVE-2026-86060 (CVSS 9.2) | Повышение привилегий | Помощник входа по SSH трактует имя пользователя, начинающееся с дефиса, как файловый дескриптор и читает из него подменную идентичность и маску политик |
| CVE-2026-67279 (CVSS 6.9) | Обход аутентификации | Запрошенный клиентом повторный обмен ключами до аутентификации снимает серверную проверку "должен быть аутентифицирован" |
| CVE-2026-67277 (CVSS 8.8) | Не используется этим PoC | Служба bandwidth-test (btest) допускает раскрытие памяти и перезапуск до аутентификации; актуально для фингерпринтинга и оценки подверженности |
Дополнительно требуется безымянная ошибка состояния: отклонённый вход оставляет имя пользователя в состоянии сессии сервера. Эксплойт полагается на неё на шаге 1 ниже. Патчи MikroTik (2026-09-03) закрывают всю цепочку.
-2. Сервер отклоняет её, но оставляет его
в состоянии сессии. Это первый IoC кампании: login failure for user -2.-2.ssh:-2@<ip>,
фингерпринт кампании.Эксплойт создаёт тестовую учётную запись с полными привилегиями (hacker / hacker),
выводит команду входа и завершается. (Сама эксплуатируемая консоль
нестабильна — последующий повторный обмен ключами снова включает проверку
аутентификации, и канал умирает — поэтому обычный вход по SSH является надёжным путём.)
python3 poc_mikrotrick.py <host> # plant hacker account, print ssh login
python3 poc_mikrotrick.py <host> "<ros command>" # run one command, exit
Требование: python3-paramiko. Скрипт является лабораторным клиентом и отказывается
работать с целями, не являющимися частными IP-адресами.
[7.24, 7.24.2), [7.0.0, 7.23.4), [6.0.0, 6.49.21)login failure for user -2 via sshuser <name> added by ssh:-2@<ip>ops/system/device-mode/print, показывающий маркер "Flagged" (его отсутствие
ничего не доказывает)Если что-либо из этого появляется на устройстве, считайте его скомпрометированным: изолируйте, пропатчите и проверьте всех пользователей, скрипты, задачи планировщика и туннели.
Запускайте это только против экземпляров RouterOS, которыми вы владеете или на тестирование которых у вас есть явное разрешение. Атака на устройства, которыми вы не владеете, является преступлением.