ctf-forensics について
ctf-forensicsは、デジタルフォレンジック系CTFを解くためのリファレンスです。ディスク、メモリ、Windows、ネットワーク、ハードウェア、ステガノグラフィを扱い、詳細な手順やコマンドは付属ファイルにまとめています。
主な機能
- 01ディスク、メモリ、仮想マシンの解析
- 02Windowsログとアーティファクトの分析
- 03ネットワークと周辺機器の通信解析
- 04画像、音声、動画のステガノグラフィ
- 05コマンドと専門的な手法の参照
活用シーン
- 01ディスクイメージから削除ファイルを復元
- 02ログやパケットキャプチャから活動を再構成
- 03メディアファイル内の隠しデータを発見
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ljagiello/ ctf-skills --skill ctf-forensicsインストール後、Claude Code で/ctf-forensicsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
3d-printing.mddisk-advanced.mddisk-and-memory.mddisk-recovery.mdlinux-forensics.mdnetwork-advanced.mdnetwork.mdperipheral-capture.mdsignals-and-hardware.mdsteganography.mdstego-advanced-2.mdstego-advanced.mdstego-image.mdwindows.md詳細
CTF フォレンジック&ブロックチェーン
フォレンジック CTF チャレンジ向けのクイックリファレンスです。各手法をここでは一行で紹介します。詳しくは関連ファイルを参照してください。
前提条件
Python パッケージ(すべてのプラットフォーム):
pip install volatility3 Pillow numpy matplotlib scipy librosa scikit-learn opencv-python-headless pymongo impacket brotli exrex stegano heatshrink2
Linux(apt):
apt install binwalk foremost libimage-exiftool-perl tshark sleuthkit \
ffmpeg steghide testdisk john pcapfix
macOS(Homebrew):
brew install binwalk exiftool wireshark sleuthkit ffmpeg \
testdisk john-jumbo
Ruby gem(すべてのプラットフォーム):
gem install zsteg
追加リソース
- 3d-printing.md - 3D プリントのフォレンジック(PrusaSlicer のバイナリー G-code、QOIF、熱収縮チューブ)
- windows.md - Windows のフォレンジック(レジストリ、SAM、イベントログ、ごみ箱、NTFS 代替データストリーム、USN ジャーナル、PowerShell の履歴、Defender MPLog、WMI による永続化、Amcache)
- network.md - ネットワークフォレンジックの基本(tcpdump、TLS/SSL キーログの復号、コアダンプからの TLS マスターキー抽出、Wireshark、PCAP、ポートスキャン、SMB3 の復号、5G/NR プロトコル、WordPress の偵察、認証情報、USB HID ステノ、BCD エンコーディング、HTTP ファイルアップロードによる情報持ち出し、タイムスタンプ順序による分割アーカイブの再構成)
- network-advanced.md - 高度なネットワークフォレンジック(パケット間隔タイミングエンコーディング、NTLMv2 ハッシュのクラック、TCP フラグの隠しチャネル、DNS 最終バイトのステガノグラフィ、DNS 末尾バイトのバイナリーエンコーディング、XOR+ZIP と mDNS キーを用いた多層 PCAP、Brotli 解凍爆弾の継ぎ目解析、LSARPC による SMB RID の再利用、Timeroasting による MS-SNTP ハッシュ抽出、dnscat2 の再構成、RADIUS 共有シークレットのクラック、RC4 ストリームの識別、ICMP ペイロードのバイト回転、ICMP ping の時間遅延を利用した隠しチャネル)
- peripheral-capture.md - USB/HID/Bluetooth 周辺機器トラフィックの再構成(USB HID マウス/ペンの描画復元、USB HID キーボードキャプチャのデコード、USB キーボードの LED モールス信号による情報持ち出し、USB HID キーボードの矢印キー操作追跡、Bluetooth RFCOMM パケットの再構成)
- disk-and-memory.md - ディスク/メモリフォレンジックの基本(Volatility、ディスクのマウント/カービング、VM/OVA/VMDK、VMware スナップショット、GIMP による生メモリダンプの目視検査、コアダンプ、Windows KAPE トリアージ、PowerShell ランサムウェア、Android フォレンジック、Docker コンテナフォレンジック、クラウドストレージフォレンジック、BSON の再構成、TrueCrypt/VeraCrypt のマウント)
- disk-advanced.md - 高度なディスク/メモリ技術(削除されたパーティション、ZFS フォレンジック、GPT GUID エンコーディング、VMDK スパース解析、メモリダンプの文字列カービング、ランサムウェア鍵の復元、WordPerfect マクロの XOR、ミニダンプからの ISO 9660 復元、APFS スナップショットの復元、RAID 5 XOR 復元、HFS+ リソースフォークの復元、Kyoto Cabinet ハッシュ DB フォレンジック、SQLite 編集履歴の再構成)
- disk-recovery.md - ディスク復元と抽出の手法(LUKS マスターキーの復元、PRNG タイムスタンプシードのブルートフォース、VBA マクロのバイナリーデータ復元、FemtoZip 解凍、XFS ファイルシステムの再構成、tar の重複エントリー抽出、入れ子のマトリョーシカ型ファイルシステム抽出、ヌルバイトのインターリーブによるカービング対策、BTRFS サブボリューム/スナップショットの復元、FAT16 空き領域データの復元、Sleuth Kit の fls/icat による FAT16 削除ファイルの復元、fsck による ext2 孤立 inode の復元、破損した ZIP ヘッダーの修復)
- steganography.md - 一般的なステガノグラフィ(バイナリー境界ステガノグラフィ、PDF の多層ステガノグラフィ、SVG キーフレーム、PNG の並べ替え、ファイルオーバーレイ、GIF フレーム差分によるモールス信号、GZSteg+spammimic、スプレッドシートの頻度分析による復元、Kitty ターミナルグラフィックスプロトコルのデコード、ANSI エスケープシーケンスステガノグラフィ、オートステレオグラムの解読、バイトと行の二層インターリーブ、マルチストリーム動画コンテナのステガノグラフィ、プログレッシブ PNG のレイヤー化 XOR 復号、曲面反射からの QR コード再構成)
- stego-image.md - 画像固有のステガノグラフィ(JPEG の未使用 DQT テーブル LSB、BMP ビットプレーンからの QR 抽出、画像パズルの再構成、F5 JPEG DCT 比率検出、PNG 未使用パレットエントリーのステガノグラフィ、QR コードタイルの再構成、シードベースのピクセル順列+マルチビットプレーン QR、JPEG サムネイルのピクセルからテキストへのマッピング、ピクセルフィルタリングによる条件付き LSB、JPEG スラック領域、ニアレストネイバー補間ステガノグラフィ、RGB パリティステガノグラフィ)
- stego-advanced.md - 高度なステガノグラフィ パート 1:音声と信号の技術(FFT 周波数領域、DTMF 音声、SSTV+LSB、DotCode バーコード、独自の周波数デュアルトーンキーパッド、マルチトラック音声の差分減算、チャンネル間マルチビット LSB、音声 FFT の音符、音声メタデータの 8 進数エンコーディング、入れ子の tar による空白文字エンコーディング、パスワードクラックを伴う DeepSound 音声ステガノグラフィ、音声波形のバイナリーエンコーディング、音声スペクトログラムに隠された QR)
- stego-advanced-2.md - 高度なステガノグラフィ パート 2:動画、画像変換、形式固有の技術(動画フレームの蓄積、逆再生音声、動画フレームの平均化、JPEG XL TOC 順列ステガノグラフィ、Arnold's Cat Map によるスクランブル解除、高解像度 SSTV の独自 FM 復調、MJPEG FFD9 末尾バイトのステガノグラフィ、EXIF zlib+Stegano ピクセルパターン、PDF xref 隠しチャネル、ANSI エスケープコードステガノグラフィ、ピクセル単位の ECB 重複排除)
- linux-forensics.md - Linux/アプリのフォレンジック(ログ分析、Docker イメージフォレンジック、攻撃チェーン、ブラウザー認証情報、Firefox の履歴、TFTP、TLS の弱い RSA、USB オーディオ、Git ディレクトリの復元、KeePass v4 のクラック、Git reflog/fsck による squash の復元、ブラウザーアーティファクト分析(Chrome/Chromium/Firefox の履歴、Cookie、ダウンロード、ローカルストレージ、セッション復元)、バイトのブルートフォースによる破損した git blob の修復、VBA マクロの Excel セルデータから ELF バイナリーを抽出、pyrasite による Python のメモリ内ソース復元)
- signals-and-hardware.md - decode code によるハードウェア信号のデコード(VGA フレーム解析、HDMI TMDS シンボルデコード、DisplayPort 8b/10b+LFSR スクランブル解除)、Voyager Golden Record 音声、Saleae Logic 2 UART デコード、Flipper Zero .sub ファイル、サイドチャネル電力解析(DPA)、キーボード音響サイドチャネル、CD 音声ディスクイメージのステガノグラフィ(CIRC のデインターリーブ+らせん状レンダリング)、動画からの Caps Lock LED モールス信号、Linux input_event キーロガーダンプの解析、WAV 音声からのシリアル UART、USB MIDI Launchpad グリッドの再構成
切り替えのタイミング
- 暗号化された blob を復元し、難所が RSA、AES、または格子暗号の解析になった場合は、
/ctf-cryptoに切り替えてください。 - 証拠がマルウェアのステージング、ビーコン設定の抽出、またはパックされたサンプルを明確に示している場合は、
/ctf-malwareに切り替えてください。 - 対象が Web アプリのバックアップまたは API ダンプで、残る問題がアプリケーションロジックである場合は、
/ctf-webに切り替えてください。 - フォレンジック証拠が、真のフォレンジックではなく、エンコーディングパズル、ステガノグラフィの仕掛け、または特殊な形式を示している場合は、
/ctf-miscに切り替えてください。 - フォレンジックの調査結果からインフラを追跡したり、攻撃者を特定したり、公開記録を調査したりする必要がある場合は、
/ctf-osintに切り替えてください。 - 復元した成果物が、逆アセンブルと解析が必要なコンパイル済みバイナリまたはファームウェアの場合は、
/ctf-reverseに切り替えてください。
クイックスタートコマンド
# File analysis
file suspicious_file
exiftool suspicious_file # Metadata
binwalk suspicious_file # Embedded files
strings -n 8 suspicious_file
hexdump -C suspicious_file | head # Check magic bytes
# Disk forensics
sudo mount -o loop,ro image.dd /mnt/evidence
fls -r image.dd # List files
photorec image.dd # Carve deleted files
# Memory forensics (Volatility 3)
vol -f memory.dmp windows.info
vol -f memory.dmp windows.pslist
vol -f memory.dmp windows.filescan
Volatility プラグインの全リファレンス、VM フォレンジック、コアダンプ解析については、disk-and-memory.md を参照してください。
ログ分析
grep -iE "(flag|part|piece|fragment)" server.log # Flag fragments
grep "FLAGPART" server.log | sed 's/.*FLAGPART: //' | uniq | tr -d '\n' # Reconstruct
sort logfile.log | uniq -c | sort -rn | head # Find anomalies
Linux の攻撃チェーン分析と Docker イメージのフォレンジックについては、linux-forensics.md を参照してください。
Windows イベントログ(.evtx)
主なイベント ID:
- 1001 - バグチェック/再起動
- 1102 - 監査ログの消去
- 4720 - ユーザーアカウントの作成
- 4781 - アカウント名の変更
RDP セッション ID(TerminalServices-LocalSessionManager):
- 21 - セッションへのログオン成功
- 24 - セッション切断
- 1149 - RDP 認証成功(RemoteConnectionManager、送信元 IP を含む)
import Evtx.Evtx as evtx
with evtx.Evtx("Security.evtx") as log:
for record in log.records():
print(record.xml())
イベント ID の全テーブル、レジストリ分析、SAM の解析、USN ジャーナル、アンチフォレンジック検出については、windows.md を参照してください。
- NTFS 代替データストリーム(ADS): 名前付き NTFS ストリームを介してファイルに付加される隠しデータです。
dir/Explorer では表示されません。fls -r image.dd | grep ":"で検出し、icatで抽出します。windows.md を参照してください。
ログが消去された場合
攻撃者がイベントログを消去した場合は、次の代替ソースを使用してください。
- USN ジャーナル($J) - ファイル操作のタイムライン(MFT 参照、タイムスタンプ、理由)
- SAM レジストリ - キーの最終更新タイムスタンプからアカウント作成を特定
- PowerShell の履歴 - ConsoleHost_history.txt(USN DATA_EXTEND = コマンドの実行時刻)
- Defender MPLog - 脅威の検出と ASR イベントを記録する個別のログ
- プリフェッチ - プログラム実行の証拠
- ユーザープロファイルの作成 - 初回ログイン時刻(USN ジャーナル内のプロファイルディレクトリ)
詳細な解析コードとアンチフォレンジック検出チェックリストについては、windows.md を参照してください。
ステガノグラフィー
steghide extract -sf image.jpg -p ""
zsteg image.png # PNG/BMP analysis
stegsolve # Visual analysis
-
バイナリ境界ステガノグラフィー: 画像の1ピクセル幅の境界にある白黒のピクセルが、時計回りにビットをエンコードします
-
FFT 周波数領域: 画像データは2次元 FFT の振幅スペクトルに隠されています。
np.fft.fft2で可視化してみてください -
DTMF 音声: データをエンコードした電話音です。
multimon-ng -a DTMFでデコードします -
多層 PDF: 隠しコメント、EOF 後のデータ、キーワードによる XOR、最終層の ROT18 を確認します
-
SSTV + LSB: SSTV 信号はミスリードの可能性があります。
stegolsbで音声サンプルの2ビット LSB を確認します -
SVG キーフレーム: アニメーションの
keyTimes/values属性が、塗りつぶし色の切り替えによってバイナリ/モールス信号をエンコードします -
PNG チャンクの並べ替え: チャンクの順序を修正します:IHDR → 補助チャンク → IDAT(順序どおり)→ IEND
-
ファイルの重ね合わせ: IEND の後に、マジックバイトが上書きされたアーカイブが追加されていないか確認します
-
APNG フレームの抽出: アニメーション PNG には複数のフレームがあります。
apngdisを使うか、fdAT/fcTLチャンクを解析して抽出します。steganography.md を参照してください。 -
PNG の高さ/CRC の操作: IHDR の高さフィールドを変更し、CRC が一致するまで総当たりすることで、隠された行を明らかにします。steganography.md を参照してください。
-
ピクセル座標チェーン・ステガノグラフィー: R=データバイト、G/B=次のピクセル座標としてたどるリンクリストです。stego-image.md を参照してください。
-
AVI フレーム差分: 連続する動画フレームを XOR し、ピクセルの差分に隠されたデータを明らかにします。stego-image.md を参照してください。
-
独自周波数の DTMF: 標準外の二重音周波数です。まずスペクトログラムを生成し(
ffmpeg -i audio -lavfi showspectrumpic)、独自のグリッドをキーパッドの数字に対応付けて、可変長 ASCII をデコードします -
JPEG DQT LSB: 未使用の量子化テーブル(ID 2、3)に LSB でエンコードされたデータがあります。
Image.open().quantizationでアクセスし、64個の値それぞれからビット0を抽出します -
複数トラック音声の減算: MKV/動画内の、ほぼ同一の2つの音声トラックに対して、
sox -m a0.wav "|sox a1.wav -p vol -1" diff.wavを実行すると、共通する内容が相殺されます。差分信号のスペクトログラム(5~12 kHz 帯域)にフラグが現れます -
パケット間隔のタイミング: 間隔値が2種類(例:10ms/100ms)の同一パケットがバイナリをエンコードします。インターフェースでフィルタリングし、パケット間の時間差を計算してしきい値でビットに変換します
コード例とデコードのワークフロー全体については、steganography.md、stego-advanced.md、stego-advanced-2.md を参照してください。
PDF 解析
exiftool document.pdf # Metadata (often hides flags!)
pdftotext document.pdf - # Extract text
strings document.pdf | grep -i flag
binwalk document.pdf # Embedded files
高度な PDF ステガノグラフィー(Nullcon 2026 rdctd): 6つの手法――不可視のテキスト区切り文字、エスケープされた波括弧を含む URI 注釈、ぼかし画像に対するウィーナー・デコンボリューション、ベクター矩形の QR コード、圧縮オブジェクトストリーム(mutool clean -d)、ドキュメントのメタデータフィールド。
PDF ステガノグラフィーの手法とコード全体については、steganography.md を参照してください。
ディスク/VM/メモリフォレンジック
# Disk images
sudo mount -o loop,ro image.dd /mnt/evidence
fls -r image.dd && photorec image.dd
# VM images (OVA/VMDK)
tar -xvf machine.ova
7z x disk.vmdk -oextracted "Windows/System32/config/SAM" -r
# Memory (Volatility 3)
vol -f memory.dmp windows.pslist
vol -f memory.dmp windows.cmdline
vol -f memory.dmp windows.netscan
vol -f memory.dmp windows.dumpfiles --physaddr <addr>
# String carving
strings -a -n 6 memdump.bin | grep -E "FLAG|SSH_CLIENT|SESSION_KEY"
# Coredump
gdb -c core.dump # info registers, x/100x $rsp, find "flag"
Volatility プラグインの完全なリファレンス、VM フォレンジック、VMware スナップショットについては、disk-and-memory.md を参照してください。削除されたパーティションの復旧、ZFS フォレンジック、ランサムウェア解析については、disk-advanced.md を参照してください。
Windows パスワードハッシュ
# Extract with impacket, crack with hashcat -m 1000
python -c "from impacket.examples.secretsdump import *; SAMHashes('SAM', LocalOperations('SYSTEM').getBootKey()).dump()"
SAM の詳細については windows.md を、PCAP からの NTLMv2 クラッキングについては network-advanced.md を参照してください。
Bitcoin の追跡
- mempool.space API を使用します:
https://mempool.space/api/tx/<TXID> - ピールチェーン: 必ずより大きな出力をたどります。端数のない金額はピールを示します
あまり一般的でないファイルマジックバイト
| マジック | 形式 | 拡張子 | 備考 |
|---|---|---|---|
OggS | Ogg コンテナ | .ogg | 音声/動画 |
RIFF | RIFF コンテナ | .wav、.avi | サブフォーマットを確認します |
%PDF | .pdf | メタデータと埋め込みオブジェクトを確認します | |
GCDE | PrusaSlicer バイナリ G-code | .g、.bgcode | 3d-printing.md を参照してください |
よくあるフラグの場所
- PDF のメタデータフィールド(Author、Title、Keywords)
- 画像の EXIF データ
- 削除されたファイル(ごみ箱内の
$Rファイル) - レジストリ値
- ブラウザーの履歴
- ログファイルの断片
- メモリ内の文字列
WMI 永続化の分析
パターン(Backchimney): マルウェアは、永続化のために WMI イベントサブスクリプションを使用します(MITRE T1546.003)。
# Tool: https://github.com/davidpany/WMI_Forensics (run against a copy of OBJECTS.DATA)
python WMI_Forensics/PyWMIPersistenceFinder.py OBJECTS.DATA
- CommandLineEventConsumer と関連付けられた FilterToConsumerBindings を探します
- コンシューマーコマンド内の Base64 エンコードされた PowerShell を探します
- システムイベント(ログオン、タイマー)でトリガーされるイベントフィルターを探します
WMI リポジトリ(OBJECTS.DATA)の場所と関連するアンチフォレンジックアーティファクトについては、windows.md を参照してください。
ネットワークフォレンジックのクイックリファレンス
- TFTP netascii: バイナリ転送は破損します。
data.replace(b'\r\n', b'\n').replace(b'\r\x00', b'\r')で修正します - TLS キーログの復号: Wireshark に SSLKEYLOGFILE または RSA 秘密鍵をインポートします(Edit → Preferences → Protocols → TLS)
- TLS の脆弱な RSA: 証明書を抽出し、モジュラスを素因数分解して、
rsatoolで秘密鍵を生成し、Wireshark に追加します - USB オーディオ:
tshark -e usb.iso.dataでアイソクロナスデータを抽出し、Audacity に RAW PCM としてインポートします - PCAP から NTLMv2 を取得: NTLMSSP_AUTH からサーバーチャレンジ、NTProofStr、blob を抽出し、ブルートフォースを実行します
- WPA/WEP WiFi の復号:
aircrack-ng -w wordlist capture.pcapで WPA ハンドシェイクを解読します。WEP は十分な数の IV があれば解読できます。network.md を参照してください。 - PCAP の修復:
pcapfix -d corrupted.pcapで、Wireshark に読み込むために壊れた PCAP ヘッダー/チェックサムを修復します。network.md を参照してください。 - USB HID キーボードのデコード: USB キャプチャから 8 バイトの HID レポートを抽出します。バイト 2 はキーコード、バイト 0 は修飾キー(Shift)です。peripheral-capture.md を参照してください。
- dnscat2 の再構成: 16 進数/base32 のサブドメインラベルをデコードし、9 バイトの dnscat2 ヘッダーを取り除き、再送を重複排除して、ペイロードを再構成します。network-advanced.md を参照してください。
- USB キーボード LED による情報持ち出し: ホストからデバイスへの HID SET_REPORT パケットで Caps Lock LED を切り替えます。タイミングによってモールス信号をエンコードします。peripheral-capture.md を参照してください。
SMB3 の復号と認証情報の抽出については network.md を、TLS/TFTP/USB の全ワークフローについては linux-forensics.md を参照してください。
ブラウザーフォレンジック
- Chrome/Edge: DPAPI マスターキーを使い、AES-GCM で
Login DataSQLite を復号します - Firefox:
places.sqliteをクエリします --SELECT url FROM moz_places WHERE url LIKE '%flag%'
ブラウザーの認証情報を復号するコード全体については、linux-forensics.md を参照してください。
その他の手法のクイックリファレンス
- Docker イメージのフォレンジック: クリーンアップ後も、Config JSON にはすべての
RUNコマンドが保持されています。tar xf app.tarを実行し、config blob を調べます。linux-forensics.mdを参照してください。 - Linux の攻撃チェーン:
auth.log、.bash_history、最近のバイナリ、PCAP を確認します。linux-forensics.mdを参照してください。 - RAID 5 の XOR 復元: 3 ディスクの RAID 5 から 2 台のディスクがある場合、バイトごとに XOR して 3 台目を復元します:
bytes(a ^ b for a, b in zip(disk1, disk3))。disk-advanced.mdを参照してください。 - GIMP による生メモリダンプの目視検査: Volatility が失敗した場合は、
.dmpを GIMP でモニター幅(約1920)の生 RGB データとして開き、スクロールしてユーザーのデスクトップのフレームバッファスクリーンショットを探します。disk-and-memory.mdを参照してください。 - Kyoto Cabinet ハッシュ DB のフォレンジック: キーがゼロ化された KC ハッシュデータベースに連続したプローブキーを挿入し、バイナリ差分を調べて各キーが上書きするハッシュスロットを特定し、キーの順序を復元します。disk-advanced.mdを参照してください。
- PowerShell ランサムウェア: ミニダンプからスクリプトを抽出し、AES キーを見つけて、SMTP 添付ファイルを復号します。disk-and-memory.mdを参照してください。
- Linux ランサムウェアとメモリダンプ: Volatility の信頼性が低い場合は、生メモリ内の候補をスキャンしてマジックバイトを検証し、AES キーを復元します。ファイルの欠落や誤検出を避けるため、zip をクリーンに再抽出します。disk-advanced.mdを参照してください。
- 削除されたパーティション:
testdiskまたはkpartx -avを使います。disk-advanced.mdを参照してください。 - ZFS のフォレンジック: ラベル、Fletcher4 チェックサム、PBKDF2 クラッキングを復元します。disk-advanced.mdを参照してください。
- BSON の再構築: 生バイトから BSON(Binary JSON)ドキュメントを再構成し、Python の
bsonライブラリで解析します。disk-and-memory.mdを参照してください。 - TrueCrypt のマウント: 既知のパスワードで TrueCrypt/VeraCrypt ボリュームを
veracrypt --mountまたはcryptsetup open --type tcryptでマウントします。disk-and-memory.mdを参照してください。 - ハードウェア信号: VGA/HDMI TMDS/DisplayPort、Voyager オーディオ、Saleae UART デコード、Flipper Zero。signals-and-hardware.mdを参照してください。
- 動画からの Caps Lock LED モールス信号: OpenCV で監視カメラ映像の各フレームから Caps Lock LED のピクセルを追跡します。点灯/消灯の長さがモールス信号(短点=ドット、長点=ダッシュ)を表します。signals-and-hardware.mdを参照してください。
- I2C プロトコルのデコード: I2C バスのキャプチャ(SDA/SCL ライン)をデコードし、EEPROM またはセンサー通信からデータを抽出します。signals-and-hardware.mdを参照してください。
- パンチカードの OCR: 標準のエンコーディンググリッドを使って穴の位置を文字に対応付け、IBM-29 パンチカード画像をデコードします。signals-and-hardware.mdを参照してください。
- USB HID マウスによる描画: 描画モードごとに相対 HID 移動をビットマップとしてレンダリングし、モードを分離して、ペンを持ち上げた箇所をスキップし、5~8倍に拡大します。peripheral-capture.mdを参照してください。
- サイドチャネル電力解析: 多次元の電力トレース(位置 × 推測値 × トレース × サンプル)を扱います。トレース全体を平均し、分散が最大のサンプルを見つけ、漏洩ポイントで電力が最大となる推測値を選びます。signals-and-hardware.mdを参照してください。
- パケット間隔のタイミング: PCAP では、パケット間の遅延としてバイナリデータがエンコードされます。2種類の間隔が2種類のビット値に対応します。network-advanced.mdを参照してください。
- BMP ビットプレーン QR: NumPy で各 RGB チャネルのビットプレーン 0~2 を抽出します。隠された QR はビット 0 ではなく、ビット 1 にあることがよくあります。stego-image.mdを参照してください。
- 画像パズルの再構成: ピースの縁のピクセル差分を照合し、グリッドに貪欲に配置します。stego-image.mdを参照してください。
- パスワードクラッキングを伴う DeepSound 音声ステガノグラフィ:
deepsound2john.pyでハッシュを抽出し、John でクラッキングして、WAV から隠しファイルを取得します。スペクトログラムと DeepSound の両方を必ず確認してください。stego-advanced.mdを参照してください。 - 湾曲した反射からの QR コード再構成: 動画内のガラス球の反射から QR を手作業で再構成します。反転して歪みを補正し、既知の平文プレフィックスで先頭のバイトを修正します。高い ECC によって残りが訂正されます。steganography.mdを参照してください。
- 音声 FFT の音符: 卓越周波数を音名(A~G)に変換すると、単語が綴られます。stego-advanced.mdを参照してください。
- 音声メタデータの8進数: Exiftool のコメントにあるアンダースコア区切りの8進数を、ASCII/base64 にデコードします。stego-advanced.mdを参照してください。
- G-code の可視化: 側面投影(XZ/YZ)からテキストが見つかります。3d-printing.mdを参照してください。
- Git ディレクトリの復元: 公開されている
.gitディレクトリにはgitdumper.shを使います。linux-forensics.mdを参照してください。 - KeePass v4 のクラッキング: 標準の
keepass2johnは v4/Argon2 をサポートしていません。ivanmrsulja/keepass2johnフォークまたはkeepass4bruteを使います。cewlでワードリストを生成します。linux-forensics.mdを参照してください。 - チャネル間マルチビット LSB: RGB チャネルごとに異なるビット位置(R[0]、G[1]、B[2])に隠しデータがエンコードされています。stego-advanced.mdを参照してください。
- F5 JPEG DCT の検出: F5 を使うと、±1 と ±2 の AC 係数の比率は約3:1から約1:1に低下します。疎な画像では、±2/±3 の指標も追加で確認する必要があります。stego-image.mdを参照してください。
- PNG 未使用パレットのステガノグラフィ: ピクセルから参照されていない未使用の PLTE エントリには、赤チャネルの値に隠しデータが含まれています。stego-image.mdを参照してください。
- キーボード音響サイドチャネル: キー入力音声から MFCC 特徴量を抽出し、ラベル付き参照データに対して KNN 分類します。10ms のウィンドウで打鍵の過渡音を捉えます。signals-and-hardware.mdを参照してください。
- TCP フラグの隠蔽チャネル: 6つの TCP フラグ(FIN/SYN/RST/PSH/ACK/URG)は値0~63に対応し、base64 文字をエンコードします。一貫した宛先ポートで意味をなさないフラグの組み合わせは、隠蔽データの可能性があります。network-advanced.mdを参照してください。
- Brotli 展開爆弾の継ぎ目: 圧縮爆弾には繰り返しブロックがあり、継ぎ目でそのパターンが崩れます。隣接するブロックを比較して不連続点を見つけ、その領域だけを展開します。network-advanced.mdを参照してください。
- Git reflog/fsck による squash の復元:
git rebase --squashでは、git fsck --unreachable --no-reflogsで復元可能な孤立オブジェクトが残ります。linux-forensics.mdを参照してください。 - DNS 末尾バイトのバイナリ: DNS の質問構造の後に追加されたバイト(
0x30/0x31)がバイナリビットをエンコードします。8ビットの MSB ファーストのチャンクを ASCII に変換します。network-advanced.mdを参照してください。 - 偽装 TLS+mDNS キー+印字可能文字のマージ: TLS を装った TCP ストリームに ZIP が隠され、mDNS TXT レコードの XOR キーを使います。復号した2つの配列から印字可能文字を選択して結合します。network-advanced.mdを参照してください。
- シードベースのピクセル置換ステガノグラフィ: 既知のシードを使った決定的なピクセルシャッフル(Fisher-Yates)と、Y チャネルからのマルチビットプレーンのインターリーブ LSB 抽出により、隠された QR コードを取得します。stego-image.mdを参照してください。
- BTRFS スナップショットの復元: 削除されたファイルは、BTRFS のスナップショット/別のサブボリュームに残っていることがあります。
mount -o subvol=@backupで過去のコピーにアクセスします。disk-recovery.mdを参照してください。 - JPEG XL TOC の順列: JXL のプログレッシブ TOC の順列は、部分デコード時のタイルの収束順を制御します。オフセットを増やしながら切り詰め、どのタイルが最初に収束するかを測定すると、収束順にフラグがエンコードされています。stego-advanced-2.mdを参照してください。
- Kitty ターミナルのグラフィックス:
ESC_Gプロトコルは、zlib 圧縮された RGB 画像データを base64 チャンクに埋め込みます。エスケープシーケンスを除去し、チャンクを連結して展開し、再構成します。steganography.mdを参照してください。 - ANSI エスケープシーケンスのステガノグラフィ: フラグのテキストは ANSI カラーコードと点字文字の間にインターリーブされています。レンダリングすると見えませんが、エスケープシーケンスと非 ASCII 文字を除去すると抽出できます。steganography.mdを参照してください。
- オートステレオグラムの解読: レイヤーを複製して差分合成し、水平方向に約100pxずらすと、隠された3Dテキストが現れます。steganography.mdを参照してください。
- バイト+行の2層インターリーブ: 2つのファイルがバイト単位でインターリーブされた後、走査線もインターリーブされています。まず偶数/奇数バイトを分離して有効な画像を得てから、偶数/奇数の行を分離します。steganography.mdを参照してください。
- SMB RID の再利用: ゲスト認証と LSARPC の
LsaLookupSidsによる RID の連番照会で、PCAP から AD アカウントを列挙します。network-advanced.mdを参照してください。 - Timeroasting(MS-SNTP): マシン RID を使った NTP リクエストで DC から HMAC-MD5 ハッシュを抽出し、hashcat -m 31300 でクラッキングします。network-advanced.mdを参照してください。
- Android のフォレンジック:
adb pullで APK を抽出し、apktoolで解析して、/data/data/<package>/内のshared_prefs/と SQLite データベースを確認します。disk-and-memory.mdを参照してください。 - Docker コンテナのフォレンジック:
docker saveはレイヤー化された tar をエクスポートします。削除されたファイルは以前のレイヤーに残っています。docker history --no-truncでビルド時の秘密情報が見つかります。disk-and-memory.mdを参照してください。 - クラウドストレージのフォレンジック: S3/GCP/Azure のバージョニングでは、削除されたオブジェクトが保持されます。
list-object-versionsで削除されたフラグを復元できます。disk-and-memory.mdを参照してください。 - APFS スナップショットの復元: コピーオンライトファイルシステムでは、スナップショットに過去のファイル状態が保持されます。異なる XID ブロックオフセットで
icatを使い、トランザクション ID をまたいで inode を読み取ります。disk-advanced.mdを参照してください。 - Windows KAPE のトリアージ: 事前収集されたアーティファクトの ZIP を使います。PowerShell の履歴 → Amcache → MFT → レジストリハイブの順に確認します。disk-and-memory.mdを参照してください。
- WordPerfect マクロの XOR:
.wcmファイルには、暗号化されたデータが埋め込まれたマクロが含まれています。XOR の式(a+b)-2*(a&b)はビット単位の XOR と同じです。disk-advanced.mdを参照してください。 - コアダンプからの TLS マスターキー: Wireshark のハンドシェイクから得たセッション ID をコアダンプ内で検索し、その直前の48バイトをマスターキーとして読み取ります。Wireshark の pre-master-secret ログファイルを作成します。network.mdを参照してください。
- 破損した Git blob の修復: 1バイトの破損でも SHA-1 が変わります。各バイト位置について総当たり(256 × ファイルサイズ)し、
git hash-objectで検証します。linux-forensics.mdを参照してください。 - PCAP からの分割アーカイブ再構成: HTTP で転送された同サイズのファイルが MD5 ハッシュ名なら、アーカイブの断片です。Apache のディレクトリ一覧のタイムスタンプで順序を決めて連結し、TCP チャットストリームからパスワードを抽出します。network.mdを参照してください。
- 動画フレームの累積: さまざまな位置に点滅画像が表示される動画では、全フレームを合成すると(ピクセルごとの最大値)、隠された QR コードや画像が現れます。stego-advanced-2.mdを参照してください。
- 逆再生音声: 逆再生すると音声に聞こえる、乱れた音声です。
sox audio.wav reversed.wav reverseまたは Audacity の「エフェクト」→「逆再生」で隠されたメッセージが見つかります。stego-advanced-2.mdを参照してください。 - マルチストリーム動画コンテナのステガノグラフィ: MP4/MKV に複数の動画ストリームが含まれています。デフォルトのストリームはダミーで、フラグは副ストリームにあります。
ffprobe -hide_banner file.mp4で一覧表示し、ffmpeg -i file.mp4 -map 0:1 -frames:v 1 flag.jpgで抽出します。steganography.mdを参照してください。 - FAT16 空き領域の復元: FAT16 ファイルシステムの未割り当てクラスタにフラグが隠されています。FAT テーブルを解析し、空きクラスタ(エントリ=0x0000)を列挙して、データ領域を読み取ります。disk-recovery.mdを参照してください。
- FAT16 削除ファイルの復元(fls/icat): FAT では、削除時にディレクトリエントリの先頭バイトが
0xE5に置き換えられますが、データは残っています。fls -r -d image.imgで削除済みエントリを一覧表示し、icat image.img <inode>で inode を指定して復元します。disk-recovery.mdを参照してください。 - Ext2 孤立 inode の復元: 削除されたファイルの inode は孤立したまま残ります。
e2fsck -y disk.imgで/lost+foundに再接続できます。debugfsのlsdelまたはicatも使えます。disk-recovery.mdを参照してください。 - Linux input_event キーロガーの解析: 24バイトの
struct input_eventバイナリダンプを解析します。type==1(EV_KEY)かつvalue==1(押下)でフィルターし、input-event-codes.hを使ってキーコードを対応付けます。signals-and-hardware.mdを参照してください。 - VBA マクロのセルデータからバイナリへの変換: 数値が格納された Excel セルに対し、VBA の
CByte((val-78)/3)で ELF バイトに変換します。Python で再実装し、マクロは決して実行しないでください。linux-forensics.mdを参照してください。 - RGB パリティのステガノグラフィ: ピクセルごとに R+G+B を合計し、偶数なら白、奇数なら黒として、隠されたバイナリビットマップを表示します。stego-image.mdを参照してください。
- 隠された PDF オブジェクト:
/Kids配列から参照されていないコンテンツストリームオブジェクトです。/Kidsに追加し、/Countを増やして再レンダリングします。network-advanced.mdを参照してください。 - Arnold's Cat Map によるスクランブル解除: 正方形画像に対する周期的なカオス変換です。元の画像が再び現れるまで順変換を繰り返します。周期は
GL(2, Z_N)における行列の位数です。stego-advanced-2.mdを参照してください。 - Python のメモリ内ソースの復元: 実行中の Python プロセスに
pyrasite-shellを接続し、uncompyle6.main.decompile(Python <=3.8)またはpycdc(Python 3.9+)で__code__オブジェクトを逆コンパイルし、秘密情報を探すためにglobals()をダンプします。linux-forensics.mdを参照してください。 - HFS+ リソースフォークの復元: HFS+ リソースフォーク内の隠しデータは
binwalk/foremostでは見えません。HFSExplorer と 010 Editor の HFS テンプレートを使い、エクステントレコードを抽出します。disk-advanced.mdを参照してください。 - WAV 音声からのシリアル UART: 音声内の矩形波が UART シリアルデータをエンコードしています。ボーレートを特定し、スタート/ストップビットを解析して、LSB ファーストのバイトフレームをデコードします。signals-and-hardware.mdを参照してください。
- 高解像度 SSTV の復調: 標準の SSTV デコーダーは高サンプルレートの録音では失敗します。
arccosと微分を使った手動 FM 復調を行います。stego-advanced-2.mdを参照してください。 - 破損した ZIP ヘッダーの修復: Local File Header(オフセット26)と Central Directory(オフセット28)の両方でファイル名長フィールドを修正します。代替策として、候補オフセットで raw deflate を総当たりします。disk-recovery.mdを参照してください。
- SQLite 編集履歴の再構成: SQLite の差分テーブルから挿入/削除の差分を再生し、すべての中間状態でドキュメントを再構成します。フラグは一度入力された後、削除された可能性があります。disk-advanced.mdを参照してください。
- MJPEG FFD9 末尾バイトのステガノグラフィ: MJPEG フレームの JPEG EOI マーカー(FFD9)後にある追加バイトは、目に見えない隠蔽チャネルを形成します。FFD8 で分割し、FFD9 後のデータを抽出します。stego-advanced-2.mdを参照してください。
- USB MIDI Launchpad グリッドの再構成: USB PCAP 内の MIDI Note On/Off は、8x8 Launchpad グリッド(
key = row*16 + col)に対応します。ボタン押下のシーケンスから視覚的なパターンを再構成します。signals-and-hardware.mdを参照してください。
LSARPC による SMB RID の再利用(Midnight 2026)
Guest 認証後に連続する RID を使用して行われる LSARPC LsaLookupSids 呼び出しを解析し、PCAP から AD アカウントを列挙します。フィルター:dcerpc.cn_bind_to_str contains lsarpc。
RPC 呼び出しの完全なシーケンスと Wireshark フィルターについては、network-advanced.md を参照してください。
Timeroasting / MS-SNTP ハッシュ抽出(Midnight 2026)
マシンアカウントの RID を指定して NTP リクエストを送信し、MS-SNTP の応答からクラック可能な HMAC-MD5 ハッシュを抽出します。hashcat -m 31300 でクラックします。
# Extract NTP payloads, convert to hashcat format, crack
tshark -r capture.pcapng -Y "ntp && ip.src == <DC_IP>" -T fields -e udp.payload
hashcat -m 31300 -a 0 -O hashes.txt rockyou.txt --username
ペイロードの解析スクリプトと攻撃チェーンの全容については、network-advanced.md を参照してください。
PCAP 内の HTTP による持ち出し
手早い方法: tshark --export-objects http,/tmp/objects を実行すると、アップロードされたファイルをすぐに抽出できます。multipart POST のアップロード、通常と異なる User-Agent 文字列、持ち出されたファイル(フラグのテキストが含まれる画像)を確認してください。network.md を参照してください。
一般的なエンコーディング
echo "base64string" | base64 -d
echo "hexstring" | xxd -r -p
# ROT13: tr 'A-Za-z' 'N-ZA-Mn-za-m'
ROT18: 文字には ROT13、数字には ROT5 を適用します。多段階フォレンジックの最後のレイヤーとしてよく使われます。実装については、linux-forensics.md を参照してください。