Binwalk и модификация прошивки ПК для подключения удалённого доступа

D2

Администратор
Регистрация
19 Фев 2025
Сообщения
4,380
Реакции
0
Модификация прошивки — это один из самых сложных и интересных аспектов реверс-инжиниринга. В этой статье мы рассмотрим, как с помощью Binwalk можно проанализировать и модифицировать прошивку ПК, например, BIOS или UEFI, с целью добавления возможности удалённого доступа. Мы научимся использовать Binwalk для извлечения данных, анализа структуры прошивки и внедрения функционала для удалённого управления системой, а также разберемся, как такие изменения могут быть обнаружены антивирусами и как минимизировать риски.

Что такое Binwalk?

binwalk-logo.svg

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

Цель этой статьи — проанализировать прошивку BIOS/UEFI ПК, извлечь из неё содержимое, найти уязвимые места и модифицировать прошивку с добавлением функционала для удалённого доступа, например, через SSH или RDP. Далее мы рассмотрим, как внедрение таких изменений может быть обнаружено антивирусными системами, и что можно сделать для минимизации этих рисков.

Шаг 1: Сканирование прошивки с помощью Binwalk

Начнём с анализа файла прошивки с помощью Binwalk. Допустим, у нас есть образ прошивки BIOS или UEFI, назовём его bios_firmware.bin. Для того чтобы извлечь из него данные и понять его структуру, нужно выполнить простое сканирование:
Код: Скопировать в буфер обмена
binwalk bios_firmware.bin

Результат может быть следующим:
Код: Скопировать в буфер обмена
Код:
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             BIOS/UEFI firmware header
32768         0x8000          LZMA compressed data
1048576       0x100000        UEFI FAT filesystem, little endian
2097152       0x200000        LZMA compressed data

0*8TfmjvKD3jJshY4J


Из этого вывода мы видим, что прошивка состоит из:
BIOS/UEFI header — заголовок прошивки, в котором содержатся метаданные.
LZMA compressed data — сжаты данные, возможно, драйвера или другие компоненты прошивки.
UEFI FAT filesystem — файловая система UEFI, содержащая все конфигурации и исполнимые файлы.

Шаг 2: Извлечение файловой системы

Зная, что прошивка содержит файловую систему UEFI, мы можем извлечь её содержимое с помощью Binwalk. Запустим команду:
Код: Скопировать в буфер обмена
binwalk -e bios_firmware.bin

Binwalk создаст папку _bios_firmware.bin.extracted, в которой будет лежать файл с файловой системой, например, 100000.uefi. Теперь нам нужно извлечь содержимое этой файловой системы. Это можно сделать, например, с помощью команды mount для Linux:
Код: Скопировать в буфер обмена
mount -o loop _bios_firmware.bin.extracted/100000.uefi /mnt

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

Шаг 3: Поиск конфигурационных файлов и кода

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

Для этого используем команду find:
Код: Скопировать в буфер обмена
find /mnt -name "*.efi"

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

Шаг 4: Внедрение удалённого доступа через SSH или RDP

Теперь давайте рассмотрим два способа внедрения удалённого доступа в прошивку: через SSH или RDP.

Включение SSH в UEFI:​


Добавление SSH сервера: Для этого нужно Скачать
View hidden content is available for registered users!
 
Сверху Снизу