IoT Дебагер дизассемблирование Прошивки реверс

Reverse engineering, реверс или по-просту обратная разработка для самых маленьких и ленивых. Часть 3. Binwalk – разбираем контейнеры и прошивки

Reverse engineering, реверс или по-просту обратная разработка для самых маленьких и ленивых. Часть 3. Binwalk – разбираем контейнеры и  прошивки

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

Любителям “копнуть поглубже” и действительно разобраться со вскрытием различных прошивок роутеров, IoT устройств, мобильников и прочей мобильно-портативной техники, рекомендуем ознакомиться с Attify OS. Помимо Binwalk, о котором мы поговорим сегодня, Attify содержит набор инструментальных средств, созданных для того, чтобы помочь исследователям безопасности анализировать и выявлять уязвимости в прошивках IoT и встроенных (embedded) устройств.

IoT устройства и встроенные системы используют прошивку, в которой частенько хранится много полезной, а зачастую и критичной для аналитика ИБ информации. Это могут быть «захардкоженные» учетные данные, триггеры для получения отладочной и системной информации, недокументированные возможности, бэкдоры и многое другое.

Про Attify мы поговорим в другой раз, а пока вернемся к нашим баранам, а вернее, binwalk-ам.

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

Он работает на основе сигнатурного поиска, задаваемого через регулярные выражения (можно почитать исходный код на github’e проекта – https://github.com/ReFirmLabs/binwalk).

Часто binwalk используют, чтобы примерно определить, какие файлы находятся в некотором контейнере или просто бинарном файле, который сложно отнести к какому-либо известному формату. Binwalk сможет определить склейку двух файлов в один, отобразив сигнатуры обоих форматов файлов. Также, он сможет распаковать найденные файлы (нужно добавить ключ -e). Описывать все функции достаточно муторно и бессмысленно, главное, чтобы было понятно основное назначение, а про все функции можно почитать в “help” или на гитхабе. Поэтому перейдём к практике и рассмотрим пару примеров.

Практика

Попробуем использовать binwalk на различные файлы.

Исполняемый файл под Linux.

Ничего интересного, нашёл заголовок формата ELF и строчку с копирайтом.

Попробуем запустить binwalk на прошивку роутера. Возьмём прошивку для Dlink Dir 300 (ссылка на прошивку – тык)

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

При распаковке были ошибки, однако директория создалась, значит какие-то данные смогли распаковаться, посмотрим, что мы получили.

Видим 2 файла и директорию (она пуста), посмотрим что из себя представляют данные файлы.

Один файл является исполняемым модулем (по сути ядром), а второй представляет собой файловую систему. Попробуем определить микропроцессорную архитектуру для первого файла, которые предположительно содержит код.

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

binwalk также может находить другую важную и полезную информацию для исследователя или ревёрсера. Он достаточно прост в освоении и очень удобен для ряда задач. Также его можно тонко настроить благодаря Python API, но это уже тема для другого поста.

Итог

Этот инструмент достаточно прост и полезен для анализа контейнеров, прошивок. Будет не лишним в арсенале ревёрс-инженера, специалиста по компьютерной криминалистики и исследователя различного встраиваемого ПО.

Для тех же, кто всерьёз заинтересовался темой, ещё раз настоятельно рекомендуем ознакомится с Attify OS.

Очень злой админ
Очень злой админ Автор статьи

Админ сайта. Публикует интересные статьи с других ресурсов, либо их переводы. Если есть настроение, бывает, что пишет и что-то своё.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *