0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Timeline 0 (Writeup)

0
Posted at

【picoCTF】[Timeline 0] Writeup

問題概要

  • Category: Forensics

Description:

Can you find the flag in this disk image? Wrap what you find in the picoCTF flag format.
Download the disk image here.

日本語訳:

このディスクイメージの中からフラグを見つけられますか?見つけたものは、picoCTFのフラグ形式で記述してください。
ディスクイメージはこちらからダウンロードしてください。


解法のプロセス(アプローチ)

1. ファイルの確認とツールの準備

まずはダウンロードしたファイル(partition4.img.gz)を解凍します。

gunzip partition4.img.gz

解凍して partition4.img を得ることが出来ました。中身を見てみようとファイルを開いてみますが……

image.png

はい、見ることが出来ません。
なぜなら、今回扱う partition4.img は普通のファイルではなく、ハードディスクやUSBメモリなどの区画(パーティション)を**「1ビットの狂いもなく丸ごとコピーしたデータ(RAWイメージ)」**だからです。
OSの標準機能では単なる「巨大な謎のデータ」としてしか認識できないため、解析専用の強力なツールである 「The Sleuth Kit (TSK)」 が必要となります。

💡 The Sleuth Kit のインストール方法 (Linux環境の場合)
ターミナルから以下のコマンドを実行してインストールしておきましょう。

sudo apt update
sudo apt install sleuthkit

これを用いて、ディスクイメージの内部を解析していきます。

2. ディスクイメージ内のタイムライン作成(fls & mactime)

まずは fls コマンドを使って、ディスクイメージの中にあるファイルやフォルダの一覧(リスト)を抽出します。

fls -m / -r partition4.img > output.txt
  • -m / : mactime コマンドが読み込める特殊なフォーマット(ボディファイル形式)で出力する指示。
  • -r : フォルダの中身も再帰的にすべてリストアップする指示。

次に、このリストを時間軸(タイムライン)順に並べ替えるため、mactime コマンドを使用します。

mactime -b output.txt > timeline.txt

これで、同じディレクトリ内に timeline.txt という、古い情報から順に並んだテキストファイルが作成されました。
今回は「不自然な時間軸(Timeline)」が鍵になりそうなので、ファイルの先頭(古い年代)の中身を確認して怪しい年代がないか探します。

head -n 20 timeline.txt

実行結果(一部抜粋):

Wed Jan 02 1985 02:00:00       41 macb r/rrw-r--r-- 0        0        4945     /bin/bcab
Tue Oct 19 2021 02:54:17      451 ma.. r/rrw-r--r-- 0        0        64994    /usr/share/apk/keys/...

他のファイルが2021年以降に作成されている中、一番上の行にある /bin/bcab というファイルだけが 1985年 と明らかに不自然なタイムスタンプになっています。これが怪しいですね!

3. ファイルの抽出とフラグの獲得(icat)

ログの該当行を見ると、/bin/bcab のiノード番号(データの実体を指し示す番号)が 4945 であることが分かります。
The Sleuth Kitの icat コマンドを使うと、このiノード番号を指定してファイルの中身を直接覗き見ることができます。

icat partition4.img 4945

実行結果:

NzFtMzExbjNfMHU3MTEzcl9oM3JfNDNhMmU3YWYK

謎の文字列が得られました。使用されている文字の傾向から、Base64でエンコードされているっぽいです。
この文字列をコピーし、CyberChef に貼り付けて 「From Base64」 レシピでデコードしてみます。

スクリーンショット 2026-03-30 210523.png

71m311n3_0u7113r_h3r_43a2e7af が得られました。
最後に、問題文の指示通りにこの文字列を picoCTF{} の形式で包めばフラグの完成です!

Flag:
picoCTF{71m311n3_0u7113r_h3r_43a2e7af}


お疲れさまでした!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?