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

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

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

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

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

Категории

Все категории
Loading categories
Xiaomi-C200-Firmware-Analysis — От UART до Root: Взлом Xiaomi C200 через U-Boot | Kitploit
Инструменты/GitHubGitHub/h3xdum/xiaomi-c200-firmware-analysis
Безопасность встроенных системПовышение привилегийБезопасность IoTЭксплуатацияОбратная инженерияВосстановление ДанныхАппаратный ХакингАппаратная БезопасностьАнализ Прошивок

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
GitHubh3xdum/xiaomi-c200-firmware-analysis

Xiaomi-C200-Firmware-Analysis

От UART до Root: Взлом Xiaomi C200 через U-Boot

Репозиторий
11128 месяцев назадЕщё не проверено

Область применения

В этом репозитории я покажу, как получил доступ к интерфейсу UART даже без обычного
набора открытых выводов / тестовых площадок, используя U-Boot и трюки для получения root на раннем этапе
и в конечном итоге дампа прошивки.

Первоначальная разведка

pcb На плате очевидны несколько ключевых моментов:

  • Чип → Процессор T31 Ingenic
  • Флеш-память → SOIC-8 SPI NOR тип
  • Потенциальные тестовые площадки UART

Сначала я пошёл по очевидным кандидатам для прямого доступа к UART:
рядом есть 4 тестовые площадки, которые, похоже, являются Tx, Rx, землёй и питанием,
но проверка мультиметром дала неверные показания, как видно на рисунке.
Я попробовал большинство других тестовых площадок, но так и не смог получить правильных показаний, поэтому пришлось
сменить стратегию.

Получение плацдарма

Поскольку на плате не осталось разъёмов или тестовых площадок, которые могли бы помочь,
я решил пойти через источник: подключиться к выводам процессора и получить
оболочку UART таким образом. Я скачал даташит на этот процессор и определил
выводы протокола UART.
T31

Теперь нужно только найти землю на плате и подключить:

  • Tx → Rx
  • Rx → Tx
  • GND → GND

Я использовал несколько щупов PCBite и USB 2 TTL адаптер для этой настройки.
pcb_uart

U-Boot и root

Теперь мы можем использовать picocom, чтобы получить нужную нам оболочку UART.

root@kitploit:~
sudo picocom -b 115200 /dev/ttyUSB0

Если ничего не делать, я получал только журнал загрузки и никакой оболочки в конце процесса загрузки,
поэтому мне пришлось прервать U-Boot, сразу нажав Enter.
Получив оболочку U-Boot, я сначала вывел переменные окружения.
U-Boot_1 Важные для нас вещи:

  • bootargs → показывает, что команда init запускает бинарник linuxrc, а также разметку прошивки (разделы и их назначение/размер/слоты)
  • bootcmd → команда для загрузки памяти из флеша в RAM и запуска устройства

Чтобы быстро получить root-доступ, я воспользовался трюком с изменением команды init с помощью setenv,
чтобы получить оболочку вместо запуска бинарника linuxrc, затем вручную загрузить память
и запустить устройство (по сути скопировав команду bootcmd). U-Boot_1 Теперь после завершения загрузки я окажусь в ранней оболочке с практически ничем не запущенным
на системе, так что я запущу исходный бинарник linuxrc в фоне и проверю
открытые порты на этой системе. root_netstat Безрезультатно! Камера общается только со своим облаком на "47.237.75.249", без открытого веб-интерфейса
для возни. Поскольку реверс-инжиниринг бинарника облачной связи выходит за рамки моего исследования,
здесь я решил закончить своё исследование :)

Извлечение прошивки

Немного дополнительной информации для тех, кому интересно поиграться с прошивкой: вот
как её получить. Та же настройка, что и раньше с UART, но на этот раз только зондирование и загрузка
памяти из флеша в RAM без запуска в неё. Затем можно вывести данные из памяти RAM и записать вывод терминала
(на этот раз с minicom) в файл, немного очистить его с помощью Python и получить
прошивку, сопоставление binwalk и bootargs поможет назвать каждый раздел. Firmware

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