mcpField
F
firmware-analyst

firmware-analyst

github.com/rmyndharisセキュリティ1.9k38 回インストール2 週間前に更新
リポジトリ

firmware-analyst について

許可を得た監査や研究、デバイス評価向けのファームウェアセキュリティ分析スキルです。取得・展開からファイルシステムやバイナリの分析、エミュレーション、脆弱性報告までの手順を扱います。

主な機能

  1. 01ファームウェアの取得と展開手順
  2. 02ファイルシステムとバイナリの分析
  3. 03脆弱性の分類とチェックリスト
  4. 04エミュレーション環境の設定ガイド
  5. 05評価レポートと修正案

活用シーン

  1. 01ファームウェア内のハードコード認証情報の監査
  2. 02ファームウェアのファイルシステムとバイナリの調査
  3. 03ファームウェアのエミュレーションと所見の記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rmyndharis/antigravity-skills --skill firmware-analyst

インストール後、Claude Code で/firmware-analystを入力して読み込まれたか確認します。

詳細

ベンダーからダウンロード

wget http://vendor.com/firmware/update.bin

デバッグインターフェース経由でデバイスから抽出

UART コンソールへのアクセス

screen /dev/ttyUSB0 115200

ファームウェアパーティションをコピー

dd if=/dev/mtd0 of=/tmp/firmware.bin

ネットワークプロトコル経由で抽出

起動中の TFTP

デバイスのウェブインターフェースから HTTP/FTP


### Hardware Methods

UART アクセス - シリアルコンソール接続 JTAG/SWD - メモリアクセス用デバッグインターフェース SPI フラッシュダンプ - チップの直接読み取り NAND/NOR ダンプ - フラッシュメモリの抽出 チップオフ - チップを物理的に取り外して読み取り ロジックアナライザー - プロトコルのキャプチャと分析


## Use this skill when

- Working on download from vendor tasks or workflows
- Needing guidance, best practices, or checklists for download from vendor

## Do not use this skill when

- The task is unrelated to download from vendor
- You need a different domain or tool outside this scope

## Instructions

- Clarify goals, constraints, and required inputs.
- Apply relevant best practices and validate outcomes.
- Provide actionable steps and verification.

## Firmware Analysis Workflow

### Phase 1: Identification
```bash
# Basic file identification
file firmware.bin
binwalk firmware.bin

# Entropy analysis (detect compression/encryption)
# Binwalk v3: generates entropy PNG graph
binwalk --entropy firmware.bin
binwalk -E firmware.bin  # Short form

# Identify embedded file systems and auto-extract
binwalk --extract firmware.bin
binwalk -e firmware.bin  # Short form

# String analysis
strings -a firmware.bin | grep -i "password\|key\|secret"
フェーズ 2:抽出
# Binwalk v3 recursive extraction (matryoshka mode)
binwalk --extract --matryoshka firmware.bin
binwalk -eM firmware.bin  # Short form

# Extract to custom directory
binwalk -e -C ./extracted firmware.bin

# Verbose output during recursive extraction
binwalk -eM --verbose firmware.bin

# Manual extraction for specific formats
# SquashFS
unsquashfs filesystem.squashfs

# JFFS2
jefferson filesystem.jffs2 -d output/

# UBIFS
ubireader_extract_images firmware.ubi

# YAFFS
unyaffs filesystem.yaffs

# Cramfs
cramfsck -x output/ filesystem.cramfs
フェーズ 3:ファイルシステム分析
# Explore extracted filesystem
find . -name "*.conf" -o -name "*.cfg"
find . -name "passwd" -o -name "shadow"
find . -type f -executable

# Find hardcoded credentials
grep -r "password" .
grep -r "api_key" .
grep -rn "BEGIN RSA PRIVATE KEY" .

# Analyze web interface
find . -name "*.cgi" -o -name "*.php" -o -name "*.lua"

# Check for vulnerable binaries
checksec --dir=./bin/
フェーズ 4:バイナリ分析
# Identify architecture
file bin/httpd
readelf -h bin/httpd

# Load in Ghidra with correct architecture
# For ARM: specify ARM:LE:32:v7 or similar
# For MIPS: specify MIPS:BE:32:default

# Set up cross-compilation for testing
# ARM
arm-linux-gnueabi-gcc exploit.c -o exploit
# MIPS
mipsel-linux-gnu-gcc exploit.c -o exploit

一般的な脆弱性の種類

認証の問題
Hardcoded credentials     - Default passwords in firmware
Backdoor accounts         - Hidden admin accounts
Weak password hashing     - MD5, no salt
Authentication bypass     - Logic flaws in login
Session management        - Predictable tokens
コマンドインジェクション
// Vulnerable pattern
char cmd[256];
sprintf(cmd, "ping %s", user_input);
system(cmd);

// Test payloads
; id
| cat /etc/passwd
`whoami`
$(id)
メモリ破損
Stack buffer overflow    - strcpy, sprintf without bounds
Heap overflow           - Improper allocation handling
Format string           - printf(user_input)
Integer overflow        - Size calculations
Use-after-free          - Improper memory management
情報漏えい
Debug interfaces        - UART, JTAG left enabled
Verbose errors          - Stack traces, paths
Configuration files     - Exposed credentials
Firmware updates        - Unencrypted downloads

ツールの習熟度

抽出ツール
binwalk v3           - Firmware extraction and analysis (Rust rewrite, faster, fewer false positives)
firmware-mod-kit     - Firmware modification toolkit
jefferson            - JFFS2 extraction
ubi_reader           - UBIFS extraction
sasquatch            - SquashFS with non-standard features
分析ツール
Ghidra               - Multi-architecture disassembly
IDA Pro              - Commercial disassembler
Binary Ninja         - Modern RE platform
radare2              - Scriptable analysis
Firmware Analysis Toolkit (FAT)
FACT                 - Firmware Analysis and Comparison Tool
エミュレーション
QEMU                 - Full system and user-mode emulation
Firmadyne            - Automated firmware emulation
EMUX                 - ARM firmware emulator
qemu-user-static     - Static QEMU for chroot emulation
Unicorn              - CPU emulation framework
ハードウェアツール
Bus Pirate           - Universal serial interface
Logic analyzer       - Protocol analysis
JTAGulator           - JTAG/UART discovery
Flashrom             - Flash chip programmer
ChipWhisperer        - Side-channel analysis

エミュレーションのセットアップ

QEMU ユーザーモードエミュレーション
# Install QEMU user-mode
apt install qemu-user-static

# Copy QEMU static binary to extracted rootfs
cp /usr/bin/qemu-arm-static ./squashfs-root/usr/bin/

# Chroot into firmware filesystem
sudo chroot squashfs-root /usr/bin/qemu-arm-static /bin/sh

# Run specific binary
sudo chroot squashfs-root /usr/bin/qemu-arm-static /bin/httpd
Firmadyne によるフルシステムエミュレーション
# Extract firmware
./sources/extractor/extractor.py -b brand -sql 127.0.0.1 \
    -np -nk "firmware.bin" images

# Identify architecture and create QEMU image
./scripts/getArch.sh ./images/1.tar.gz
./scripts/makeImage.sh 1

# Infer network configuration
./scripts/inferNetwork.sh 1

# Run emulation
./scratch/1/run.sh

セキュリティ評価

チェックリスト
[ ] Firmware extraction successful
[ ] File system mounted and explored
[ ] Architecture identified
[ ] Hardcoded credentials search
[ ] Web interface analysis
[ ] Binary security properties (checksec)
[ ] Network services identified
[ ] Debug interfaces disabled
[ ] Update mechanism security
[ ] Encryption/signing verification
[ ] Known CVE check
レポートテンプレート
# Firmware Security Assessment

## Device Information
- Manufacturer:
- Model:
- Firmware Version:
- Architecture:

## Findings Summary
| Finding | Severity | Location |
|---------|----------|----------|

## Detailed Findings
### Finding 1: [Title]
- Severity: Critical/High/Medium/Low
- Location: /path/to/file
- Description:
- Proof of Concept:
- Remediation:

## Recommendations
1. ...

倫理ガイドライン

適切な使用
  • デバイス所有者の許可を得たセキュリティ監査
  • バグバウンティプログラム
  • 学術研究
  • CTF 競技会
  • 個人所有デバイスの分析
支援してはならないこと
  • 許可のないデバイスの侵害
  • DRM/ライセンスの違法な回避
  • 悪意のあるファームウェアの作成
  • 許可のないデバイスへの攻撃
  • 産業スパイ活動

対応方針

  1. 許可を確認する:正当な調査の文脈であることを確認します
  2. デバイスを評価する:対象デバイスの種類とアーキテクチャを把握します
  3. 取得方法を案内する:適切なファームウェア抽出方法を提示します
  4. 体系的に分析する:構造化された分析ワークフローに従います
  5. 問題を特定する:セキュリティ脆弱性や設定ミスを特定します
  6. 調査結果を文書化する:修正方法を明確に示したレポートを作成します

コメント