はじめまして.CTF初心者の試行錯誤を少し交えながら書きたいと思います.
問
Find the flag.
解
タイトルから推測すると,USBフラッシュドライブのイメージファイルが渡されたので,マウントしてみると
- Carl Larsson Brita as Iduna.jpg
- Mona Lisa.jpg
- The Great Wave off Kanagawa.jpg
の3枚の画像が入っていました.これらファイルに怪しい点がなかったので,fls
とicat
を使ってみることにしました.
$ fls drive.img
r/r 4-128-4: $AttrDef
(省略)
r/r 3-128-3: $Volume
r/r 35-128-1: Carl Larsson Brita as Iduna.jpg
r/r 37-128-1: Mona Lisa.jpg
r/r 38-128-1: The Great Wave off Kanagawa.jpg
-/r * 36-128-1: Liberty Leading the People.jpg
-/r * 36-128-4: Liberty Leading the People.jpg:00
-/r * 36-128-5: Liberty Leading the People.jpg:01
-/r * 36-128-6: Liberty Leading the People.jpg:02
-/r * 36-128-7: Liberty Leading the People.jpg:03
-/r * 36-128-8: Liberty Leading the People.jpg:04
-/r * 36-128-9: Liberty Leading the People.jpg:05
-/r * 36-128-10: Liberty Leading the People.jpg:06
V/V 256: $OrphanFiles
どうやら削除された Liberty Leading the People.jpg というファイルが存在するようなので,icat
で取り出し.
$ icat drive.img 36 > hoge.jpg
このファイルを開くと民衆を導く自由の女神の画像下部に
The flag is in this file, but not in this image.
と記載されていたので,バイナリエディタやステガノグラフィの各種ツール群でいろいろ試してみましたが,何も出てきませんでした.ここで,「"The flag"はフランス国旗のことを指しているのか?🤔」と思ったので別の試行をすることにしました.
autopsy
でUSBフラッシュドライブのイメージファイルを開いて Liberty Leading the People.jpg:00 をクリックすると "FLA"の文字列が表示されました.😓それ以降のファイルもどうやらFLAGの一部っぽかったのでこれらファイルをすべて保存し,下記コマンドで結合しました.
$ cat vol1-C..Liberty.Leading.the.People.jpg.* > out.txt
結合後の文字列が "FLAG_hogehoge" となっていたので,これで回答すると正解でした.
余談ですが,:00のファイル群もicat
で取り出せることを確認しました.
$ icat drive.img 36-128-4
FLA
所感
fls
で:00等のファイル群が表示されたときは,「ファイルが断片化したものかな?」と思っていたので盲点でした.とても勉強になったので良かったと思います.
今回の"FLA"の偶然の発見から,GUIのツールを利用することで気づきやすいこともあるのかなと思いました.
疑問点
fls
やautopsy
で表示されるType dir/in
がよくわからなかった.r
がファイルd
がディレクトリを示していることはわかったけど, dir/in
が何を指しているのかググったけどわからなかったのでご教授いただけると嬉しいです.