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

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

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

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

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

Категории

Все категории
Loading categories
firmware-analysis-toolkit — Инструментарий для эмуляции прошивки и анализа на предмет уязвимостей безопасности. | Kitploit
Инструменты/GitHubGitHub/attify/firmware-analysis-toolkit
Безопасность встроенных системБезопасность IoTАнализ уязвимостейОбратная инженерияАнализ Бинарных ФайловОбучение и ОбразованиеАнализ Прошивок
GitHubattify/firmware-analysis-toolkit

firmware-analysis-toolkit

Инструментарий для эмуляции прошивки и анализа на предмет уязвимостей безопасности.

Репозиторий
1.6k2831 год назадПроверено Kitploit

Популярное

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

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

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

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

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

Набор инструментов для анализа прошивок

FAT — это набор инструментов, созданный для помощи исследователям безопасности в анализе и выявлении уязвимостей в прошивках IoT и встраиваемых устройств. Он также используется в обучении "Offensive IoT Exploitation", проводимом компанией Attify.

Примечание:

  • На данный момент это просто скрипт для автоматизации Firmadyne — инструмента, используемого для эмуляции прошивок. В случае возникновения проблем с самой эмуляцией, пожалуйста, сообщайте о них в раздел проблем firmadyne.

  • Если у вас возникли проблемы, вы можете попробовать AttifyOS, в который предустановлены Firmware analysis toolkit и другие инструменты, готовые к использованию.


Firmware Analysis Toolkit (далее FAT) основан на Firmadyne с некоторыми изменениями. Firmadyne использует базу данных PostgreSQL для хранения информации об эмулируемых образах. Однако для основной функциональности, то есть эмуляции прошивок, PostgreSQL на самом деле не требуется. Поэтому FAT не использует её.

Инструкции по установке

FAT разработан на Python 3. Однако вам необходимо установить как Python 3, так и Python 2, поскольку части Firmadyne и его зависимости используют Python 2. Настоятельно рекомендуется устанавливать FAT внутри виртуальной машины.

Для установки просто клонируйте репозиторий и запустите скрипт ./setup.sh.

root@kitploit:~
git clone https://github.com/attify/firmware-analysis-toolkit
cd firmware-analysis-toolkit
./setup.sh

После завершения установки отредактируйте файл fat.config и укажите пароль sudo, как показано ниже. Firmadyne требует привилегий sudo для некоторых своих операций. Пароль sudo указывается для автоматизации процесса.

root@kitploit:~
[DEFAULT]
sudo_password=attify123
firmadyne_path=/home/attify/firmadyne

Запуск FAT

root@kitploit:~
$ ./fat.py <firmware file>
  • Укажите имя файла прошивки в качестве аргумента скрипта.

  • Скрипт отобразит IP-адреса, назначенные созданным сетевым интерфейсам. Запомните их.

  • Наконец, будет сказано, что прошивка запускается. Нажмите ENTER и ждите, пока прошивка загрузится. Пингуйте IP-адрес, который был показан на предыдущем шаге, или откройте его в браузере.

Поздравляем! Прошивка наконец эмулирована.

Чтобы удалить все проанализированные образы прошивок, выполните

root@kitploit:~
$ ./reset.py

Пример 1

root@kitploit:~
$ ./fat.py DIR-601_REVB_FIRMWARE_2.01.BIN 

                               __           _   
                              / _|         | |  
                             | |_    __ _  | |_ 
                             |  _|  / _` | | __|
                             | |   | (_| | | |_ 
                             |_|    \__,_|  \__|                    
                    
                Welcome to the Firmware Analysis Toolkit - v0.3
    Offensive IoT Exploitation Training http://bit.do/offensiveiotexploitation
                  By Attify - https://attify.com  | @attifyme
    
[+] Firmware: DIR-601_REVB_FIRMWARE_2.01.BIN
[+] Extracting the firmware...
[+] Image ID: 1
[+] Identifying architecture...
[+] Architecture: mipseb
[+] Building QEMU disk image...
[+] Setting up the network connection, please standby...
[+] Network interfaces: [('br0', '192.168.0.1')]
[+] All set! Press ENTER to run the firmware...
[+] When running, press Ctrl + A X to terminate qemu

Asciicast

asciicast

Пример 2

root@kitploit:~
$ ./fat.py DIR890A1_FW103b07.bin --qemu 2.5.0

                               __           _
                              / _|         | |
                             | |_    __ _  | |_
                             |  _|  / _` | | __|
                             | |   | (_| | | |_
                             |_|    \__,_|  \__|

                Welcome to the Firmware Analysis Toolkit - v0.3
    Offensive IoT Exploitation Training http://bit.do/offensiveiotexploitation
                  By Attify - https://attify.com  | @attifyme

[+] Firmware: DIR890A1_FW103b07.bin
[+] Extracting the firmware...
[+] Image ID: 2
[+] Identifying architecture...
[+] Architecture: armel
[+] Building QEMU disk image...
[+] Setting up the network connection, please standby...
[+] Network interfaces: [('br0', '192.168.0.1'), ('br1', '192.168.7.1')]
[+] Using qemu-system-arm from /home/attify/firmware-analysis-toolkit/qemu-builds/2.5.0
[+] All set! Press ENTER to run the firmware...
[+] When running, press Ctrl + A X to terminate qemu

Дополнительные примечания

  • На данный момент ядро firmadyne для ARM не работает с последней версией Qemu (2.11.1), доступной в официальном репозитории Ubuntu 18.04. Однако Qemu (2.5.0) на Ubuntu 16.04 работает. В качестве альтернативы вы можете использовать встроенный Qemu (2.5.0), поставляемый с firmadyne, как показано в примере 2.

  • Если сетевые интерфейсы не обнаружены, попробуйте увеличить значение таймаута с 60 в scripts/inferNetwork.sh, как показано ниже

    root@kitploit:~
    echo "Running firmware ${IID}: terminating after 60 secs..."
    timeout --preserve-status --signal SIGINT 60 "${SCRIPT_DIR}/run.${ARCH}.sh" "${IID}"
    

Известные проблемы

  • FAT не работает на Ubuntu 20.04. Основная причина — некоторые зависимости Firmadyne (особенно binwalk) требуют Python 2. Пока это не исправлено в вышестоящем репозитории, используйте Ubuntu 18.04 или более старую. Ubuntu 20.04 теперь поддерживается. Текущая версия FAT вносит изменения в скрипт установки binwalk, чтобы обойти эту проблему.

Сборка статического Qemu

Репозиторий уже включает статические сборки qemu 2.0.0, 2.5.0 и 3.0.0 (в релизах), но если вы хотите собрать свою собственную, следуйте инструкциям ниже.

На чистой виртуальной машине Ubuntu 16.04 выполните. (Важно использовать 16.04, более поздние версии имеют проблемы со статической компиляцией).

Qemu 2.0.0

root@kitploit:~
sudo apt update && sudo apt build-dep qemu -y
wget https://download.qemu.org/qemu-2.0.0.tar.bz2
tar xf qemu-2.0.0.tar.bz2
mkdir qemu-2.0.0-build
cd qemu-2.0.0
./configure --prefix=$(realpath ../qemu-2.0.0-build) --static --target-list=arm-softmmu,mips-softmmu,mipsel-softmmu --disable-smartcard-nss --disable-spice --disable-libusb --disable-usb-redir
make
make install

Скомпилированные бинарные файлы можно найти в каталоге qemu-2.0.0-build.

Qemu 2.5.0

root@kitploit:~
sudo apt update && sudo apt build-dep qemu -y
wget https://download.qemu.org/qemu-2.5.0.tar.bz2
tar xf qemu-2.5.0.tar.bz2
mkdir qemu-2.5.0-build
cd qemu-2.5.0
./configure --prefix=$(realpath ../qemu-2.5.0-build) --static --target-list=arm-softmmu,mips-softmmu,mipsel-softmmu --disable-smartcard --disable-libusb --disable-usb-redir
make 
make install

Скомпилированные бинарные файлы можно найти в каталоге qemu-2.5.0-build.

Qemu 3.0.0

root@kitploit:~
sudo apt update && sudo apt build-dep qemu -y
wget https://download.qemu.org/qemu-3.0.0.tar.bz2
tar xf qemu-3.0.0.tar.bz2
mkdir qemu-3.0.0-build
cd qemu-3.0.0
./configure --prefix=$(realpath ../qemu-3.0.0-build) --static --target-list=arm-softmmu,mips-softmmu,mipsel-softmmu --disable-smartcard --disable-libusb --disable-usb-redir
make 
make install

Скомпилированные бинарные файлы можно найти в каталоге qemu-3.0.0-build.

Примечание: Также должно быть возможно статически скомпилировать qemu в системе Alpine, но это не проверено. В целом, компиляция в Alpine предпочтительнее, чем в Ubuntu, поскольку в Alpine используется musl libc, который лучше подходит для статической линковки, чем glibc в Ubuntu.

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