D link 620 прошивка: Прошивка роутера D-link DIR-620 A1 на OpenWRT

Содержание

Обновление Прошивки d Link Dir 620… D-link dpn-r5402

На странице Расширенные настройки; выберите Сеть; ⇒WAN;. Некоторым пользователям не подходит Click n Connect по причине того, что требуется самостоятельно задать дополнительные параметры, отсутствующие в этом инструменте. Думал изначально, что это из-за провайдера, провайдер свои косяки исправил, помимо цены, по проводу нормальная сеть, по вайфаю.

Для того, что бы попасть в веб-интерфейс роутера, необходимо открыть ваш Интернет браузер и в строке адреса набрать 192. 168.0.1, Имя пользователяadmin , Парольadmin (при условии, что роутер имеет заводские настройки, и его IP не менялся).

Скачиваем прошивку для DIR-620

Важно! У роутера D-Link Dir-620 есть несколько модификаций. Если вы неправильно выберете прошивку для вашего устройства, скорее всего это приведет к его неремонтнопригодности в домашних условиях. Внимательно ознакомьтесь с информацией о том, как правильно выбрать прошивку.

Читайте также: Как использовать ноутбук в качестве монитора? Как подключить системный блок к ноутбуку в качестве монитора?

Итак, у каждого роутера DIR-620 имеется наклейка с тыльной стороны. На ней, помимо прочего, имеется информация о аппаратной ревизии роутера. Она отображается в строке H/W (Hardware). В данном случае ревизия роутера A1.

После этого заходим на официальный сайт D-Link и скачиваем прошивку, которая соответствует нашей модификации роутера DIR-620.

Заходим в папку с названием своей ревизии роутера, в данном случае A1

Так, прошивка у нас есть. Приступаем непосредственно к прошивке устройства.

Прошивка D-Link DIR-620

  • роутер включен в розетку
  • роутер соединен кабелем с сетевой картой компьютера
  • сетевая карта компьютера настроена на автоматическое получение ip-адреса
  • желательно отключить USB-устройства и Wi-fi клиентов от роутера

Открываем веб-интерфейс роутера по адресу 192. 168.0.1. Логин/пароль : admin/admin. В зависимости от ревизии и версии прошивки роутера интерфейс может отличаться. Вот примеры того, как может выглядеть административная панель роутера.

Процесс прошивки немного отличается в зависимости от интерфейса.

В меню слева выбираете “Система”, потом “Обновление ПО”

Выбираете “Настроить вручную” – потом “Система” (вкладка вверху) – далее “Обновление ПО”

Выбираете “Расширенные настройки” (ссылка внизу) – у пункта “Система” нажать двойную стрелочку вправо- “Обновление ПО”

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

Также можете ознакомиться со статьей “Прошивка D-link Dir-300”. В ней несколько подробно освещены некоторые общие моменты прошивки и проблемы, возникающие в процессе. Удачи, хорошего дня

Настройка роутера D-Link DIR-620

Сейчас сижу с LTEшки, спасибо хоть теле2 нормальную связь дают, а не как производитель этого роутера
Пользовался почти 5 лет, думал это норма для вафли. Поспрашивал у друзей, теперь вот ищу новый

Мнение эксперта

Логинов Александр Евгеньевич, специалист по вопросам мобильной связи и интернета

Если у вас что-то не получается освоить самостоятельно, задавайте вопросы мне!

Задать вопрос эксперту

Но даже если что-то скачается, по сети на свой компьютер это не слить, скорость будет около 2 мб с и роутер, опять же, зависнет. Если вам нужна дополнительная консультация, пишите мне!

Роутер D- link 620: подключение, выбор установок, их сброс на заводские

  1. Первым делом соединим ваш компьютер и роутер кабелем Ethernet, входящим в комплект поставки. Один конец провода воткнем в разъем сетевой карты ПК, другой – в один из четырех портов LAN на задней панели (порты выделены синим цветом).
  2. Далее подключим к разъему с маркировкой «INTERNET» кабель от интернет-провайдера или ADSL-модем. Также роутер предусматривает возможность подключения к сети через USB-модемы форматов WiMAX, 3G GSM или CDMA. Если вы планируете использовать такой способ соединения с интернетом, вставьте модем в USB-порт на передней панели роутера.
  3. Теперь самое время подключить маршрутизатор к сети питания, для чего втыкаем штекер адаптера в специальное гнездо 5В/2.5А на задней панели, а вилку – в розетку.

Скачивание и установка прошивки

Забрать промокоды: — 25 % в МТС

В линейке вышеупомянутых маршрутизаторов имеется три аппаратных версии – A, C и D. В данном руководстве будет рассмотрена ревизия D. Чтобы избежать описания процесса в интерфейсах разных прошивок лучше сразу установить наиболее свежую.

◾ Связь в Москве ◾ Связь в Чите ◾ Как звонить по безлимиту ◾ Домашний интернет ◾ Официальные сайты ◾ Мобильные приложения ◾ Пополнение счета

Скачивание прошивки

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

В открывшемся каталоге может присутствовать несколько версий ПО. Выбираем самую новую.

Далее необходимо кликнуть по файлу с расширением bin, браузер предложит его сохранить или скачает автоматически (зависит от настроек).

Дальнейшие действия невозможны без входа в интерфейс управления точкой доступа. Описание этого процесса читаем далее.

Подготовка ПК

Чтобы корректно подключить компьютер или ноутбук к маршрутизатору нужно правильно сконфигурировать сетевую карту в системе Windows. Сначала понадобится зайти в сетевые настройки ОС. Для этого есть два способа: один через интерфейс операционной системы, другой через командную строку.

Вариант с командной строкой несколько быстрее и подходит практически для всех версий ОС, потому что он практически не привязан к ее интерфейсу.

Нажимаем комбинацию на клавиатуре windows + R. Откроется окно ввода команды, которую пишем в текстовое поле.

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

В следующем окне устанавливаем переключатели в положение автоматического определения адресов.

Здесь можно перечислить очень много.
Основные недостатки это «кривые» прошивки. Видимо все деньги ушли на производства этого чуда в Китае:-))) Мы ничего не скрываем и размещаем все положительные и отрицательные честные отзывы покупателей о D-link DIR-620, а также предлагаем альтернативные товары аналоги. Со страницы расширенных настроек заходим во вкладку Wi-Fi , выбираем пункт Основные настройки ; и устанавливаем желаемое имя беспроводной точки доступа SSID.

адрес 10.10.10.3.
маска 255.255.255.0
шлюз 10.10.10.123

Подключаем роутер витопарным кабелем к разъёму этой сетевой карты в порт 1.
Может определиться, как неизвестная или общественная сеть, не обращайте внимание.
Подключаем в гнездо USB-UART переходник, открываем диспетчер устройств и смотрим, какой COM-port ему присвоился.

У меня он определился, как 4-й. Запоминаем его, он нам пригодится.

Теперь нам надо поколдовать изнутри над программой загрузки маршрутизатора, чтобы он загрузился с этого TFTP сервера.
Запускаем программу Terminal.
Не пугайтесь, что на первый взгляд много всего.
Нам понадобится настроить port: COM4 (ну или какой у вас там покажет), Baud rate: 57600 и нажать Connect.

Не забудьте – в программе работает только английская раскладка клавиатуры.
Обесточьте роутер секунд на 15, включите его заново, в окне терминала побегут буковки лога:

Пишем Y затем жмем ENTER

Пишем имя прошивки: 1.bin и жмем ENTER

Ждём пока, не закончится процесс.
Видим, что огоньки опять загорелись, всё настроено отлично!))

Меняем адреса сетевой карты на те, которые были перед реанимацией роутера.

Ну тогда ещё последний штрих к портрету: на проц в DIR-620 желательно устанавливать радиатор. Он там греется сильно, а охлаждения никакого, возможны глюки.
Садим на термоклей и вуаля!

Огромное спасибо Felix ([email protected]) за эксперименты, фото и за дополнение статьи!

Мнение эксперта

Логинов Александр Евгеньевич, специалист по вопросам мобильной связи и интернета

Если у вас что-то не получается освоить самостоятельно, задавайте вопросы мне!

Задать вопрос эксперту

Сейчас сижу с LTEшки, спасибо хоть теле2 нормальную связь дают, а не как производитель этого роутера Пользовался почти 5 лет, думал это норма для вафли. Если вам нужна дополнительная консультация, пишите мне!

Отзывы D-link DIR-620 | Оборудование Wi-Fi и Bluetooth D-link | Подробные характеристики, Видео обзоры, Отзывы покупателей

Содержание статьи:

  • 1 Настройка Wi-Fi роутера Dir-620 с ревизией C1 версия прошивки 1.0.0.
    • 1.1 Роутер D- link 620: подключение, выбор установок, их сброс на заводские
    • 1.2 Скачивание и установка прошивки
  • 2 Восстановление DIR-620 после неудачной прошивки
    • 2.1 Отзывы D-link DIR-620 | Оборудование Wi-Fi и Bluetooth D-link | Подробные характеристики, Видео обзоры, Отзывы покупателей

Чтобы прокомментировать или ответить, прокрутите страницу вниз ⤓

Оцените, пожалуйста, публикацию:

Загрузка…

3G WiFi роутер D-Link Dir-620 (специальная 3G-Linux прошивка)

Способ доставкиАдресСтоимость доставки
Почтовое отделениеВ любое отделение Новой Почтыпо текущим тарифам «Новой Почты»
Доставка к дверямВ любую точку Украиныпо текущим тарифам «Новой Почты»

Выбирая любой из способов доставки, вы имеете право проверить заказ на работоспособность и комплекцию, перед тем, как его оплатить.

Доставка

Самовывоз из магазина

Вы можете получить Ваш заказ по адресу г. Киев, проспект Петра Григоренка, 22/20. Предварительно инженер подготовит и проверит 4G/3G оборудование. Вы получите полностью готовое к работе решение для Ваших задач.

В любом отделении «Новой Почты»

Заказ будет доставлен в удобное для Вас отделение компании Новая Почта. Перед оплатой заказа Вы можете осмотреть содержимое на целостность и комплектацию.

Установка мастером

Закажите услугу «Установка мастером» и Вы получаете возможность проверить всех 4G/3G операторов у вас дома или в офисе с целью выбрать лучшего по скорости и стабильность интернета. Мастер установит оборудование и подключить интернет на всех Ваших устройствах (ноутбук, телефон, планшет, стационарный компьютер).

Оплата

Оплата наличными

Вы оплачиваете заказ только после его получения в отделении компании “Новая Почта”, в фирменном магазине или курьерской доставкой от компании “Новая Почта”. Перед оплатой вы имеете право осмотреть и проверить заказ.

Оплата банковской картой (Visa/Master Card)

Вы можете оплатить банковской картой Visa/Master Card, например, картой Приват банка. Доставка осуществляется согласно тарифов Новой Почты за счет клиента.

Оплата на банковский счет для физических лиц

Вы можете оплатить заказ с помощью банковского перевода на наши реквизиты. Отправка заказа осуществляется в день поступления денежных средств на наш расчетный счет. Доставка осуществляется согласно тарифов Новой Почты за счет клиента.

Безналичный расчет для юридических лиц

Если вы — юридическое лицо, мы предоставим все необходимые закрывающие документы.

Купить в кредит

Оформление кредита сроком от 2 до 24 месяцев через «ПриватБанк» или «Кредит Маркет».

Беспроцентный кредит

Услуга «Оплата частями» позволяет оформить беспроцентный кредит на срок до 3 месяцев для владельцев кредитных карт ПриватБанк.

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

Узнать подробнее об условиях доставки и оплаты

Базовая комплектация

Вы получаете:
  • Устройство
  • 14 дней гарантии
  • Без настройки и поддержки

Установка и настройка с инженером

Вы получаете:
  • Полностью настроенное и готовое к работе устройство
  • Услугу “Удаленной установки и настройки с инженером”
  • 1 год гарантии

Расширенная гарантия + Настройка с инженером

Вы получаете:
  • Полностью настроенное и готовое к работе устройство
  • Услугу “Удаленной установки и настройки с инженером”
  • 2 года гарантии
  • Антенна в подарок

Эмуляция прошивки и взлом оборудования

GreyNoise обычно не нуждается в подробном анализе прошивки. Если это происходит в Интернете, мы это уже видим. Однако, когда нам нужно исследовать уязвимости во встроенных устройствах, все может очень быстро усложниться, если информация не будет общедоступной. Изучение этих навыков может быть интересным и познавательным в тех редких случаях, когда они нам нужны.

В конце октября 2022 года нам стало известно о CVE-2022-41140, уязвимости переполнения буфера и удаленного выполнения кода в маршрутизаторах D-Link, о которой D-Link было сообщено 17 февраля. Принимая во внимание многомесячный срок выполнения работ, мы решили, что это хороший шанс для обучения и открытий.

13 марта 2023 г. нам стало известно о CVE-2023-24762, уязвимости внедрения команд в устройствах D-Link DIR-867. Этот недавний CVE побудил нас поделиться частью нашей внутренней документации, касающейся всплеска исследований устройств D-Link.

В этом блоге рассказывается о том, как закрепиться во встроенном ПО или физическом устройстве для исследования уязвимостей и создания отлаживаемого интерфейса. Хотя в этом документе используется существующий код Proof-Of-Concept для (еще одной) уязвимости D-Link CVE-2022-1262, а также четкие намеки на подозрительные области кода, не ожидайте найти какие-либо новые готовые к использованию. -fire подвиги похоронены в содержании ниже.

Какая уязвимость?

Компания D-Link была уведомлена о CVE-2022-41140, уязвимости переполнения буфера, 17 февраля 2022 г. К 15 ноября 2022 г. дополнительная информация не была доступна, что вызвало расследование с целью обнаружения доступных подсказок о природе уязвимость. Хотя это точно говорит о текущем состоянии общедоступного отслеживания уязвимостей, мы начинаем наше расследование с простого поиска в Google CVE и находим две соответствующие ссылки:

  1. https://www.zerodayinitiative.com/advisories/ZDI-CAN-13796/‍
  2. https://supportannouncement.us.dlink.com/announcement/publication.aspx?name=SAP10291

Инициатива Zero Day перечисляет уязвимость как уязвимость

(…) в службе lighttpd, которая по умолчанию прослушивает TCP-порт 80. Проблема возникает из-за отсутствия надлежащей проверки длины пользовательских данных перед их копированием в стековый буфер фиксированной длины.

страница технической поддержки D-Link содержит более подробную информацию

(…) сторонняя исследовательская группа сообщила об уязвимостях переполнения буфера и RCE в программной библиотеке Lighttpd, используемой в DIR-867, DIR-878 и DIR-882/ Прошивка роутера DIR-882-US.

Переполнение буфера стека в двоичном файле prog.cgi в D-Link DIR-867. Созданный HTTP-запрос может привести к тому, что программа будет использовать функцию strcat() для создания слишком длинной строки в буфере стека размером 512 байт. Для использования этой уязвимости не требуется аутентификация.

Кроме того, на странице поддержки D-Link представлена ​​таблица затронутых моделей. 6

DIR-867 v1.30B07 и ниже В разработке 04.03.2022 ДИР-878 v1.30B08-Исправление и ниже v1. 30b08_Beta_Hotfix 01.04.2022 DIR-882-US v1.30B06-Исправление и ниже В разработке 04.03.2022

Из этой информации мы можем сделать вывод, что уязвимость активируется HTTP-запросом к TCP-порту 80, который попадает в службу lighttpd и направляется к двоичному файлу prog.cgi, что приводит к переполнению на 512 -байтовый буфер стека.

Мы также можем сделать вывод, что уязвимость может быть исправлена/устранена на некоторых моделях оборудования, но не на других.

Как активировать уязвимость?

Страницы поддержки D-Link содержат ссылки для загрузки образов встроенного ПО для DIR-878, включая базовые версии встроенного ПО, такие как v1.30B08, а также версии встроенного ПО с рекомендациями по безопасности, такие как v1.30B08 Hotfix_04b.

Зная, что мы можем получить доступ к образам прошивки до/после исправления безопасности для CVE-2022-41140, мы попытаемся выполнить следующие шаги:

Получить копии prog. cgi

Начнем с загрузки известной уязвимой версии прошивки для модели, которая также предлагает пропатченную версию. Качаем DIR-878_REVA_FIRMWARE_v1.30B08.zip и извлекаем образ прошивки DIR_878_FW1.30B08.bin.

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

Затем мы используем более специализированный инструмент, binwalk, который помогает в поиске двоичных образов встроенных файлов и исполняемого кода. Опять же, это не дает никаких результатов.

Удобной функцией binwalk являются флаги командной строки -E , —entropy , которые позволяют измерять энтропию или «случайность» файла.

В качестве примера, вот энтропийный граф 1024 байт Lorem ipsum:

А вот и график энтропии DIR_878_FW1.30B08.bin

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

Если вы считаете, что файл зашифрован, всегда полезно взглянуть на байты в начале файла, на случай, если есть идентифицируемый заголовок файла:

В начале файла находится 4-байтовая последовательность, которая соответствует символам ASCII «SHRS».

Быстрый поиск в Google по запросу «прошивка SHRS» дает релевантные результаты, указывающие на то, что мы на правильном пути.

  1. https://github.com/0xricksanchez/dlink-decrypt/blob/master/dlink-dec.py‍
  2. https://0x00sec.org/t/breaking-the-d-link-dir3060-firmware- шифрование-рекон-часть-1/21943‍
  3. https://0x00sec.org/t/breaking-the-d-link-dir3060-firmware-encryption-static-analysis-of-the-decryption-routine-part-2 -1/22099

Немного почитав, мы можем определить, что D-Link действительно шифрует некоторые из своих прошивок, что идентифицируется по заголовку «SHRS». Блоги, указанные выше, подробно рассказывают о том, как они получили копию двоичного файла imgdecrypt и перепроектировали двоичный файл, чтобы определить, как расшифровать прошивку и создать соответствующий скрипт Python.

Поскольку позже в этом блоге мы снова будем иметь дело с шифрованием, мы не будем углубляться в этот конкретный уровень шифрования. Нашу прошивку можно расшифровать с помощью:

Взяв нашу расшифрованную прошивку и снова пропустив ее через binwalk, мы видим, что некоторые сигнатуры файлов распознаются.

Поскольку сигнатуры файлов были распознаны, мы можем рекурсивно извлечь их, используя -e , —extract , и -M , —матрешка , 90 012 командная строка флаги.

Это создает вложенные папки для каждого извлеченного слоя файла, что в конечном итоге приводит к созданию папки cpio-root, содержащей корневую файловую систему прошивки.

Нужный файл prog.cgi расположен именно там, где его ожидают те, кто знаком со структурой каталогов *nix. Однако для полноты файл можно найти по имени, используя:

Теперь у нас есть копия всей корневой файловой системы, включая prog.cgi.

Повторение тех же шагов на исправленной прошивке настраивает нас на следующий шаг.

Patch Diffing

На предыдущем шаге мы получили непропатченную и пропатченную копию prog.cgi. Мы переименуем их в prog_old.cgi и prog_new.cgi соответственно, чтобы их было проще отслеживать.

BinDiff — это инструмент сравнения двоичных файлов, который помогает исследователям уязвимостей и инженерам быстро находить различия и сходства в дизассемблированном коде. Есть примерно сопоставимые бесплатные альтернативы и плагины, такие как Ghidra.

Следуя соответствующим шагам плагина для создания привязки, мы открываем старый/новый и начинаем искать функции, которые очень похожи, но не 1.00, указывая на то, что могло быть выполнено небольшое изменение, такое как патч.

Использование strcat()

Используя наш список похожих (но не точных дубликатов!) функций, мы спускаемся вниз по списку, ища варианты использования strcat(), которые изменились между старым и новым. В этом примере основная функция:

Старый

Новый

Здесь мы видим, что старый двоичный файл использовал strcat(), а новый двоичный файл имеет другой набор логики.

Функция strcat() объединяет строку назначения и строку источника, и результат сохраняется в строке назначения.

Быстрая проверка адресата var_20c показывает, что его размер равен 0x200, или 512 байт. Для проверки работоспособности мы можем перечислить все случаи использования strcat() в двоичном файле.

Есть 22 варианта использования strcat(). После их просмотра никто, кроме использования в main, не работает с 512-байтовым буфером.

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

Отладка с помощью эмуляции

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

Мы хотим запустить необходимые компоненты и прикрепить интерфейс отладки к работающей программе.

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

Использование QEMU — это простой способ запуска двоичных файлов для других архитектур, но с той же операционной системой, что и текущая. В этом случае нам нужен qemu-mipsel-static, который предоставляется из пакета qemu-user-static.

Однако нам нужно знать , что запускать.

Существуют сценарии инициализации, которые запускаются при загрузке системы, и мы можем найти соответствующий сценарий в /etc_ro/rcS:

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

  1. Файловые системы монтируются
  2. Папка /var/run создается, если она не существует
  3. Запускается скрипт для создания ссылок на устройства (/dev)
  4. Сообщение дня (motd) записывается на устройство консоль
  5. В фоновом режиме запускается двоичный файл для управления чтением/записью в энергонезависимую оперативную память (nvram)
  6. Запускается двоичный файл init_system с командой start
  7. Запускается демон telnet

/var/log создается папка, если она не существует

Понимание функциональности бинарника init_system элементарно:

Если запущен init_system start, он проверяет наличие /var/run/nvramd.pid. Если файл pid не найден, он входит в цикл печати lighttpd: ждет nvram_daemon. Если файл pid найден, он разветвляется на следующую логику.

nvram инициализируется, затем закрывается. sub_400e50 запускает несколько двоичных файлов .cgi из /etc_ro/lighttpd/www/cgi-bin/, и, наконец, веб-сервер lighttpd запускается с:

Используя комбинацию chroot и qemu-mipsel-static, мы можем запустить минимально и напрямую веб-служба lighttpd выглядит следующим образом:

Это приводит к ошибке:

(network. c.747) SSL: закрытый ключ не соответствует открытому ключу сертификата, причина: ошибка: 02001002: системная библиотека: fopen: нет таких файл или каталог /var/private/lighttpd.pem

Просто закомментировав строки, относящиеся к SSL, в файле конфигурации /etc_ro/lighttpd/lighttpd.conf, мы можем просто запустить веб-службу исключительно в режиме HTTP и обойти ошибку.

При дальнейшем просмотре конфигурации мы видим, что веб-служба lighttpd работает в режиме fastcgi, а HTTP-запросы к пути /HNAP1/ направляются для обработки prog.cgi.

Если мы перейдем к нашей эмулируемой системе в веб-браузере, мы увидим, что страница загружена, и многочисленные ресурсы пользовательского интерфейса загружаются успешно, но страница пуста из-за искаженного XML-ответа от конечной точки /HNAP1.

Основной причиной искаженного XML-ответа является то, что значения по умолчанию для nvram не установлены. Я потратил много времени, пытаясь исправить это с помощью трюков LD_PRELOAD, и в конце концов в разочаровании заказал физическую модель DIR-867 (гарантированно уязвимая, патча нет).

К моменту доставки физического маршрутизатора у меня был в основном рабочий прокси для вызовов функций из libnvram-0.9.28.so, и в этот момент я вспомнил, что уязвимость была Pre-Authentication. Я пытался исправить то, что было частью процесса входа в систему, что, как мне казалось, было необходимо.

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

Для наших целей этого достаточно, чтобы работать и двигаться вперед. Присоединение отладчика путем вызова prog.cgi в QEMU с флагом -g запускает соединение GDB через порт 1234.

Отладка с физическим устройством

Как указывалось ранее, я приобрел подержанный маршрутизатор DIR-867 физической модели, который гарантированно уязвим, так как патчей нет.

Открыв коробку, я начал процесс установки и установил пароль администратора устройства Password1, а обновления установил «вручную».

После выполнения шагов настройки роутер перезагружается.

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

Теперь, когда маршрутизатор настроен в самом базовом состоянии, я быстро сканирую открытые порты.

К моему большому огорчению, нет результата 23/tcp open telnet, несмотря на то, что служба telnetd появляется в сценариях инициализации /etc_ro/rcS, которые я обнаружил во время эмуляции. Мне нужно найти другой способ получить интерактивный интерфейс на маршрутизаторе для запуска отладчика.

В этот момент физически открыть маршрутизатор и попытаться найти интерфейс UART, вероятно, будет самым быстрым путем к успеху. Однако, поскольку я особо не торопился, я решил попытаться выяснить, как просто повторно включить интерфейс telnet, поскольку из распаковки прошивки я знаю, что бинарный файл telnetd уже существует в прошивке.

Запуск рекурсивной команды grep на нашей извлеченной прошивке показывает, что «telnet» появляется во многих двоичных файлах, а также в заводских настройках и настройках по умолчанию, поставляемых с устройством.

Обратите внимание на telnetEnabled=0. Это, вероятно, объясняет, почему telnet не работает. Это также, кажется, указывает на то, что это настройка.

Ранее ковыряясь в поисках командной инъекции, я нашел меню «Система», которое позволяет экспортировать/импортировать настройки. Если нам повезет, telnetEnabled — это скрытая настройка, которую мы можем просто включить и повторно импортировать.

Нажатие «Сохранить настройки на локальный жесткий диск» приводит к загрузке файла config.bin размером 5,9 КБ.

Мы используем binwalk для проверки известных форматов файлов.

Похоже у нас есть шапка прошивки SEAMA и конфиг зашифрован. Опять же, мы обращаемся к Google и ищем начальные байты файла 0x5EA3A417, который возвращает очень полезный заголовочный файл C, определяющий структуру файла SEAMA.

  • https://github.com/jtreml/firmware-mod-kit/blob/master/src/firmware-tools/seama.h#L29

В той же папке на GitHub есть соответствующий файл .c для инструмента командной строки для распаковки файла SEAMA, но быстрый просмотр не показывает использования OpenSSL. Это, вероятно, означает, что D-Link выполняет некоторый дополнительный уровень шифрования поверх SEAMA, и нам лучше провести дополнительный статический анализ самой прошивки и использовать репозиторий GitHub для самостоятельной проверки работоспособности.

При повторном открытии prog.cgi в Binary Ninja и поиске использования строки «config.bin» мы видим, что она используется в одном разделе кода в sub_42ad78.

Присмотревшись к sub_42ad78, мы видим следующую блок-схему:

На высоком уровне:

  1. /tmp/config_2g и /tmp/config_5g записываются в файл манифеста /tmp/sysupgrade.conffiles
  2. Конфигурация файлы помещаются в архив .tar.gz с помощью tar czf «-» -T /tmp/sysupgrade. conffiles 2>/dev/null > /var/backup_tmp.tar.gz
  3. sub_42b2f4 считывает имя модели и версию hw из nvram и возвращает строка «_»
  4. Файл /var/backup_tmp.tar.gz из шага 2 передается с помощью команды mkconfig
  5. Полученный файл возвращается для загрузки конечным пользователем

Присмотримся к вызову с помощью mkconfig:

snprintf(&var_14c, 0x100, «mkconfig -a enca -m %s -i %s -o %s», &var_18c, «/var/backup_tmp.tar.gz», «/var/backup.tar.gz», 0x4f1530)

Это приводит к тому, что &var_14c содержит mkconfig -a enca -m DIR-867_A1 -i /var/backup_tmp.tar.gz -o /var/backup.tar.gz

Теперь, когда мы знаем, какая команда запускается для создания зашифрованного config.bin, мы взглянем на /bin/mkconfig, чтобы определить, что делают эти флаги. Мы можем просто запустить его в QEMU без каких-либо аргументов, чтобы просмотреть справочное сообщение.

Как указано в описании, он может инкапсулировать или деинкапсулировать конфигурацию. Однако неясно, где в игру вступает предполагаемое наличие шифрования. Разумное предположение, основанное на просмотре доступных флагов, указывает на то, что флаг -m может использоваться в какой-то функции вывода ключа. Помните, что флаг -m — это имя модели и версия hw. Если модель и версия аппаратного обеспечения используются для функции получения ключа, это предотвратит загрузку конфигурации с другой модели маршрутизатора D-Link и потенциальную поломку устройства.

Мы можем подтвердить это, взглянув на функцию enca mkconfig в Binary Ninja:

Действительно, мы видим использование openssl, а также новый, но вполне ожидаемый бинарный файл.

В первой соответствующей части потока программы флаг -m (DIR-867_A1) используется в sub_400e30

Затем логика входит в цикл, который записывает хэш MD5 в виде шестнадцатеричной строки в &buffer

Команда OpenSSL следующим образом:

Если бы мы предпочли не разбирать функцию, чтобы выяснить, как был сгенерирован ключ шифрования, мы могли бы просто добавить флаг -E «QEMU_STRACE=1» при запуске mkconfig, и полученный ключ отобразился бы в вывод страйса.

Команда:

qemu-mipsel-static -E «QEMU_STRACE=1» /bin/sh -c «mkconfig -a de-enca -m DIR-867_A1 -i config.bin -o config.dec»

Strace вывод:

39 execve(«/bin/sh»,{«sh»,»-c»,»openssl enc -e -aes-256-ecb -k 81F9A6E40BDEC26DB67FE53A555D0E8E -in config.dec -out config.dec.enc >/dev/null 2>&1″,NULL})

Как и ожидалось, 81F9A6E40BDEC26DB67FE53A555D0E8E представляет собой шестнадцатеричное строковое представление хэша MD5 «DIR-867_A1».

Зная, что это правда, мы можем написать простой сценарий оболочки, чтобы воссоздать эту логику и исправить поддержку Telnet:

  1. Используйте MkConfig для de-encapsulate (распаковывать прошивку Seama, Decrypt Image)
  2. Извлечение Gzip’d Tar Archive
  3. Заменить telnetenabled = 0 с помощью TelnetEnabled = 1 в /tmp /config_2g
  4. write /tmp /config_2g и config_2g
  5. . tmp/config_5g в манифест
  6. Tar и Gzip файлы в манифесте
  7. Используйте kconfig для инкапсуляции (зашифровать образ, упаковать SEAMA)

Результатом будет telnetpatched. bin, который должен быть действительным файлом настроек для загрузки и включить телнет.

Действительно, другое сканирование nmap показывает желаемые результаты открытого порта telnet.

К сожалению, при попытке подключения у нас моментально запрашивается аутентификация.

После быстрого просмотра разборки prog.cgi мы видим, что для пароля установлено значение, которое мы предоставили изначально, Password1 + @twsz2018

Предположение, что имя пользователя admin, позволяет нам успешно войти в систему с пароль Password1@twsz2018

Несмотря на то, что мы успешно вошли в систему через telnet, мы попадаем в ограниченную оболочку с ограниченным количеством доступных для запуска команд. Мы не можем напрямую использовать эту оболочку для загрузки сервера gdb и присоединения его к prog.cgi.

Здесь мы немного схитрим и воспользуемся CVE-2022-1262, уязвимостью внедрения команд в бинарном файле протеста, которая доступна нам в ограниченной оболочке. Используя эксплойт Proof-Of-Concept, включенный в эту статью от Tenable, мы создаем еще один экземпляр telnetd, работающий на порту 1337 и работающий от имени пользователя root.

Отсюда мы можем получить подсказку о версии заголовков Linux, с которой была собрана прошивка, выполнив:

Наконец, мы можем сами кросс-компилировать сервер mips32el uclibc GDB с заголовками Linux 3.10.14+, используя что-то например, crosstool-NG … или мы можем загрузить готовый набор инструментов, соответствующий нашим критериям, с https://toolchains.bootlin.com/

Это позволяет нам перенести сервер gdb в /tmp на физическом маршрутизаторе и подключить gdb к prog.cgi для удаленной отладки.

Заключение

Изучение того, как получить отлаживаемый интерфейс как с эмулированными, так и с реальными устройствами D-Link, является ценным навыком для всех, кто интересуется исследованием уязвимостей и сетевой безопасностью. Используя эмулированные устройства, вы можете экспериментировать и тестировать в безопасной среде, прежде чем пытаться внести изменения в реальное оборудование. Возможность отладки реальных устройств может помочь вам выявить и устранить проблемы, а также определить, как прошивка работает «в реальном мире». Хотя поначалу это может показаться пугающим, с правильными инструментами и ресурсами каждый может освоить эти навыки. Обладая этими знаниями, вы сможете лучше понять сетевую безопасность и разработку устройств, а также применить эти концепции в будущих проектах, таких как написание сетевых сигнатур для вредоносного трафика.

Теги GreyNoise для внедрения команд CVE-2023-24762 и переполнения буфера на основе стека CVE-2022-41140 активны и доступны всем пользователям для отслеживания связанных действий:

  • D-Link CVE-2023-24762 RCE Попытка
  • D-Link CVE-2022-41140 RCE Попытка

Не удается найти более новую прошивку DIR-400 маршрутизатора DLINK

спросил

Изменено
6 лет, 10 месяцев назад

Просмотрено
3к раз

Если вы здесь, значит у вас тоже есть роутер Dlink 400.

Я спросил DLINK, но они не ответили на мой вопрос. Я снова обратился в службу поддержки DLINK, но на этот раз без ответа (через 2 недели).

На FTP-сайте DLINK отсутствует прошивка для DIR-400.

В прошлом году гуглил по России, нашел FIRMWARE_DIR400_v1.02B03.bin.

Но я пытаюсь выяснить, есть ли какое-либо обновление , версия 1.03 или выше.

Кто-нибудь может сказать мне, почему DLINK не показывает это обновление прошивки на своем сайте, и совместим ли этот DIR-450 с моим?

  • беспроводной маршрутизатор
  • прошивка

Вот самый новый драйвер 1.03 (2009 год)

http://ftp.dlink.ru/pub/Router/DIR-400/Firmware/release_note.txt 900 03

Смешной, Я не могу найти его на сайте США и на сайтах Латинской Америки.

2

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