Всем добрейшего времени суток, друзья!
Сегодня у нас опять работа с MikroTik'ами, но зато будет очень интересно, ведь мы поговорим о
Получении SSH доступов на MikroTik и эксплоитингу его для получения полного доступа к тому, что находиться у него "под капотом"
Настраивайтесь на чтение, возьмите печенек, да кофеёк.
Желаю приятного прочтения!
Я думаю, что каждый уважающий себя человек не раз нуждался в сервере. Кому-то он нужен был для развёртывания небольшого сайта, кому-то для запуска телеграм бота.
Носуки многоуважаемые администраторы хостинг сервисов любят деньжата и задирают такие ценники даже на самые слабые сервера, что хочется рвать и метать, а не платить
Затем я помозговал и задался вопросом: - "А почему бы не попробовать реализовать такое бесплатно, да ещё на моём любимом MikroTik'e?"
Я уже давно знал, что на стандартном MikroTik'е с Router OS ( операционная система для роутеров MikroTik ) через веб-морду ( панель управления, доступ к которой возможен через браузер, обычно занимает 80 порт) или через WinBox ( аналог веб-морды, только в виде программы ) даже настроить некоторые ограничения в Файрволе трудно, муторно и долго, не говорю уже о чём-то другом.
Поэтому мне понадобилось найти какой-нибудь CVE ( ? ) для jailbreak'a ( получения root доступа к ядру ) нашей магической коробочки MikroTik и написать свой приватный эксплоит для этого CVE.
Поискав примерно 10-15 минут я наткнулся на идеально подходящий CVE-2023-30799 и уже готовый эксплоит на Github, обрадовавшись, ведь мне не придётся писать эксплоит самому, я пошёл проверять его:
Поначалу всё было хорошо, ядро вроде бы перепрошилось, но моя чуйка предвидела что-то нехорошее. Это нехорошее оказалось окирпичивание некоторых моделей MikroTik, что делает использование этого инструмента просто вредным!
Ну тогда и пошла веселуха! Я просмотрел исходный код ранее просмотренного эксплоита, понял как происходит подмена файлов, данных и в общем и целом как происходит jailbreak, чтобы написать свой приватный эксплоит, чтобы потом он попал в руки форумчан.
После 5-ёх дней разработки и тестов проект был доделан. Это было крутым и полезным опытом для меня. Теперь я смог проводить jailbreak любого MikroTik'а, версии от 6.27 до 6.49.6 с возможностью дополнения в базу более новых версий прошивок.
Вот так продуктивно моя неделя была проведена, надеюсь вы тоже не скучали
Но
Затем я помозговал и задался вопросом: - "А почему бы не попробовать реализовать такое бесплатно, да ещё на моём любимом MikroTik'e?"
Я уже давно знал, что на стандартном MikroTik'е с Router OS ( операционная система для роутеров MikroTik ) через веб-морду ( панель управления, доступ к которой возможен через браузер, обычно занимает 80 порт) или через WinBox ( аналог веб-морды, только в виде программы ) даже настроить некоторые ограничения в Файрволе трудно, муторно и долго, не говорю уже о чём-то другом.
Поэтому мне понадобилось найти какой-нибудь CVE ( ? ) для jailbreak'a ( получения root доступа к ядру ) нашей магической коробочки MikroTik и написать свой приватный эксплоит для этого CVE.
Поискав примерно 10-15 минут я наткнулся на идеально подходящий CVE-2023-30799 и уже готовый эксплоит на Github, обрадовавшись, ведь мне не придётся писать эксплоит самому, я пошёл проверять его:
Поначалу всё было хорошо, ядро вроде бы перепрошилось, но моя чуйка предвидела что-то нехорошее. Это нехорошее оказалось окирпичивание некоторых моделей MikroTik, что делает использование этого инструмента просто вредным!
Ну тогда и пошла веселуха! Я просмотрел исходный код ранее просмотренного эксплоита, понял как происходит подмена файлов, данных и в общем и целом как происходит jailbreak, чтобы написать свой приватный эксплоит, чтобы потом он попал в руки форумчан.
После 5-ёх дней разработки и тестов проект был доделан. Это было крутым и полезным опытом для меня. Теперь я смог проводить jailbreak любого MikroTik'а, версии от 6.27 до 6.49.6 с возможностью дополнения в базу более новых версий прошивок.
Вот так продуктивно моя неделя была проведена, надеюсь вы тоже не скучали
Как и в предыдущих статьях о работе с MikroTik'ами, мы будем использовать тот же метод фарма доступов к панели управления MikroTik'ов. Как обычно заходим на shodan.io и в поисковое меню вбиваем MikroTik:
Нас интересует только вот эта информация слева:
( Подчеркнул и выделил рыжим всё что нам нужно )
Отсюда узнаём, что:
1. Большинство устройств находиться в Бразилии ( именно её мы и будем сканировать позже, но вы можете выбрать иную )
2. Самый частый порт, на котором расположен MikroTik - 8291.
Теперь скачиваем с этого сайта файл BR.cidr ( если вы ранее выбрали другую страну, то скачайте соответсвенный файл с адресами этой страны ). Удаляем из него первую строчку, чтобы остались только адреса, примерно так:
Затем качаем Masscan, дополнительно нужно поставить Npcap. Закидываем ранее подготовленный BR.cidr и Masscan в один каталог ( директорию, папку, называйте как хотите ).
Затем запускаем там же командную строку и пишем в неё:
Или если вы используете Linux, как я, то ставим Wine и прописываем в терминал:
Процесс прошел, ожидаем примерно 2 часа ( зависит от кол-ва адресов в файле ) и открываем получившийся BR-check.txt любым удобным текстовым редактором. Убираем всё лишнее, примерно так:
( можно воспользоваться функцией Заменить в редакторе ):
На этом подготовка завершена. Переходим к сканированию!
Нас интересует только вот эта информация слева:
( Подчеркнул и выделил рыжим всё что нам нужно )
Отсюда узнаём, что:
1. Большинство устройств находиться в Бразилии ( именно её мы и будем сканировать позже, но вы можете выбрать иную )
2. Самый частый порт, на котором расположен MikroTik - 8291.
Теперь скачиваем с этого сайта файл BR.cidr ( если вы ранее выбрали другую страну, то скачайте соответсвенный файл с адресами этой страны ). Удаляем из него первую строчку, чтобы остались только адреса, примерно так:
Затем качаем Masscan, дополнительно нужно поставить Npcap. Закидываем ранее подготовленный BR.cidr и Masscan в один каталог ( директорию, папку, называйте как хотите ).
Затем запускаем там же командную строку и пишем в неё:
Код:
Masscan32.exe -p8291 -iL BR.cidr > BR-check.txt --rate 1000000
Или если вы используете Linux, как я, то ставим Wine и прописываем в терминал:
Код:
wine Masscan32.exe -p8291 -iL BR.cidr > BR-check.txt --rate 1000000
Процесс прошел, ожидаем примерно 2 часа ( зависит от кол-ва адресов в файле ) и открываем получившийся BR-check.txt любым удобным текстовым редактором. Убираем всё лишнее, примерно так:
( можно воспользоваться функцией Заменить в редакторе ):
На этом подготовка завершена. Переходим к сканированию!
Сразу же скачиваем RouterScan и запускаем его, нас встретит такой интерфейс:
( Или если вы используете Linux, как я, то используем для запуска Wine )
Здесь нам нужно заполнить поля Scan Ports и IP ranges, поясняю, что это такое:
Теперь заполняем:
После этого нажимаем на заветную кнопку Start Scan и переходим во вкладку Good Result:
( Goods results далее будет называться "гудами" )
Ну всё, процесс пошёл. Ожидаем некоторое время. Спустя это некоторое время мы увидим таблицу, состоящую только из действующих адресов MikroTik'ов и прочих роутеров. Выглядит всё это дело примерно так:
( замажу адреса, ибо ip'шники из позапрошлой статьи какой-то гадина ушатал и теперь на них не зайти )
Находим поле Search и туда вписываем MikroTik, ставим галочку в окошке All и жмём на Search all:
Теперь нажимаем на любой понравившийся левой кнопкой мыши, копируем из столбца Authorization соответствующие логин и пароль от выбранного MikroTik'а и жмём Enter.
( если пароль = <empty> значит его нету, т.е его вводить не нужно)
У нас открывается окно в браузере с простецкой страницей авторизации, вводим туда ранее скопированные логин и пароль, пример:
Жмём Login, нас встречает панель первичных настроек, они нас не интересуют, пропускаем их, нажав на WebFig:
После нажатия на WebFig нас перекинет на главную панель управления, она нам и понадобиться:
В первую очередь нам нужно поглядеть какой у нас уровень прав.
Всего их бывает 4 типа: full, admin, write, read.
Мы ищем учётную запись с правами full или admin, иные нам не подходят.
Чтобы узнать какие права у нашей учётки мы тыкаем слева на System -> Users и ищем в открывшемся окошке логин, под которым вы заходили, к примеру у меня это admin:
Как видим мне повезло, учётка имеет права доступа группы full. Если ваша учётная запись имеет уровень ниже admin, то у вас есть 2 пути:
1. Сбрутить другие учётки на этом MikroTik'e, которые состоят в группе full или admin;
2. Попробовать войти в другой MikroTik из вкладки гудов и рекурсивно проделать те же шаги снова.
Этап сканирования завершён. Теперь можем приступать к эскплоитингу
( Или если вы используете Linux, как я, то используем для запуска Wine )
Здесь нам нужно заполнить поля Scan Ports и IP ranges, поясняю, что это такое:
Это те порты адресов, которые будет проверять Router Scan на наличие роутеров и уязвимостей в них
Это список ip адресов, которые будет проверять Router Scan на наличие роутеров и уязвимостей в них
Теперь заполняем:
После этого нажимаем на заветную кнопку Start Scan и переходим во вкладку Good Result:
( Goods results далее будет называться "гудами" )
Ну всё, процесс пошёл. Ожидаем некоторое время. Спустя это некоторое время мы увидим таблицу, состоящую только из действующих адресов MikroTik'ов и прочих роутеров. Выглядит всё это дело примерно так:
( замажу адреса, ибо ip'шники из позапрошлой статьи какой-то гадина ушатал и теперь на них не зайти )
Total found - сколько всего подгружено ip адресов;
Good found - сколько всего "гудов";
Work Time - потраченное время на работу;
Total time - предположительное время работы, обычно совпадает с work time.
Как видим из 169 тысяч адресов, "гудов" нашлось только 114
Good found - сколько всего "гудов";
Work Time - потраченное время на работу;
Total time - предположительное время работы, обычно совпадает с work time.
Как видим из 169 тысяч адресов, "гудов" нашлось только 114
Находим поле Search и туда вписываем MikroTik, ставим галочку в окошке All и жмём на Search all:
Теперь нажимаем на любой понравившийся левой кнопкой мыши, копируем из столбца Authorization соответствующие логин и пароль от выбранного MikroTik'а и жмём Enter.
( если пароль = <empty> значит его нету, т.е его вводить не нужно)
У нас открывается окно в браузере с простецкой страницей авторизации, вводим туда ранее скопированные логин и пароль, пример:
Жмём Login, нас встречает панель первичных настроек, они нас не интересуют, пропускаем их, нажав на WebFig:
После нажатия на WebFig нас перекинет на главную панель управления, она нам и понадобиться:
В первую очередь нам нужно поглядеть какой у нас уровень прав.
Всего их бывает 4 типа: full, admin, write, read.
Мы ищем учётную запись с правами full или admin, иные нам не подходят.
Чтобы узнать какие права у нашей учётки мы тыкаем слева на System -> Users и ищем в открывшемся окошке логин, под которым вы заходили, к примеру у меня это admin:
Как видим мне повезло, учётка имеет права доступа группы full. Если ваша учётная запись имеет уровень ниже admin, то у вас есть 2 пути:
1. Сбрутить другие учётки на этом MikroTik'e, которые состоят в группе full или admin;
2. Попробовать войти в другой MikroTik из вкладки гудов и рекурсивно проделать те же шаги снова.
Этап сканирования завершён. Теперь можем приступать к эскплоитингу
Что нужно для эксплоитинга? Прямые ручки и работающий эксплоит. Вторым обеспечиваю я, с первым разбирайтесь сами
Скачиваем мой эксплойт тут
Разархивируем любым удобным архиватором и заходим в каталог с эксплойтом. Открываем терминал, пишем туда:
( Или можете воспользоваться редактором кода с поддержкой виртуального окружения Python )
Затем через pip3 скачиваем библиотеки:
pycryptodome
requests
donna25519
pynacl
Дожидаемся установки всех библиотек и запускаем в директории с эксплойтом терминал и пишем в него:
Ожидаем минутку и видим примерно такое:
Всё шикарно. Эксплойт загрузился в память устройства и теперь отлично функционирует. Теперь мы можем пользоваться MIkroTik'ом, как настоящей linux системой, но сперва нужно к его командной строке подключиться.
Чтобы подключиться к root консоли ( это которую эксплойт сделал за нас ) мы скачиваем netcat ( На kali он уже установлен из коробки ) и пишем в терминал следующее:
Ну и всё. Теперь мы имеем полный доступ к ядру, терминалу MikroTik'а и можем осуществлять небольшие-средние задачи: от теста телеграм бота до запуска различных бинарников ( .bin ). Думаю, кто умеет работать с linux найдёт здесь уйму возможностей
Скачиваем мой эксплойт тут
Разархивируем любым удобным архиватором и заходим в каталог с эксплойтом. Открываем терминал, пишем туда:
Код:
python3 -m venv venv
source venv/bin/activate
Затем через pip3 скачиваем библиотеки:
pycryptodome
requests
donna25519
pynacl
Дожидаемся установки всех библиотек и запускаем в директории с эксплойтом терминал и пишем в него:
Код:
python3 exploit.py -H <айпи-микротика> -u <пользователь> -p <пароль>
Ожидаем минутку и видим примерно такое:
Всё шикарно. Эксплойт загрузился в память устройства и теперь отлично функционирует. Теперь мы можем пользоваться MIkroTik'ом, как настоящей linux системой, но сперва нужно к его командной строке подключиться.
Чтобы подключиться к root консоли ( это которую эксплойт сделал за нас ) мы скачиваем netcat ( На kali он уже установлен из коробки ) и пишем в терминал следующее:
Код:
nc <айпи-микротика> 1337
Ну и всё. Теперь мы имеем полный доступ к ядру, терминалу MikroTik'а и можем осуществлять небольшие-средние задачи: от теста телеграм бота до запуска различных бинарников ( .bin ). Думаю, кто умеет работать с linux найдёт здесь уйму возможностей
Вот мы и подошли к завершению темы. Надеюсь, что после прочтения данной темы у вас получиться повторить шаги, описанные в ней.
Буду очень рад вопросам и пожеланиям.
UPD: Дорогие читатели, я создал свой блог в телеграме. В нём будут постится мои статьи, софт, гайды, инструменты, практические кейсы и иной эксклюзивный контент. Всех желающих приглашаю - @ssh_lab
Автор: SSH
Специально для endway.su
Буду очень рад вопросам и пожеланиям.
UPD: Дорогие читатели, я создал свой блог в телеграме. В нём будут постится мои статьи, софт, гайды, инструменты, практические кейсы и иной эксклюзивный контент. Всех желающих приглашаю - @ssh_lab
Автор: SSH
Специально для endway.su
Вложения
Последнее редактирование: