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

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

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

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

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

Категории

Все категории
Loading categories
asafw — Набор скриптов для работы с прошивками Cisco ASA [упаковка/распаковка и т.д.] | Kitploit
Инструменты/GitHubGitHub/nccgroup/asafw
Безопасность встроенных системЭксплуатацияОбратная инженерияОтладчикиАппаратная БезопасностьАнализ Бинарных ФайловАнализ Прошивок
GitHubnccgroup/asafw

asafw

Набор скриптов для работы с прошивками Cisco ASA [упаковка/распаковка и т.д.]

Репозиторий
10736184 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

asafw

Предварительное замечание: рекомендуем использовать это в составе asatools, но его можно использовать и отдельно.

asafw — это набор скриптов для работы с прошивками Cisco ASA. Он позволяет распаковать прошивку, необходимую при отладке с помощью gdb, а также распаковывать/переупаковывать её для включения определённых функций, таких как:

  • Включение gdb при загрузке
  • Отключение ASLR для упрощения отладки
  • Внедрение отладочной оболочки Linux для возможности CTRL^C в gdb при работе с реальным оборудованием
  • Получение root-доступа к прошивке (обычно заменяется включением gdb при загрузке и внедрением root-оболочки)
  • и т.д.

Наиболее полезными инструментами являются unpack_repack_bin.sh и unpack_repack_qcow2.sh. Они позволяют манипулировать форматами образов asa*.bin и asav*.qcow2 соответственно. Оба должны выполняться от root при фактической переупаковке rootfs, чтобы сохранить правильные права доступа.

Требования

  • Только Python3
  • apt install binwalk qemu-utils
  • Активно тестировалось на Linux (но может работать и на OS X)

Изначально вам нужно изменить asafw/env.sh в соответствии с вашим окружением. Это позволит вам задать пути к инструментам, используемым всеми скриптами, а также некоторые переменные, соответствующие вашему окружению ASA. Обратите внимание, что есть похожий asadbg/env.sh, но для обоих проектов достаточно использовать только один. Мы рекомендуем добавить его в ваш ~/.bashrc:``` source /path/to/asafw/env.sh

# unpack_repack_bin.sh

`unpack_repack_bin.sh` используется для распаковки/переупаковки образов `asa*.bin`, которые применяются
для реального аппаратного обеспечения Cisco ASA (например, серии ASA 5500 и 5500-X). Полное
использование:```
$ unpack_repack_bin.sh -h
Usage:
./unpack_repack_bin.sh -i <firmware_file> -o <out_dir> [-f -g -G -a -A -m -b -r -u -l <linabin_dir> -d -e -k]
      -h, --help                    This help menu
      -i, --input <firmware_file>   What firmware bin to operate on
      -o, --output  <out_dir>       Where to write new firmware
      -f, --free-space              Remove space from .bin to ensure injections fit
      -g, --enable-gdb              Set gdb to start on boot
      -G, --disable-gdb             Stop gdb from starting on boot
      -a, --enable-aslr             Turn on ASLR
      -A, --disable-aslr            Turn off ASLR
      -m, --inject-gdb              Inject gdbserver to run
      -b, --debug-shell             Inject ssh-triggered debug shell
      -H, --lina-hook               Inject hooks for monitor lina heap (requires -b)
      -r, --root                    root the bin to get a rootshell on boot
      -c, --custom                  custom?
      -n, --n-custom                custom?
      -q, --gns3-fixup              gns?
      -u, --unpack-only             unpack the firmware and nothing else
      -l, --linabins <linabin_dir>  destination folder to save lina binaries
      -d, --delete-extracted        delete files extracted during modification
      -e, --delete-original-bin     delete the original firmware being modified
      -k, --keep-rootfs             keep the extracted rootfs on disk
      -s, --simple-name             use a simple name for the output .bin with just appended '-repacked'
Examples:
 ./unpack_repack_bin.sh -i /home/user/firmware -o /home/user/firmware_repacked --free-space --enable-gdb --inject-gdb
 ./unpack_repack_bin.sh -i /home/user/firmware/asa961-smp-k8.bin -f -g -m
 ./unpack_repack_bin.sh -u -i /home/user/firmware -l /home/user/linabins
 ./unpack_repack_bin.sh -u -i /home/user/firmware/asa924-k8.bin -k

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

Предположим, у нас есть эти две прошивки:``` ~/fw$ ls asa924-k8.bin asa981-smp-k8.bin

Если вы хотите только извлечь прошивку, например, для отладки с помощью [asadbg](https://github.com/nccgroup/asadbg), вы можете использовать `-u` для распаковки только и `-k` чтобы сохранить только rootfs и удалить другие файлы, извлечённые binwalk, которые вам не нужны. Обратите внимание, что выходная папка совпадает с входной, так как мы полагаемся на binwalk для этого:```
~/fw$ unpack_repack_bin.sh -i . -k -u
[unpack_repack_bin] Directory of firmware detected: .
[unpack_repack_bin] extract_one: asa924-k8.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
75000         0x124F8         SHA256 hash constants, little endian
144510        0x2347E         gzip compressed data, maximum compression, from Unix, last modified: 2015-07-15 04:53:23
1501296       0x16E870        gzip compressed data, has original file name: "rootfs.img", from Unix, last modified: 2015-07-15 05:19:52
27168620      0x19E8F6C       MySQL ISAM index file Version 4
28192154      0x1AE2D9A       Zip archive data, at least v2.0 to extract, name: com/cisco/webvpn/csvrjavaloader64.dll
28773362      0x1B70BF2       Zip archive data, at least v2.0 to extract, name: AliasHandlerWrapper-win64.dll

[unpack_repack_bin] Extracted firmware to /home/user/fw/_asa924-k8.bin.extracted
[unpack_repack_bin] Firmware uses regular rootfs/ dir
[unpack_repack_bin] Extracting /home/user/fw/_asa924-k8.bin.extracted/rootfs/rootfs.img into /home/user/fw/_asa924-k8.bin.extracted/rootfs
[unpack_repack_bin] Keeping rootfs
[unpack_repack_bin] Deleting "/home/user/fw/_asa924-k8.bin.extracted/rootfs.img"
[unpack_repack_bin] Deleting "/home/user/fw/_asa924-k8.bin.extracted/2347E"
[unpack_repack_bin] Deleting "/home/user/fw/_asa924-k8.bin.extracted/1AE2D9A.zip"
[unpack_repack_bin] extract_one: asa981-smp-k8.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
75264         0x12600         SHA256 hash constants, little endian
133120        0x20800         Microsoft executable, portable (PE)
149183        0x246BF         gzip compressed data, maximum compression, from Unix, last modified: 2017-01-30 19:33:09
3678112       0x381FA0        gzip compressed data, has original file name: "rootfs.img", from Unix, last modified: 2017-05-10 22:42:05
14838307      0xE26A23        MySQL MISAM compressed data file Version 4
87985870      0x53E8ECE       MySQL MISAM compressed data file Version 7
96261881      0x5BCD6F9       Zip archive data, at least v2.0 to extract, name: com/cisco/webvpn/csvrjavaloader64.dll
96890193      0x5C66D51       MySQL ISAM compressed data file Version 5

[unpack_repack_bin] Extracted firmware to /home/user/fw/_asa981-smp-k8.bin.extracted
[unpack_repack_bin] Firmware uses regular rootfs/ dir
[unpack_repack_bin] Extracting /home/user/fw/_asa981-smp-k8.bin.extracted/rootfs/rootfs.img into /home/user/fw/_asa981-smp-k8.bin.extracted/rootfs
[unpack_repack_bin] Keeping rootfs
[unpack_repack_bin] Deleting "/home/user/fw/_asa981-smp-k8.bin.extracted/rootfs.img"
[unpack_repack_bin] Deleting "/home/user/fw/_asa981-smp-k8.bin.extracted/5BCD6F9.zip"
[unpack_repack_bin] Deleting "/home/user/fw/_asa981-smp-k8.bin.extracted/246BF"

Обратите внимание, что ошибки, подобные приведённым ниже, которые вы можете получить, в этом случае не имеют значения, потому что вы не собираетесь перепаковывать прошивку:``` cpio: lib/udev/devices/kmem: Function mknod failed: Operation not permitted cpio: lib/udev/devices/net/tun: Function mknod failed: Operation not permitted cpio: lib/udev/devices/loop01: Function mknod failed: Operation not permitted cpio: lib/udev/devices/null: Function mknod failed: Operation not permitted cpio: lib/udev/devices/console: Function mknod failed: Operation not permitted cpio: lib/udev/devices/loop00: Function mknod failed: Operation not permitted 134992 blocks

## Enable gdb at boot / debug shell
Скачать инструмент