Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2023-27216 — Подход новичка к взлому прошивки | Kitploit
Инструменты/GitHubGitHub/hoangrealer/cve-2023-27216
Безопасность встроенных системБезопасность IoTАнализ уязвимостейОбратная инженерияОтладчикиАппаратный ХакингОбучение и ОбразованиеАнализ ПрошивокЭксплуатация Бинарных Файлов
GitHubhoangrealer/cve-2023-27216

CVE-2023-27216

Подход новичка к взлому прошивки

3172 лет назадЕщё не проверено

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

CVE-2023-27216 - Маршрутизатор DLink

Этот документ — мой личный опыт как новичка в реверс-инжиниринге и эксплуатации прошивок. Прошивка где??

Область

Для демонстрации мы проанализируем и воспроизведем CVE-2023-27216.

  • Номер CVE: CVE-2023-27216
  • Описание уязвимости: Проблема, обнаруженная в D-Link DSL-3782 версии 1.03, позволяет удаленным аутентифицированным пользователям выполнять произвольный код с правами root через страницу настроек сети.
  • Модель оборудования: D-Link DSL-3782
  • Версия прошивки: DSL-3782_A1_EU_1.01
  • Официальный сайт производителя: http://www.dlink.com.cn/
  • Адрес прошивки: https://media.dlink.eu/support/products/dsl/dsl-3782/driver_software/dsl-3782_a1_eu_1.01_07282016.zip

Задачи

Для эксплуатации прошивок необходимо выполнить следующие шаги:

  • Получить прошивки. Есть два способа: извлечь их напрямую из оборудования (камеры, маршрутизатора, принтера и т.д.) или загрузить с сайта производителя. Это будет рассмотрено в другом документе.
  • Проанализировать прошивку и найти уязвимости
  • Эмулировать прошивку.
  • Собрать gdbserver статически для отладки.

Анализ прошивки

Обычно бинарный файл прошивки содержит загрузчик (uBoot), файл ядра, заголовок ядра для загрузчика (uImage), сжатую файловую систему (как правило, в формате SquashFS), таблицу CRC/MD5 (для проверки целостности файла) и другие вспомогательные файлы.

Сначала найдите способ анализа прошивки, проведите небольшое исследование, нашел несколько ресурсов:

  • Binwalk для анализа и извлечения прошивки
  • Как эмулировать: https://boschko.ca/qemu-emulating-firmware/ Проверка сигнатуры Binwalk

Извлечение важных файлов

Извлечение прошивки с помощью binwalk: binwalk -Me DSL-3782_A1_EU_1.01_07282016.bin Извлечение Binwalk

Получена извлеченная папка squashfs-root и несколько странных файлов. Извлеченные файлы

Бонус: Если вы не видите папку squashfs-root, используйте unsquashfs на любых файлах .squashfs, которые вы видите. Они как zip-файлы 😅.

Анализ работы прошивки

Проверьте архитектуру прошивки и порядок байтов (endianness). Это можно сделать, проверив некоторые бинарные файлы, извлеченные из прошивки. Проверьте архитектуру и прошивку: file <binary> Архитектура прошивки

Здесь мы почти можем подтвердить, что прошивка работает на архитектуре MIPS 32-bit MSB. Причина «почти» в том, что некоторые прошивки могут работать на другой архитектуре с MIPS Compatible, такой как Lexra.

Проверяем папку squashfs-root и находим несколько интересных файлов:

  • usr/etc/init.d/rcS => Это скрипт, который выполняется при загрузке прошивки
  • usr/etc/passwd => Это файл, содержащий информацию о пользователях
  • userfs/romfile.cfg => Там есть учетные данные admin:admin

Проверяем файл rcS и находим интересный код:

echo "admin:$1$$iC.dUsGpxNNJGeOm1dFio/:0:0:root:/:/bin/sh" > /usr/etc/passwd
  • Этот код используется для записи информации о пользователе в файл passwd
  • Запускает веб-сервер под названием boa server. Boa — это древний веб-сервер, в основном использовавшийся во встраиваемых устройствах, таких как маршрутизаторы, в 2000-х годах. Однако разработка boa server была прекращена еще в 2005 году! Несмотря на то, что сервер Boa мертв уже почти 20 лет, он живет и по сей день благодаря нашему вендору. Загрузка Boa

Полноценная эмуляция прошивки

Рекомендую использовать ОС на основе Debian для процесса эмуляции, например Ubuntu или Kali. Существует еще одна ОС, ориентированная на взлом прошивок, под названием AttifyOS. В этом документе я использовал Kali Linux. Начнем с процесса эмуляции, для этого есть 2 инструмента:

  • QEMU => Не изобретайте велосипед 🙏 🛐
  • FAT- Firmware-analysis-toolkit => Он работает, вы можете прочитать исходный код, чтобы узнать, что он делает.

Придерживайся этого

Давайте рассмотрим, как использовать FAT для полной эмуляции прошивки. Сначала клонируем репозиторий с github на вашу машину Kali. И проходим процесс настройки. Также нужно изменить файл fat.config, иначе он не будет работать.

git clone https://github.com/attify/firmware-analysis-toolkit.git

cd firmware-analysis-toolkit

./setup.sh

vi fat.config # Modify to your sudo password.

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

./fat.py DSL-3782_A1_EU_1.01_07282016.bin

Примечание: В процессе настройки FAT могут возникать ошибки. Может появиться сообщение об отсутствии libmagic. Ошибка запуска FAT

Просто выполните

pip unistall python-magic
pip install python-magic

Это должно исправить проблему, затем снова запускаем команду сборки. Теперь всё должно работать отлично. FAT работает отлично

Нажмите Enter для запуска. Процесс эмуляции должен работать хорошо, и вы сможете перейти по адресу http://192.168.1.1 (на машине Kali), чтобы проверить, работает ли он. Главная страница маршрутизатора

Вы также можете войти в консоль, если у вас есть учетные данные. Здесь admin:admin. Вход в консоль

Если вы решите выключить эмулированную прошивку, просто нажмите Ctrl+A X. Когда потребуется запустить снова, не запускайте fat.py снова, так как прошивка уже собрана в образ. Вам нужно только запустить уже сгенерированный скрипт.

cd firmadyne/scratch/<Image-ID>
./run.sh

Перезапуск образа

Отладчик

Соберите gdbserver для целей отладки. Есть много способов собрать gdbserver. Вы также можете скачать статически собранный сервер. Есть репозиторий, в котором хранятся некоторые статические сборки. Однако я предпочитаю собирать gdbserver самостоятельно, так как те, что в репозитории github, довольно старые и могут иметь проблемы совместимости.

Скачать инструмент