はまやんはまやんはまやん

hamayanhamayan's blog

CTFのフォレンジックにおけるディスクイメージフォレンジックまとめ [ファイルシステム]

親記事 → CTFにおけるフォレンジック入門とまとめ - はまやんはまやんはまやん

(若干、工事中)

ディスクイメージフォレンジック

  • ディスクイメージをそのままダンプしてきて解析する問題
  • ファイルシステムを仕様に沿ってちゃんと解析する難しい問題も見たことはあるが、基本的にはマウントして中に入っている情報から有意な情報を抜き出してくるような問題が多い
    • そのため、ファイルシステムに対する理解というよりかは、入っているOSのファイルを保存のされ方とか解析方法が要求されている

ファイルシステム自体

  • (あんま自信ないな。変なのが紛れ込んでるかも)
  • ツールについて
    • とりあえずFTK Imagerに突っ込めば中に入っているデータは見られる
    • AutoPsyが読み込み対応していれば、自動で色々解析してくれる
      • 削除済みアイテムも自動で復元してくれる
    • mountコマンドでマウントできるかも
  • ジャーナルファイル
  • パーティション方式 MBR, GPT, ...
    • ブートローダーの解析とかってCTFで出たことあるんでしょうか…?
  • ファイルシステム ext4, NTFS, ...
  • 暗号化ディスク
    • TrueCrypt
    • VeraCrypt
    • BitLocker
  • 削除済みファイル
    • 普通の削除では参照が切れているだけでデータはまだ残っている。ツールを使えば復元可能。なんでもいいが、AutoPsyが使えるならオススメ
  • RAIDの解析という難題もあるっぽい

Windows

  • NTFS
    • ADS: Alternate Data Stream
    • USNジャーナル
    • $MFT
      • linuxにおけるinodeのようなもので、ファイルの作成とかを抽出可能。ファイルの内容の断片も読み取れるかも
      • MFT Explorerで$MFTを読む
        • Resident Data Data: 7B-52-33-73-69-64-65-6E-74-21-61-6C-7Dみたいにあれば一部データを読める。
  • Windowsの見るところはたくさんあるが、有名どころを紹介しておく
    • WindowsアーティファクトのあれこれはだいたいEric Zimmerman's toolsで分析可能
    • レジストリ
      • ZimmermanToolsのRegistryExplorerで開いて読めばいい
      • 保存場所
        • PC全体 %SystemRoot%\System32\Config\ (%SystemRoot%はC:\Windows)
        • ユーザー固有 ~\Ntuser.dat
    • イベントログ
    • 主要フォルダを漁ってみる
      • Cドライブ直下
      • Usersフォルダの中(特に%appdata%)
      • ProgramData
      • Program Filesから入っているソフトウェアを特定して設定ファイルとかログとか漁る
    • プリフェッチ
      • C:\windows\Prefetchに保存されている。exeの起動履歴を確認可能
      • WinPrefetchView
    • WMIレポジトリ
    • C:\WINDOWS\setupapi.log
      • ドライバとかのログが入っている
    • RDP Bitmap Cache (BMC)
      • BMCとはRDPの画面キャッシュのこと。取り出して画面を一部盗み見れる
      • ツール
        • bmc-tools キャッシュを持ってきて、断片的な画像復元までできる
        • RdpCacheStitcher 断片的な復元画像から画面全体の復元までできる
          • 手動で置いていくのだが、隣り合っている可能性を色の濃淡で教えてくれる
    • 他にもSRUMなど、ほんとに色々ある
  • PowerShell解析
    • よくWindows向けの攻撃で難読化されたPowerShellを解析する問題がよく見られる
    • 難読化されたPowershellを解読していく
      • 自分は実際のpowershellを使いながら、部分部分ちょこちょこ解読進めている
      • 実際に動かすときは注意すること。せめてWindows Sandbox使うこと
  • VBAスクリプト解析
    • OfficeファイルでVBAスクリプトが難読化されて与えられる場合もある。頑張って解析。
  • クラッシュログ
    • WinDbg Previewで見ていく
    • 正直あまり知見無し。!analyze -vとかコマンドを駆使して確認していく

Linux

  • あんまり知見なし
  • inode
  • 確認フォルダ
  • カーネルクラッシュログ
    • crashコマンドで開いてみていく crash /usr/lib/debug/boot/vmlinux-5.4.0-99-generic ./ubuntu20.04-5.4.0-99-generic-cloudimg-20220215.kdump
    • crashコマンド使い方(>helpでヘルプが見られる)
      • 起動時
        • PANIC: パニック理由が分かる
        • COMMAND: パニックが起きたコマンド
      • >bt back traceを確認可能
      • >ps タスクリスト
      • >p [変数名] グローバル変数が見れる
        • >p jiffies 起動時からカウントアップされる変数
        • >p vermagic カーネルソースの include/linux/vermagic.h にカーネルバージョンに加えて、主要な Config オプションが記載されます
      • >files [pid] タスクごとのファイルディスクリプターが見られる
        • >filesと単にやるとクラッシュしたもので見られる
        • foreachを使うやり方も色々紹介されている
          • >foreach files -R /var/log
          • foreach files -R /home
      • >mod モジュール一覧表示
        • 実はgrepも使える`>mod | grep xxx
      • >net IF表示
  • クラッシュログ
    • クラッシュを引き起こすには
      • Ctrl+zで離れてpsでPID探してkill -SIGSEGV [pid]でkillしてfgで戻るとクラッシュするかも
      • クラッシュダンプは/var/crashesに置かれる
    • apport-unpackでクラッシュダンプを解析する
      • apport-unpack _opt_count.1000.crash /tmp/crash-reportみたいに解凍
      • CoreDumpにメモリダンプが置かれる?

macOS

闇だとは聞くが、知見なし

Android環境の解析問題もある

dockerコンテナ

  • ディスクイメージとちょっと違うかもしれないが、dockerコンテナ自体が与えられて解析ということもある
  • dive
    • Dockerイメージを分析するツール
    • Layer毎で何が起きたのかを一目で確認可能
    • dockerイメージに対して何かする問題では試してみる価値あり
  • docker save test/xyz > dumped.tar
    • レイヤー毎のダンプができる。diveでレイヤーのIDを取得してきて対応するフォルダを見てみる