Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
asafw — Set di script per gestire il firmware Cisco ASA [pack/unpack ecc.] | Kitploit
Strumenti/GitHubGitHub/nccgroup/asafw
Sicurezza Sistemi EmbeddedExploitReverse EngineeringDebuggerSicurezza HardwareAnalisi di BinariAnalisi del Firmware
GitHubnccgroup/asafw

asafw

Set di script per gestire il firmware Cisco ASA [pack/unpack ecc.]

Vedi Repository
10736184 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

asafw

Nota preliminare: ti consigliamo di usarlo come parte di asatools ma può anche essere usato autonomamente.

asafw è un insieme di script per gestire il firmware Cisco ASA. Permette di estrarre il firmware necessario per il debug con gdb, oltre a estrarli/ricompattarli per abilitare alcune funzionalità come:

  • Abilitare gdb all'avvio
  • Disabilitare ASLR per semplificare il debug
  • Iniettare una shell di debug Linux per consentire CTRL^C in gdb quando usato con hardware reale
  • Rootare un firmware (generalmente deprecato abilitando gdb all'avvio e iniettando una shell di root)
  • ecc.

Gli strumenti più utili sono unpack_repack_bin.sh e unpack_repack_qcow2.sh. Consentono rispettivamente di manipolare i formati immagine asa*.bin e asav*.qcow2. Entrambi devono essere eseguiti come root quando si ricompatta effettivamente il rootfs per mantenere i permessi corretti.

Requirements

  • Solo Python3
  • apt install binwalk qemu-utils
  • Ampiamente testato su Linux (ma potrebbe funzionare anche su OS X)

Devi inizialmente modificare asafw/env.sh per adattarlo al tuo ambiente. Ti permetterà di definire i percorsi degli strumenti usati da tutti gli script e alcune variabili corrispondenti al tuo ambiente ASA. Nota che esiste un simile asadbg/env.sh ma ne è richiesto uno solo per entrambi i progetti. Ti consigliamo di aggiungerlo al tuo ~/.bashrc:``` source /path/to/asafw/env.sh

unpack_repack_bin.sh

unpack_repack_bin.sh viene utilizzato per decomprimere/ricomprimere le immagini asa*.bin che vengono utilizzate per l'hardware reale Cisco ASA (come le serie ASA 5500 e 5500-X). L'utilizzo completo è:

$ 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
```
## Estrai più firmware

Supponiamo di avere questi due firmware:```
~/fw$ ls
asa924-k8.bin  asa981-smp-k8.bin
```
Se vuoi solo estrarre il firmware, ad es. per eseguirne il debug con
[asadbg](https://github.com/nccgroup/asadbg), puoi usare `-u` per solo decomprimere
e `-k` per conservare solo la rootfs ed eliminare gli altri file estratti da binwalk
che non ti servono. Nota che la cartella di output è la stessa della cartella di input
poiché ci affidiamo a binwalk per questo:```
~/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"
```
Nota che gli errori come quelli qui sotto che potresti ricevere non contano in questo caso perché
non reimpacchetterai il firmware:```
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
```
## Abilita gdb all'avvio / shell di debug
```
Scarica lo strumento