Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
asadbg — asadbg は、Cisco ASA デバイスのライブデバッグを自動化するためのツールフレームワークです。 | Kitploit
ツール/GitHubGitHub/nccgroup/asadbg
組み込みシステムセキュリティリバースエンジニアリングスクリプトと自動化デバッガネットワークセキュリティハードウェアセキュリティバイナリ解析ファームウェア解析
GitHubnccgroup/asadbg

asadbg

asadbg は、Cisco ASA デバイスのライブデバッグを自動化するためのツールフレームワークです。

リポジトリを見る
7938234年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

asadbg

予備的な注意:これは asatools の一部として使用することをお勧めしますが、単体で使用することもできます。

asadbg は、Cisco ASA デバイスのライブデバッグを自動化し、シリアル/SSH を介した Cisco CLI との対話を自動化して反復的なタスクを迅速に実行するためのツールフレームワークです。

asadbg demo

  • gdb をラップします
  • asadbg.cfg 設定ファイルをサポートし、異なるバージョンのデバッグを容易にします
  • 実機と GNS3 の両方をサポートします
  • 任意で ret-sync を使用して、IDA Pro からのデバッグ体験を向上させます
  • 起動時に追加の gdb スクリプトを実行することをサポートします
  • 実機上の複数のファームウェアバージョンにわたるテストの自動化に役立つライブラリを提供します

メインツールは asadbg.py で、他のほとんどのヘルパースクリプトを実行します。最初に asafw を使用してファームウェアをアンパックし、asadbg を最大限に活用する必要があるかもしれません。

  • asadbg.py: ASA のデバッグに使用するメインツール
  • asdbg_hunt.py/asadbg_rename.py: idahunt と共に使用する IDA Python スクリプトで、新しいターゲットのシンボルをインポートします

以下は asadbg.py によって自動的にインポートされますが、それらの目的についての情報を提供します:

  • asa_lib*.py: libdlmalloc、libptmalloc、libmempool を使用するための gdb Python スクリプト
  • asa_sync.py: ret-sync を使用するための gdb Python スクリプト
  • comm.py: シリアル、SSH、telnet を介して通信するための関数群
  • find_lina_pid.py: SSH コマンドを使用して lina PID を検索します
  • template_gdbinit: デバッグするすべてのターゲットに対して asadbg.py によってパッチ適用される gdbinit テンプレート

要件

  • Python3 のみ
    • pip3 install pyserial paramiko
  • Linux で重点的にテスト済み(OS X でも動作する可能性があります)
  • 実機の ASA デバイスのフラッシュ上、または GNS3 で設定された ASA エミュレータにプリロードされたファームウェア

最初に asadbg/env.sh を環境に合わせて変更する必要があります。これにより、すべてのスクリプトで使用されるツールへのパスと、ASA 環境に一致するいくつかの変数を定義できます。同様の asafw/env.sh もありますが、両方のプロジェクトで使用するために必要なのは1つだけです。~/.bashrc に追加することをお勧めします:``` source /path/to/asadbg/env.sh

# 自動デバッグ

asadbgを使用する主な利点の1つは、
エミュレートされた(GNS3)デバイスと実際のCisco ASAデバイスの両方の使用を自動化できることです。これには単に
さまざまなファームウェアや設定の起動と実行を自動化することが含まれます。または
具体的には、gdbを使用した`lina`のデバッグプロセスを自動化することです。これはほとんど
`asadbg.py`スクリプトを通じて行われます。主なアイデアは、フラッシュを
ASAデバイスに、そのデバイスで使用したいファームウェアと設定ファイルを
事前にロードすることです。デバッグしたい各ファームウェアについては、何かを使用できます。
`asafw`ツールのようなものを使ってさまざまなシンボルをマイニングし、その後自動的に
それらのシンボルを使用してgdbinitファイルを生成します。デフォルトでは、`asadbg.py`は
`template_gdbinit`ファイルを使用して、バージョン固有のgdbinitファイルを
データベースに存在する任意のシンボルを使用して実行時に構築することを自動化します。

## 実際のデバイスをすばやく起動する(デバッグなし)

特定のバージョンは、CFカード上にすでにあるファームウェアと設定
ファイルを指定することで、すばやく起動できます。```
asadbg$ ./asadbg.py --firmware-type normal --serial-port /dev/ttyUSB0 --firmware asa802-k8.bin --config config-802

GNS3デバイスを設定ファイルでデバッグする

以下の例は、GNS3デバイスをデバッグするために設定ファイルをセットアップする方法を示しています。まず、以下に似た asadbg.cfg 設定ファイルを定義します。これには、GSN3自体から取得した、設定済みファイアウォールのGNS3 IP/ポートが含まれています。```ini [GLOBAL] gns3_host=192.168.5.1 asadb_file=asadb.json

[asav941200] version=941200 arch=gns3 rootfs_path= /home/user/_asav941-200.qcow2.extracted/rootfs gns3_port=12005 attach_gdb=yes

また、必要なアドレスが含まれるASAデータベースファイル`asadb.json`を指定しています。ここで重要なのは、`asadbg.cfg`で指定された`version=941200`と`arch=gns3`により、以下の`asadb.json`内のファームウェアと一致させることができる点です。また、gdbをアタッチしたいことも指定しています。```json
{
    "ASLR": false,
    "addresses": {
        "clock_interval": 59514112,
        "socks_proxy_server_start": 22139744,
        "aaa_admin_authenticate": 418288
    },
    "fw": "asav941-200.qcow2",
    "lina_imagebase": 4194304,
    "version": "9.4.1.200",
    "arch": 64
}

ここでデバッグを開始すると、clock_interval が自動的にパッチされます:``` asadbg$ ./asadbg.py --name asav941200 --asadbg-config asadbg.cfg [asadbg] Using config file: asadbg.cfg [asadbg] Found section: 'asav941200' in config [asadbg] Using gdb: '/usr/bin/gdb' [asadbg] Using architecture: gns3 [asadbg] Trying lina: /home/user/_asav941-200.qcow2.extracted/rootfs/asa/bin/lina [asadbg] Going to debug... [asadbg] Using GNS3 emulator 192.168.5.1:12005 [asadbg] Starting gdb now... [gdbinit_941200] Configuring paths... [gdbinit_941200] Disabling pagination... [gdbinit_941200] Connecting over TCP/IP... 0x0000003655201190 in ?? () from /home/user/_asav941-200.qcow2.extracted/rootfs/lib64/ld-linux-x86-64.so.2 [gdbinit_941200] Connected. [gdbinit_941200] Watchdog disabled [gdbinit_941200] heap debugging plugins loaded [gdbinit_941200] Additional gdb scripts loaded [gdbinit_941200] Done. (gdb) c Continuing.

## 設定ファイルを使用した実機のデバッグ

次の例では、シリアルコンソール経由で実機のCisco ASAデバイスをデバッグするための
設定ファイルのセットアップ方法を示しています。```ini
[GLOBAL]
serial_port=/dev/ttyUSB0
asadb_file=asadb.json

[asa924-gdb]
version=924
arch=32
rootfs_path=/home/user/_asa924-k8.bin.extracted/rootfs
firmware=asa924-k8-debugshell-gdbserver.bin
config=config-924
firmware_type=gdb
attach_gdb=yes

また、firmware_type を指定する必要があることにも注意してください。これは ファームウェアが未改変か、root化されているか、シリアルシェルが有効か、またはブート時にgdbが 有効化されているかを示します。これは フォーマットに応じてブート時に異なる処理を行うためです。ここで ブート時にgdbserverが有効化され、デバッグシェルを含む改変ファームウェア asa924-k8-debugshell-gdbserver.bin を 使用していることがわかります。 以下に、ブートROMが起動すると、asadbgが自動的に シーケンスを中断して、CFカード上にあるファームウェアと設定ファイルを ロードすることがわかります。``` asadbg$ ./asadbg.py --name asa924-gdb --asadbg-config asadbg.cfg [asadbg] Using config file: asadbg.cfg [asadbg] Found section: 'asa924-gdb' in config [asadbg] Using gdb: '/usr/bin/gdb' [asadbg] Using architecture: 32 [asadbg] Trying lina: /home/user/_asa924-k8.bin.extracted/rootfs/asa/bin/lina [asadbg] Going to debug... [asadbg] Using serial port: /dev/ttyUSB0 [asadbg] Loading 'asa924-k8-debugshell-gdbserver.bin' with 'config-924'... [comm] Waiting boot... [SNIP] Platform ASA5505

Use BREAK or ESC to interrupt boot. Use SPACE to begin boot immediately. Boot interrupted.

[SNIP] rommon #0> boot asa924-k8-debugshell-gdbserver.bin cfg=config-924 Launching BootLoader... Boot configuration file contains 1 entry.

Loading asa924-k8-debugshell-gdbserver.bin........ Booting... Platform ASA5505 [SNIP] SMFW PID: 514, Starting /asa/bin/lina under gdbserver /dev/ttyS0 SMFW PID: 512, started gdbserver on member: 514//asa/bin/lina SMFW PID: 512, created member ASA BLOB, PID=514 Process /asa/bin/lina created; pid = 517 Remote debugging using /dev/ttyS0 [comm] gdb detected - boot finished. [comm] Boot should be finished now? [asadbg] Starting gdb now... [gdbinit_924] Configuring paths... [gdbinit_924] Disabling pagination... [gdbinit_924] Connecting over USB... 0xdc7e2820 in ?? () from /home/user/_asa924-k8.bin.extracted/rootfs/lib/ld-linux.so.2 [gdbinit_924] Connected. [gdbinit_924] Watchdog disabled [gdbinit_924] heap debugging plugins loaded [gdbinit_924] Additional gdb scripts loaded [gdbinit_924] Done. (gdb) c Continuing.

# 追加シンボルのインポート

asadbg の多くの部分は、さまざまなファームウェアバージョンのシンボルを含むデータベース `asadbg/asadb.json` に依存しています。既存のシンボルは少数提供されていますが、手動で追加したり、[idahunt](https://github.com/nccgroup/idahunt) を使用して新しいターゲットを自動的に追加したりできます。このセクションではその方法を詳しく説明します。

## 要件

asadbg 内の IDA Python スクリプトは、`filelock.py/ida_helper.py` が利用可能であることを前提としています。これらは IDA Python から直接実行されるため、これまでの方法では `asadbg/` 内にシンボリックリンクを作成しています。Windows のシンボリックリンクは Linux とは異なるため、リポジトリ上に作成することはできません。したがって、手動で行う必要があります。

Linux の場合:```
asadbg$ ln -s ../idahunt/ida_helper.py ida_helper.py
asadbg$ ln -s ../idahunt/filelock.py filelock.py

Windowsでは、管理者権限で:``` C:\asadbg> mklink filelock.py ..\idahunt\filelock.py C:\asadbg> mklink ida_helper.py ..\idahunt\ida_helper.py

また、データベースへのパスを設定する必要があります(`env.sh` によって自動的に行われます):```
C:\idahunt>set ASADBG_DB=C:\asadbg\asadb.json

初期分析とリネーム

ファームウェアを asafw などを使用してディレクトリに展開済みであるか、 lina ファイルのみを抽出して、それがどのファームウェア由来かを示す階層に配置済みであることを前提とします。``` C:\temp>tree /F Folder PATH listing Volume serial number is XXXX-XXX C:. ├───asa924-k8.bin │ lina │ ├───asa924-smp-k8.bin │ lina │ └───asav941-200.qcow2 lina

まず、IDAで初期分析を行う必要があります。`--list-only` を
任意のコマンドと併用して、コマンドの結果がどうなるかを確認できます。
ツールをダウンロード