Атака на роутер. Выполнение, последствия и защита.
Производители ПО недостаточно заботятся о безопасности маршрутизаторов. Через роутер можно проникнуть в сеть и прослушать весь проходящий трафик. В статье будут рассмотрены баги и уязвимости роутеров, которые были найдены в процессе пентеста.
Беспроводная точка доступа есть у большинства юзеров. Помимо удобства роутер добавляет безопасности: комп пользователя оказываются за фаерволом и недоступен для прямых атак. Но она сама может стать объектом для атаки. ПО точки доступа, нередко уязвимо. Производители редко придают значение серьёзным проверкам безапасности , концентрируясь на удобстве пользователя и максимальной производительности.Аргументация простая: если большинство сервисов недоступны извне, а админка доступна только для пользователей в локальной сети, то чего заморачиваться?
На самом деле, набор уязвимостей и социальная инженерия, при определённом стечении обстоятельств, могут дать удалённый доступ к управлению роутером. Для эксперимента брался роутер с первой версией прошивки, которая установлена по умолчанию.
С чего начинается? Целенаправленно ищутся уязвимости сканированием портов из внутренней сети, снаружи, по умолчанию веб - админка закрыта. Сканер показал три отрытых порта, из котрых заинтересовали два: 80-й (веб интерфейс ) и 23-й ( Telnet ).
Веб - баги
Если рассмотреть веб - интерфейс со стороны безопасности, то это провал. Классика жанра: где есть возможность ввода своей инфы, отсутствует фильтрация! В формах отсутствуют какие либо токены, что открывает возможность CSRF атак.
Каждая XSS рассматриваться не будет, но есть один вариант эксплуатации XSS ( лайфак - это набор методик и приёмов «взлома» для упрощения достижения цели ). Если хочется скрыть себя из из списка клиентов подключенных к роутеру ( их можно посмотреть в админке роутера ), для этого не нужно лезть в консоль, писать модули ядра итд. Просто меняем имя нашего компа на 1'}]");alert(1); и подключаемся к роутеру. В результате "втискиваемся" в JS таким образом, что он не обработался и выдал пустой список клиентов. Этого вполне достаточно, чтоб скрыть себя при подключении к точке доступа от глаз невнимательного админа.
Благодаря CSRF и XSS можно добыть пароль от роутера и получить удалённый доступ через бэкэнд ( это обобщенные термины, которые отражают начальное и конечное состояния процесса. Front-end отвечает за получение ввода входной информации, в любых формах от пользователя и обработку полученной информации в ту форму, которую back-end способен использовать - т. е. своего рода троян. Front-end — это интерфейс между пользователем и back-end’ом). Для этого никак не обойтись без соц инженерии. В принципе, любая атака становится возможной только при определённом стечении обстоятельств.
1. Одмину отправляется ссылка на хост, с заранее подготовленным HTML файлом.
Используется автосамбит и XSRF. В одном из полей -- user_ name с помощью script вставляется JS - пейлоад (джава скрипт, полностью автоматизирующий атаку ).
2. Юзер переадресовывается на протрояненую страницу и XSS исполняется у него в браузере. Есть нюанс. В админке используется basic access authetication, поэтому, атака сработает, если у жертвы открыта админка или логин с паролем был сохранён в браузере.
3. С помощью пейлоада выдёргивается из веб интерфейса пароль от роутера и присылается на сниффер. Стащив с роутера файл на удалённый сервер и выполнив команду cat KEENETIC.cfg | gzip-d, получаем значение всех системных переменных, в том числе и Wi-Fi ключ от роутера и от его админки.
4. После передачи на сниффер, выполняется AJAX ( асинхронный JavaScript и XML, заключающийся в «фоновом» обмене данными браузера с веб-сервером ), отправляется запрос на очистку таблицы - стирается XSS.
5. Роутер взломан! Атака возможна при двух обстоятельствах: Админ должен открыть ссылку и веб интерфейс рутера должен быть открыт в браузере или логин с парлем в нём сохранены.
Подключившись к Телнету и залогинившись с данными, которые взяли из файла KEENETIC.cfg попадаем в консоль Keenetic, в которой можно выполнять операции и системные команды. Затем, консоль выправляется в полноценную. С ней уже можно провести бекконект ( один из методов обхода фаервола, установление соединения со стороны сервера к н netcat’у прослушивающему порт. ) Это поможет обойти дополнительную защиту, если таковая имеется.
Данная атака позволяет:
1. Внести изменения в софт роутера. Загрузить файл изменённой прошивки. Изменять, добавлять или удалять какие либо файлы с прошивки роутера.
2. При хороших навыках программрования, можно написать свой модуль ядра и подгрузить жертве.
3. Команда flash, которая доступна в консоли роутера даёт интересные данные, к примеру пароль от програмы NetFriend ( программа быстрой настройки роутера ), которые в дальнейшем будут использованы против жертвы.
4. Стоит обратить внимание, чтоб в компьютере жертвы можно делать что угодно, сканирование антивирусами, лечение и переустановка операционки ничего не изменит, данные будут утекать, хозяйничанье в вашей машине продолжится. Усиление защиты на компьютере, мало, а то и вовсе ничего не даст. Пока не установится истинная причина - ЗАРАЖЁН И ВЗЛОМАН РОУТЕР!
На данное время, себя можно обезопасить только тем, если регулярно обновлять прошивку роутера и изменять все настройки, запрещающие удалённо пользоваться роутером.
Эксперимент проводился с роутерами модели ZyXEL, парнем под ником @090h, материал обработан и выложен мной.
Комментарии
у меня нет вайфая на роутере. это плюс
но я довно не менял прошивку
это минуз
я просто выброшу роутер накер
это надо тогда делать по-другому наверное
делать один комп сервером
У одминов там двоится, наверное.))) Пусть думают, что с перепоя!