swmp на роутере что это
Одна из уязвимостей технологии WPS
Для начала рассмотрим что такое WPS
Большинство современных роутеров поддерживают механизм WPS (Wi-Fi Protected Setup). С его помощью пользователь за считанные секунды может настроить безопасную беспроводную сеть, вообще не забивая себе голову тем, что «где-то еще нужно включить шифрование и прописать WPA-ключ.
WPS позволяет клиенту подключиться к точке доступа по 8-символьному коду, состоящему из цифр (PIN). Однако из-за ошибки в стандарте нужно угадать лишь 4 из них. Таким образом, достаточно всего-навсего 10000 попыток подбора и вне зависимости от сложности пароля для доступа к беспроводной сети вы автоматически получаете этот доступ, а с ним в придачу — и этот самый пароль как он есть.
Учитывая, что это взаимодействие происходит до любых проверок безопасности, в секунду можно отправлять по 10-50 запросов на вход через WPS, и через 3-15 часов (иногда больше, иногда меньше) вы получите ключи.
Когда данная уязвимость была раскрыта производители стали внедрять ограничение на число попыток входа (rate limit), после превышения которого точка доступа автоматически на какое-то время отключает WPS — однако до сих пор таких устройств не больше половины от уже выпущенных без этой защиты. Даже больше — временное отключение кардинально ничего не меняет, так как при одной попытке входа в минуту нам понадобится всего 10000/60/24 = 6,94 дней. А PIN обычно отыскивается раньше, чем проходится весь цикл.
Как это работает:
Механизм сам задает имя сети и шифрование, т.е. пользователю не нужно лезть в веб-интерфейс и что-либо настраивать. Его задача, просто ввести правильный Pin и он получит все необходимые настройки.
Далее покажу один из способов подключиться к wifi соединению без пароля. Конечно это не 100% гарантия подключения, но вероятность есть.
Для этого нам понадобятся две программы: Dumpper и Jumpstart.
Первая из них нам нужна для того, чтобы узнать тот самый Pin от найденных WiFi соединений.
Итак, приступим:
Запускаем программу Dumpper. На вкладке redes, которая отмечена на рисунке 1 проверяем наличие WiFi адаптера, после чего нажимаем кнопку Scan. Это нужно для того, чтобы проверить наличие беспроводных сетей.
Рисунок 1 – Вкладка Redes
После этого в поле Redes detectadas появятся количество и список найденных беспроводных сетей как показано на рисунке 2.
Рисунок 2 – Найденные сети
Далее нам нужно перейти во вкладку WPS. Тут необходимо нажать на кнопку Todas las redes для того чтобы определить pin устройств доступных для соединения. И кликнуть на Scan. После появится выдача соединений и их pin.
Рисунок 3 – WPS
Далее выбираем WiFi соединение и нажимаем на него. Для примера выберу соединение RVK_576 как показано на рисунке 4. Теперь в поле WPS Pin нам доступен pin для копирования, что нам и нужно сделать.
Рисунок 4 – WPS Pin
Следующим шагом будет проверка подключения к WiFi соединению RVK_576 через pin. Для этого запускаем программу JumpStart.
Выбираем пункт «Join a wireless network» и жмем «далее» как показано на рисунке 5:
Рисунок 5 – JumpStart
Далее нам нужно выбрать пункт «Enter the pin from my access point» и в появившемся поле вставить Pin, копированный из программы Dumpper.
Важно убрать галочку в пункте «Automatically select the network» как показано на рисунке 6.
После этого жмем далее.
Рисунок 6 – Вставка Pin
После этого выбираем нужное подключение как на рисунке 7 и жмем далее.
Рисунок 7 – Выбор подключения.
После этого запуститься процесс подключения к сети RVK_576 через pin, как на рисунке 8:
Рисунок 8 – Процесс подключения.
Если в настройках роутера к которому мы подключаемся включена функция WPS соединения, то мы увидим окно с сообщением, как на рисунке 9, о том, что соединение установлено.
Рисунок 9 – Подключение
После всех этих действий пароль от WiFi соединения мы можем посмотреть в свойствах беспроводной сети, поставив галочку «отображать вводимые знаки». Пример на рисунке 10.
Рисунок 10 – Свойства беспроводной сети
Если же функция Wps отключена, то соединение будет прервано.
Swmp на роутере что это
Спецификация TR-069, разрабатываемая некоммерческой организацией Broadband Forum начиная с 2004 года, описывает протокол управления абонентскими устройствами – CPE WAN Management Protocol (CWMP). Основная цель создания CWMP – унификация средств и методов управления CPE в сетях провайдеров, независимо от производителей и моделей CPE. Достижение указанных целей позволило бы обеспечить качество предоставления массовых услуг, оптимизировать расходы на их сопровождение, упростить процедуру доступа к услуге со стороны абонентов.
Рис. Примерная схема сети оператора
Протокол CWMP определяет принципы взаимодействия между абонентскими устройствами (CPE) и сервером Auto-Configuration Server (ACS). ACS, согласно TR-069, является сетевым устройством и представляет собой сервер приложений, автоматизирующий реализацию основных методов управления абонентскими устройствами (CPE):
Настройка TR-069 на примере роутера QFR-200-4T—W GATEWAY
QFR-200-4T-W с поддержкой TR-069 синхронизируется с сервером ACS. Все параметры, заданные на CPE, контролируются и настраиваются с сервера ACS. Пользователю необходимо ввести URL, имя пользователя и пароль для сервера ACS для подключения устройства. Тем не менее, URL, имя пользователя и пароль пользователя изменить не сможет. Данные параметры настраиваются на стороне ACS сервера.
Выполните следующие действия:
периодического информирования ACS-сервера. Далее укажите временной
интервал в диапазоне значений от 0 до 65535 секунд, через который CPE будет связываться с ACS.
Настройка TR-069 на примере роутера QBR-1040W v3S
Выбираем вкладку Администрирование, затем TR069.
Активируем опцию TR069, нажимая “Включить”
Указываем URL, логин и пароль для ACS сервера, после чего нажимаем применить и перезагружаем роутер.
10 функций маршрутизаторов, о которых вы могли не знать
Содержание
Содержание
Маршрутизатор — ключевой элемент в организации домашней или корпоративной сети. Помимо своей основной функции это устройство может выполнять массу других весьма полезных задач. Фильтрация трафика, организация работы IPTV, сбор статистики и многое другое. Мы подробнее расскажем о полезных функциях в вашем роутере, которые вы могли упустить из виду.
Переназначение WAN на LAN-порт
Гроза — одна из самых частых причин выхода из строя роутеров. В некоторых случаях поломка ограничивается только одним портом — WAN, к которому и подключается интернет-кабель. Решить эту проблему можно достаточно просто даже без разбора конструкции. В большинстве роутеров вы можете переназначить WAN на любой другой LAN-порт. Благодаря этому маршрутизатором снова можно пользоваться в полной мере.
Делается это в веб-интерфейсе устройства. Вы можете выбрать, какой именно из LAN-портов будет выполнять роль WAN. С учетом того, что у большинства пользователей всегда есть свободный порт, эта функция поможет сэкономить на покупке нового маршрутизатора. Как правило, такая функция называется «зеркалированием», «перенаправлением» или «виртуальным портом».
Функционал USB-порта
Некоторые модели роутеров оснащаются одним или даже двумя USB-портами. Не обязательно, чтобы устройство было из высокой ценовой категории — в магазинах можно найти и бюджетные модели с этой конструктивной особенностью.
USB может выполнять одну из нескольких функций:
Если вы все-таки решили взять роутер с USB, то обратите внимание на несколько моментов. Во-первых, все вышеописанные функции маршрутизатор должен поддерживать программно. Например, наличие USB еще не гарантирует, что вы сможете сделать FTP-сервер. Во-вторых, рекомендуем заранее ознакомиться со списком совместимых модемов и максимальным объемом подключаемых накопителей. Например, старые роутеры не работают с дисками или флешками от 1 ТБ.
Функция автозагрузки и торрента
Наличие USB-порта открывает еще одну важную функцию — автозагрузка. Суть в том, что маршрутизатор можно запрограммировать на скачивание файла или торрента, после чего отключить компьютер. Главное преимущество — вы можете поставить скачиваться объемные данные на ночь и при этом не гонять впустую ПК или ноутбук, которые подключены к сети. Нужный вам файл в итоге загрузится на подключенный USB-носитель. Как правило, режим «оффлайн-загрузки» можно включить в разделе настроек USB.
В расширенных настройках можно задать ограничение скорости, расписание, а также другие параметры. При этом скачанные файлы могут быть доступны сразу всем устройствам в домашней сети.
Встроенный торрент-клиент также пригодится в том случае, если вы планируете вести какую-либо раздачу круглосуточно. Тогда у вас не будет необходимости все время держать компьютер включенным.
На некоторых моделях может быть вшитое ограничение на скорость скачивания торрентов, чтобы обеспечить стабильную работу устройства.
Функция WPS
Можно ли подключить устройство к Wi-Fi, если вы забыли пароль и не хотите лезть в веб-интерфейс? Легко — достаточно воспользоваться WPS (Wi-Fi Protected Setup). Пользователям нужно нажать соответствующую кнопку на обоих устройствах, после чего произойдет сопряжение. Мобильные гаджеты при включении WPS могут подключаться к Wi-Fi автоматически.
В некоторых роутерах для подключения через WPS нужно ввести PIN. Посмотреть код или полностью отключить его можно в настройках маршрутизатора.
Кнопка WPS может быть одновременно и RESET, поэтому перед использованием почитайте в инструкции, как именно ее нужно нажимать
Функции репитера, точки доступа и беспроводного моста
Одного роутера очень часто не хватает для покрытия большой площади, особенно, если вы живете в большом частном доме или многокомнатной квартире. Если у вас дома завалялся второй роутер, то с большой вероятностью из него можно сделать полноценною точку доступа.
Эти режимы могут быть двух типов:
Все настройки выполняются в веб-интерфейсе. На некоторых моделях роутеров для использования режима точки доступа придется задать ip-адрес вручную и отключить DHCP-сервер.
Функция ограничения доступа
Практически все современные маршрутизаторы имеют родительский контроль. Это крайне полезная функция, если у вас есть дети. В настройках можно указать список запрещенных адресов и для каких конкретно устройств будут недоступных эти сайты.
Это намного удобнее и быстрее, чем настраивать блокировки на каждом отдельном устройстве. Также родительский контроль будет полезен и в корпоративном секторе, если нужно ограничить сотрудникам доступ к развлекательному контенту.
Функции IPTV и DNLA
Если вас не устраивает список доступных каналов на телевизоре или вы хотите смотреть с удобством ТВ на компьютере, то будет полезна функция IPTV. Роутер может транслировать телесигнал как по кабелю, так и через Wi-Fi. Как правило, достаточно только разрешить мультикаст (многоадресную маршрутизацию) в настройках роутера. В IPTV пользователи могут настроить список каналов на свой вкус.
Еще одна полезная функция — медиа-сервер посредством Digital Living Network Alliance (DNLA). Используя подключенный к роутеру USB-накопитель, вы можете создавать библиотеку фильмов или музыки. Доступ к ней будут иметь все гаджеты в сети. Это актуально, когда у вас есть несколько смарт-устройств.
Функция приоритета трафика QoS
С появлением умных вещей к домашнему Wi-Fi подключается все больше устройств. Нередко они доставляют небольшие неудобства, отбирая весомую долю трафика. Quality of Service позволит выставить приоритеты, тем самым распределяя пропускную способность. Роутер будет отдавать большую пропускную способность конкретным направлениям с учетом действующих приоритетов.
Задать приоритеты обычно можно по протоколам или конкретным приложениям.
Съемная антенна
На многих W-Fi роутерах конструкция позволяет заменить антенну, причем на модель с другим коэффициентом усиления. Это открывает дополнительные возможности в создании домашней беспроводной сети. Например, на территории частного дома можно организовать связь между двумя удаленными роутерами, если они находятся в прямой видимости друг друга. Для этого достаточно выбрать антенну с соответствующим коэффициентом усиления — 8-9 dbi.
Контроль подключенных устройств
Как узнать, не подключился ли к вашему Wi-Fi сосед или другой посторонний? На самом деле никаких специализированных программ не потребуется — все необходимое уже есть в веб-интерфейсе вашего маршрутизатора. Для этого достаточно перейти в раздел «Беспроводные сети» и найти соответствующее меню. Роутер покажет текущий IP и MAC-адрес подключенных устройств, а также по возможности их наименование. Это позволит быстро найти воришку трафика.
MAC-адреса своих устройств вы всегда сможете узнать в настройках. В ноутбуках — через свойства беспроводного адаптера, а на мобильных устройствах — в свойствах Wi-Fi.
Слишком много поваров, или взлом Интернета с помощью TR-069
Шахар Тал: проведём быстрое голосование – кто из вас видел сериал «Слишком много поваров?». Достаточно хороший процентаж для такой аудитории. Итак, начнём.
На экране демонстрируется заставка к фильму, затем появляются портреты докладчиков.
Далее в титрах указаны:
Дени ДеВито – в роли доступного тостера IPv4, Арнольд Шварценеггер – в роли роутера TP- Link TD-W8961NDи другие…
Итак, тем из вас, кто не видел фильм «Слишком много поваров», который демонстрировался несколько месяцев назад, советуем его посмотреть, нам он очень понравился. Если вы его смотрели, то смогли оценить наши «весёлые картинки», которые мы использовали для презентации.
Итак, мы являемся исследователями вредоносного ПО и уязвимостей и работаем в компании – разработчика программ в сфере IT-безопасности CheckPoint, расположенной в Тель-Авиве. Слоган нашей компании – «Мы защищаем Интернет». Наша задача состоит в том, чтобы найти уязвимость оборудования, рассказать об этом его производителю и поделиться информацией с обществом.
Сегодня мы поговорим о следующем:
Это то, что ISP используют:
Справа расположено оборудование пользователя CPE – ваш домашний роутер с клиентом TR-069, слева – сервер TR-069, называемый также сервером автоматической конфигурации ACS. Они «разговаривают» друг с другом при помощи SOAP RPS, использующим язык XML через HTTP.
Сессию всегда инициирует роутер, это одиночное IP-соединение, с помощью которого компьютер подсоединяется к сети. ASC использует запрос соединения и отсылает роутеру команды «получить значения параметров» и «установить значения параметров».
Как вы можете убедиться, это достаточно просто. Здесь задействован двойной механизм аутентификации. СPE должен убедиться, что связывается с вашим доверенным ASC, а ASC разрешает сессию только авторизованному пользователю.
На DEFCON 22 мы рассказывали о том, что мы нашли в этом процессе. Наше исследование обнаружило недостатки реализации и конфигурации, производимой многими ACS серверами сетевых провайдеров (ISP):
В прошлом году парни из Dead Map провели очень интересное исследование, это был Захарий Румрич и его друзья из Мичиганского университета. Они просканировали 2 миллиона случайных адресов на каждом из почти 10 тысяч портов, и определили, что CWMP 7547 — порт по умолчанию для TR-069 — является в мире вторым по популярности открытым портом. Процент его использования Hit Rate для интернета составляет 1,12%. Напомню, что этот протокол был создан 10 лет назад – подумайте об этом! Этот порт для связи с интернетом используют примерно 45 миллионов устройств, и через этот открытый порт они могут быть «прослушаны».
Проведём небольшой обзор самых популярных в мире портов, которые различные устройства используют для связи с Интернетом.
Портом 80 пользуются примерно 70 миллионов устройств, половина — для связи с веб-серверами глобального Интернета. Большинство из них это Apache серверы, далее следуют серверы nginx, IIS 8 и другие. Вторая половина устройств использует 80-й порт для Интернета вещей. Эти устройства представляют собой роутеры, веб-камеры, VoIP телефоны и тостеры.
Сейчас наконец-то люди начинают осознавать, что открытый доступ к этим вещам попросту опасен. Поэтому они ищут как можно больше устройств, которые используют для локальных сетей только порт 80.
Учтите, что открытый порт 7547 используют не только обычные пользователи, его применение предусмотрено программным обеспечением серверов провайдеров, взаимодействующих с устройствами пользователей. И все 45 миллионов устройств, использующих TR-069, представляют собой Интернет вещей.
Все эти устройства выходят в сеть с использованием запроса соединения Connection Request.
Мы решили исследовать проблемы безопасности и найти число пострадавших от этой уязвимости. Нам нужно было перестать гадать и перейти к фактам. В прошлом месяце (ноябрь 2014 года) мы несколько раз просканировали порты 7547 по всему адресному пространству IPv4 с помощью наших друзей Rapid 7 и ребят из Мичиганского университета. В результате после простого ввода «слэш» (/) через порт 7547 нам ответили 1,18% всех устройств публичного Интернета, общее число которых составило 46 093 733 штуки по всему свету. То есть это не одна страна, в которой открыты данные порты, это 189 стран по всему миру.
Если вы помните, в спецификации TR-069 существует требование, чтобы этот порт был открыт для запросов ASC. Так вот, в прошлом году появилось ещё 0,06% новых устройств, удовлетворяющих этому требованию, а это целых 2,2 миллиона! То есть тенденция роста налицо.
Мы занялись проблемой реализации TR-069 на клиентской стороне и вот какую статистику получили.
У нас получилось 5 основных типов серверов, использующих запрос соединения. Больше половины пришлось на штуку под названием RomPager. Это встроенный HTTP сервер от Allegro Software, компании, расположенной в штате Массачусетс, который включён в прошивку большинства роутеров. Он оптимизирован под минимальные требования – двоичные коды, минимум памяти – и впервые был представлен в 1996 году. С тех пор было много версий, последней является 5.4. Мы решили сфокусировать на нём внимание и установили, что оборудование клиента использует четыре версии RomPager.
В результате мы выяснили, что 98,04% устройств использует устаревшую версию 4.07, 1,44% используют версию 4.51, 0,51% — 4.03 и 0,01% 4.34. Как говорилось в сериале, «после этого я стал подозрительным». Чем объясняется такая невероятная популярность единственной версии RomPager?
Мы купили новый роутер TP Link, распаковали его и подсоединили к сети. В нём был установлен RomPager 4.07. Мы подумали, что может быть это старый роутер с устаревшей прошивкой и скачали с сайта TP Link новую прошивку 2014 года, обновили, перезагрузили роутер и в результате снова получили версию 4.07.
Таким образом мы получили объяснение такой популярности старой версии – это был единственный самый последний вариант прошивки, расположенный на сайтах производителей роутеров.
Кто из присутствующий здесь имеет нераспакованный новый роутер? Не может быть, вот это удача!
Парень из зала передаёт коробку с роутером, и докладчик кладёт его на стол.
Уверяю вас, этот человек на меня не работает! Мы займёмся этой коробкой позже.
Мы решили исследовать, что собой представляет RomPager версии 4.07. Он был выпущен в 2002 году и появился во множестве современных устройств:
Очень важный момент состоит в том, что самые популярные версии спецификаций имеются в Интернете в открытом доступе.
А сейчас пусть продолжит Лиор – он расскажет о том, как мы анализировали эту прошивку.
Добрый день! Меня зовут Лиор и я производил анализ того, как работает RomPager версии 4.07, и обнаружил интересные результаты. У нас была фирменная прошивка, скачанная с сайта производителя роутера TP Link. Она выглядела как сжатый массив данных, поэтому мы использовали Binwalk — инструмент для поиска файлов и исполняемого кода в данном двоичном образе. Его используют для взлома архива и извлечения запакованных файлов.
Для более объективного анализа я решил загрузить все прошивки RomPager версии 4.07, какие только смог найти в Интернете, и обнаружил, что все они содержали заголовок ZyNOS (mipsb32) – операционную систему, которые используют сетевые устройства производства компании ZyXEL. Я не мог понять, почему устройства разных производителей имели одинаковую прошивку. Я стал изучать, что собой представляет ZyNOS.
Это основная операционная система в режиме реального времени – Real Time OS, RTOS, без всякой файловой системы и специальных разрешений, она состоит из одного большого двоичного файла, предназначенного для удовлетворения любых требований.
Эта система имеет известную уязвимость «rom-0» (СVE-2014- 4019). По состоянию на май 2014 года этой уязвимостью обладали 1 219 985 устройств по всему миру. Эта уязвимость позволяет злоумышленнику захватить контроль над роутером, просто загрузив из него файл конфигурации без всякой авторизации, прямо из панели веб-браузера через порт 80. В результате взломщик просто получит пароль и имя пользователя. И такой уязвимости подвержены 1,2 миллиона устройств во всём мире.
Рассмотрим, как выглядит интерфейс атаки через порт 80. Мы получили запрос авторизации, и так как не знали имя пользователя и пароль, попробовали войти через порт 7547.
Здесь мы получили сообщение, что по данному адресу «Объект не найден» для любого пути, кроме правильного адреса.
Я решил найти правильный адрес, то есть отправить запрос по правильному пути. Перед тем, как начать разбираться с кодом, я решил выполнить ручное тестирование через HTTP-заголовки, и неожиданно мне удалось взломать роутер путём отправки дайджест-имени пользователя с переполнением заголовка дайджест-аутентификации значением ‘a’#600.
Это привело меня к первой уязвимости. Чтобы понять, почему это происходит, давайте рассмотрим структуру кода RomPager. Каждая строка здесь состоит из заголовка HTTP и относящейся к ней функции производителя для обработки этого заголовка.
Рассмотрим функцию, которая отвечает за имя пользователя.
Вы можете увидеть, что приводит к такой уязвимости – это незащищённая strcpy, функция стандартной библиотеки для копирования нуль-терминированной строки (включая нуль-терминатор) в буфер. Но что в действительности приводит к возможности взлома роутера – это отсутствие символов и возможности динамического анализа. Это очень трудно понять.
Я вскрыл роутер и принялся искать JTAG. Для тех, кто не знает, что это такое, объясню: JTAG это интерфейс для отладки и проверки встроенных программ. Но когда я снял корпус, то не обнаружил там никаких разъёмов JTAG, зато я нашёл там нечто, выглядевшее как последовательный порт U-ART на отдельной микросхеме – разъём, предназначенный для связи с другими цифровыми устройствами.
Я занялся пайкой и подсоединил его к самому роутеру, а затем через USB адаптер подсоединил этот U-ART к своему компьютеру. Когда я загрузил роутер, то обнаружил очень хорошую возможность для отладки роутера. Я покажу вам, что получил после того, как взломал роутер – это очень симпатичный краш-дамп со всеми регистрами и стеками, с указанием причины аварийной записи – «переполнение TLB». Вверху расположена строка EPS – указателя инструкций для микропроцессора MIPS. Как видите, она переписана мной, и это значит, что я контролирую роутер. Дальнейший анализ аварийного дампа позволил полностью выяснить причину уязвимости.
Итак, незащищённая strcpy позволяет полностью переписать EPC, который состоит из 584 шестнадцатиричных байт, удобно расположенных после имени пользователя, поэтому взломать роутер очень легко.
В этом заключается эксплойт №1:
Трудность такого способа взлома заключается в следующем:
Теоретически обойти эти проблемы можно, если попытаться внедрить shellcode через другую уязвимость утечки информации роутера. Давайте посмотрим, как это работает.
Так как у меня не было возможности полноценной отладки, я использовал вариант отладки для «нищих», используя примитивные возможности отладки, встроенные в сам RomPager, через последовательный порт. Это позволило пропатчить прошивку перед её загрузкой, что было достаточно удобно, но весьма утомительно.
После нескольких перезагрузок я нашёл скрытую функцию операционной системы ZyNOS, которая позволила добраться до памяти роутера через интернет. Это ZynOs Remote Debugger, или ZORDON. Эта функция позволяла создавать контрольные точки, просматривать и редактировать память, читать и переписывать регистры в режиме онлайн.
Давайте рассмотрим уязвимость №2.
Если помните, динамическое выделение памяти отсутствует, поэтому каждый входящий HTTP-запрос заполняет предварительно выделенную «структуру запроса».
RomPager 4.07 обрабатывает до 3 параллельных запросов (3 предварительно выделенные структуры).
При посылании 3-х последовательных запросов один из них может переписать HTTP структуру, которую мы видели ранее. Это также стало возможным из-за незащищённой strcpy, и мы снова захватили контроль над EPC.
Итак, в чём состоит эксплойт №2?
RomPager поддерживает «кукиз». Как вы помните, динамическое выделение памяти отсутствует, поэтому имеет место предварительное выделение памяти под каждый массив «кукиз» общим количеством 10 штук, каждая длиной по 40 байт. Имена «кукиз» постоянны – от С0, С1, С2 … С9. На следующем слайде показано, как выглядит С0.
Посмотрим, как RomPager «крадёт печеньки», то есть обрабатывает файл «кукиз». Вверху слайда видно, что сначала он проверяет имя «кукиз» с заглавной буквы в его начале. Если это так, он конвертирует остальную часть имени «кукиз» в целое число и использует его как индекс для массива «кукиз».
Далее он загружает его, умножая на s3, это будет индекс для 40, и использует его в пункте назначения strncpy.
Таким образом, уязвимость №3 заключается в следующем.
Выполняя произвольную запись в память относительно фиксированной точки во внутренней структуре управления RomPager, мы получаем контроль над всем, что делает RomPager. При этом дополнительным бонусом является возможность переполнить 32-х битное целочисленное значение с целью негативного воздействия на инфраструктуру.
Если мы посылаем любое «кукиз» вместо С0, С1 и так далее, то получаем такой ответ:
Этот приём срабатывает на любой модели роутеров любой марки, к которым мы получили легальный доступ. Таким образом, эксплойт №3 заключается в следующем: используя несколько волшебных «кукиз», добавленных к вашему запросу, вы обходите любую аутентификацию и просматриваете интерфейс конфигурации как администратор, через любой открытый порт.
Давайте посмотрим демонстрацию сказанного – у нас есть видеозапись наших действий. Запускаем интернет-браузер и в адресной строке вводим IP адрес нашего роутера и запрос на авторизацию. Если прописать в строке: 7547, то мы получим показанное ранее сообщение.
Поэтому мы используем «наш» плагин браузера Chrome, то есть встроенный нами эксплойт, его значок размещен правее адресной строки браузера (плагин называется «Завладей всеми этими штуками!»).
Щелкаем по значку, чтобы активировать этот плагин.
Проходит буквально секунда, и перед нами открывается окно настроек роутера TP-Link. Мы обошли процесс авторизации!
Далее можно опять щелкнуть по плагину, чтобы восстановить легальный режим.
Покажу вам ещё раз, как это работает: вводим в строку IP-адрес роутера 192.168.1.1, обновляем страницу при подключённом плагине…не получилось… пробуем ещё раз обновиться – готово! Мы зашли на страницу настроек роутера без всякого запроса аутентификации, окно ввода имени пользователя и пароля вообще не появлялось.
Ещё раз повторю: у нас сейчас подключён новый роутер от производителя, прямо из коробки, выпущенный в 2014 году, и он подвержен всё той же уязвимости, которую обнаружили и описали более 10 лет назад.
Вернёмся к нашей презентации. Мы разместили на этом слайде ссылку на сайт, где размещена информация по сути описанной нами проблемы.
На этой карте показано, какие страны затронуты этой уязвимостью. Это 189 стран по всему миру и свыше 52% всех IP-адресов.
Я знаю о чём вы сейчас подумали: нужно немедленно отказаться от использования порта 7547 на своих устройствах для выхода в Интернет. Но даже если попытаться в настройках роутера деактивировать функцию CWMP, порт 7547 всё равно останется открытым.
Противостоять этому можно следующим образом:
Рассмотрим, как проходит процесс производства роутеров.
Компания Allegro Soft поставляет RomPager производителю чипсетов, который отправляет их производителям роутеров ASUS, D-Link, Huawei, TP-Link, ZTE. Те приспосабливают ПО к различным моделям, вставляют в прошивку своё лого и продают готовые роутеры конечному пользователю оборудования.
Подумайте, как медленно происходит обновление системы безопасности в такой производственной цепочке.
Allegro Soft поставляет фиксированную версию RomPager производителю чипов, который должен включить его в SDK и передать производителю роутера. После этого нужно перекомпилировать прошивки для каждой линейки продуктов и каждой модели, а если ещё и выполнять регулярное обновление, то это станет настоящим кошмаром для производителя.
Именно в таком случае мы говорим: «Too many cooks do spoil the broth», то есть «У семи нянек дитя без глазу» (дословный перевод с английского: «Слишком много поваров портят бульон»).
Замечу, что большинство людей никогда не обновляют прошивку своих роутеров. Это одна из причин, почему подобные уязвимости не устраняются на протяжении месяцев или даже лет.
Рассмотрим вопрос сотрудничества с производителями. Мы связались с Allegro Soft и наиболее влиятельными производителями роутеров, представили им полное описание уязвимости и предложили неразрушающие «заплатки» операционной системы (POS) для её устранения. Несмотря на наш ломанный английский, большинство вняло нашим рекомендациям и выпустило обновления прошивки с учётом наших рекомендаций, например, компания Huawei.
Зато Allegro Soft ответили нам, что «мы не можем заставить производителей обновиться до последней версии», при том, что последнюю обновлённую версию они представили в 2005 году! Подумайте о том, что если обновление 2005 года до сих пор ещё не прошло по всей этой цепочке, то что-то с этим явно не в порядке.
А сейчас мы ответим на часто задаваемые вопросы:
Правда ли, что RomPager настолько плох?
— Нет, он очень удобен, надёжен и безопасен, если используется «заплатка», просто мы исследовали старую уязвимую версию прошивки, которая до сих пор чрезвычайно популярна во всём мире.
Возможно ли, что этот «чёрный ход» намеренно оставили открытым?
– Нет, на это непохоже.
Можете ли вы поделиться свои эксплойтом?
Можете ли вы сказать, какие IP-адреса подвержены уязвимости по этой причине в моей стране?
– Просканируйте порты 80 и 7547 и пользовательские порты ISP TR-069, используемые для запроса соединения, так как в разных странах по умолчанию могут использоваться разные порты.
Вывод: мы обнаружили очень серьёзную уязвимость IPv4, четвёртой версии протокола IP, которая на сегодняшний является основной и обслуживает большую часть сети Интернет.
Производители роутеров, вы обязаны это исправить!
Благодарю вас за внимание, теперь мы готовы ответить на ваши вопросы.
— Я увидел в вашем списке роутер D-Link GSL 320, он использует ОС на основе Linux, можете ли вы сказать, что он соответствует современным требованиям безопасности?
— Мы не знаем особенностей каждого устройства, представленного в нашем списке, потому что у нас не было доступа к каждому устройству из списка, и мы не ставили перед собой задачу проверить каждый роутер, обеспечивающий связь с Интернетом, но мы можем поговорить об этом роутере позже, если вы представите нам детальную информацию.
— Когда вы опубликовали список уязвимого оборудования, то посоветовали использовать в качестве защиты межсетевой экран ZoneAlarm. Вы можете посоветовать, как мне защитить свой компьютер, не устанавливая персональный файервол?
— Это совсем другой способ, нежели тот, о котором мы здесь говорили, и возможно, мы поговорим о нём позже.
— Проверяли ли вы кабельные модемы, потому что по крайней мере в Германии, мы используем модемы, представленные нашими провайдерами, это специальные модели, эксплойты для которых очень хорошо известны, и над ними также легоко можно захватить контроль? Я интересуюсь потому, что не могу отказаться от использования именно этого ISP.
— Мы не пытались классифицировать кабельные или DSL модемы, но если ваша модель имеется в списке потенциально уязвимого оборудования, для меня не составит особого труда её протестировать.
Мы не можем знать, какие именно устройства в каких странах обладают уязвимостью, поэтому мы публикуем наши исследования в надежде оказать давление на производителей, чтобы они исправили эти проблемы так быстро, как это только возможно. Поэтому мы просим – если вы обнаружили уязвимость, сообщайте об этом вашему провайдеру, потому что это очень важный аспект вашей безопасности.
— Может вам стоит попытаться использовать gSOAP для решения проблемы?
— Мы никогда не использовали этот SDK, потому что это совершенно другое направление исследований, однако любой интересующийся может использовать его для такого случая.
— Можно ли использовать ваш эксплойт для того, чтобы взломать роутер и поменять прошивку?
— Можно ли избавиться от уязвимости, заблокировав использование порта 7547?
— Если вам каким-то волшебным способом удастся заблокировать этот порт, то вы лишите свой роутер важных функций, которые обеспечивает провайдер интернета, в том числе получение IP, и можете вообще потерять доступ в WAN. Однако если использовать этот порт для получения IP в локальной сети LAN, а для выхода в Интернет пользоваться другим портом, то уязвимости можно избежать. И некоторые провайдеры Интернета предоставляют такую возможность своим клиентам.
— Могу ли я избавиться от уязвимости, если сразу после того, как вытащу роутер из коробки и подсоединю к сети, ACS назначит ему другой порт по умолчанию?
— Возможно, поэтому мы советуем провайдером именно так и поступать, во всяком случае, это обезопасит вас от атаки хакеров, которые сканируют весь Интернет в поисках открытых по умолчанию портов.
— Избавлены ли последние версии прошивки от этой уязвимости?
— Да, многие производители учли эту проблему и предусмотрели защиту от неё.