D2
Администратор
- Регистрация
- 19 Фев 2025
- Сообщения
- 4,380
- Реакции
- 0
Модификация прошивки — это один из самых сложных и интересных аспектов реверс-инжиниринга. В этой статье мы рассмотрим, как с помощью Binwalk можно проанализировать и модифицировать прошивку ПК, например, BIOS или UEFI, с целью добавления возможности удалённого доступа. Мы научимся использовать Binwalk для извлечения данных, анализа структуры прошивки и внедрения функционала для удалённого управления системой, а также разберемся, как такие изменения могут быть обнаружены антивирусами и как минимизировать риски.
Что такое Binwalk?
Binwalk — это инструмент для анализа бинарных файлов, предназначенный для реверс-инжиниринга и исследования структуры прошивок, образов дисков и других бинарных данных. Binwalk позволяет исследовать содержимое прошивки, извлекать её компоненты, находить скрытые данные и модифицировать её, добавляя новые функции. В данном контексте мы будем использовать его для анализа прошивки BIOS или UEFI ПК с целью внедрения удалённого доступа.
Цель этой статьи — проанализировать прошивку BIOS/UEFI ПК, извлечь из неё содержимое, найти уязвимые места и модифицировать прошивку с добавлением функционала для удалённого доступа, например, через SSH или RDP. Далее мы рассмотрим, как внедрение таких изменений может быть обнаружено антивирусными системами, и что можно сделать для минимизации этих рисков.
Код: Скопировать в буфер обмена
Результат может быть следующим:
Код: Скопировать в буфер обмена
Из этого вывода мы видим, что прошивка состоит из:
BIOS/UEFI header — заголовок прошивки, в котором содержатся метаданные.
LZMA compressed data — сжаты данные, возможно, драйвера или другие компоненты прошивки.
UEFI FAT filesystem — файловая система UEFI, содержащая все конфигурации и исполнимые файлы.
Код: Скопировать в буфер обмена
Binwalk создаст папку _bios_firmware.bin.extracted, в которой будет лежать файл с файловой системой, например, 100000.uefi. Теперь нам нужно извлечь содержимое этой файловой системы. Это можно сделать, например, с помощью команды mount для Linux:
Код: Скопировать в буфер обмена
Теперь мы можем исследовать содержимое файловой системы, которое может включать как конфигурационные файлы, так и исполнимые файлы прошивки.
Для этого используем команду find:
Код: Скопировать в буфер обмена
Если в прошивке присутствуют файлы с расширением .efi, это означает, что мы можем изменить их или добавить новые компоненты для реализации удалённого доступа.
Добавление SSH сервера: Для этого нужно Скачать
Что такое Binwalk?
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
Из этого вывода мы видим, что прошивка состоит из:
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!