2>/dev/null

ふぉれんじっくやさんになりたいです

【Forensics 1.0.2α】SusecCTF writeup

記事にするの遅すぎ


以下の問題を解きました。

  • Little

Little

problem.txt

Little

Points
102
Solves
45
Category
Forensics
Description:
A little boy is playing around in his grandfather's attic, where he finds a magical box. Help him discover what is in the box[little.img_03551d5d361ae5f58675f065da899e9f6e9e3361.txz].
ATTENTION: The flag that you are going to capture for this task does not contain the word "SUSEC{", but you have to add this word to the beginning of the discovered flag before submitting it.

解答の方針

txzファイルの中身がイメージファイルだったので、これをどうにかする

img_stat little.img

IMAGE FILE INFORMATION

                                                                                      • -

Image Type: raw

Size in bytes: 67108864

  1. mmlsでオフセット確認しようとするも破損してたからbinwalkで抽出。

binwalk --dd='.*' -Me little.img(これがimgファイルを再帰的に漏れなく抽出してくれる優れものらしい…)


DECIMAL HEXADECIMAL DESCRIPTION

                                                                                                                                                              • -

0 0x0 Linux EXT filesystem, rev 1.0, ext2 filesystem data, UUID=e0676215-9cc7-abbd-f840-953aacffacff
1160 0x488 Unix path: /home/susec/your_searching_/name_is/junk
279112 0x44248 Unix path: /home/susec/your_searching_/name_is/littleBoy.img
524288 0x80000 Linux EXT filesystem, rev 1.0, ext2 filesystem data, UUID=e0676215-9cc7-abbd-f840-953aacffacff
532480 0x82000 PNG image, 1024 x 300, 8-bit/color RGB, non-interlaced
532754 0x82112 Unix path: /www.w3.org/1999/02/22-rdf-syntax-ns#">

なんかいろいろ書いてあるが、とりあえず抽出したファイルを覗くと

f:id:taikohaijin44:20200503041641p:plain
second

どうやらフラグは複数集めて完成させるタイプの奴らしい…
これは二番目だった。

また、上記はbinwalkをただかけるだけでなにも趣がないので別解もやる。

  1. mmlsではわからない情報がfsstatで-i filetype imgfileで

分かるらしい。

f:id:taikohaijin44:20200523024640p:plain
出力

(*1)これでfile system typeがEXT2/3/4 or FATと判明したため、

  1. fls -i raw -f ext -pr little.img で

ディスクイメージからファイル、ディレクトリとinode情報を抜き出す。(-prオプションは-pでファイルのフルパス、-rで再帰的処理らしいです)

f:id:taikohaijin44:20200523030053p:plain
susec2

さて、icatでファイルを出力します。

  1. icat -i raw -f ext little.img 25 > seconf.png

この手法でやれば、slueth kitの理解も深まります。

[guess]
secondfファイルがあったので、first,thirdもあるだろうと思い、stringsにかける。
#

f:id:taikohaijin44:20200523040420p:plain
strings

[guess?]
あったので、他のファイルシステムも同様にflsコマンドにかけて調べる。

fls -i raw -f fat -pr little.img

f:id:taikohaijin44:20200523042500p:plain
fat

何やらfirstf.kgbという名のファイルが出現した。

en.wikipedia.org

どうやら圧縮ファイルのようなのは分かったが…聞いたことないファイル形式だ…

ひとまず7zipにかけてみる。

f:id:taikohaijin44:20200523062127p:plain
firstf

展開できない……

KGB ファイル 展開」で調べると、KGBアーカイバーが出てきたのでインストール

kgb filename でエクストラクトしてやる

f:id:taikohaijin44:20200523062626p:plain
kgb

firstf.oggファイルが出てきたので、再生する。

[c0me_wi4h_f4T_m4n_]

はい。

では、thirdfに着手する。

これに関しては正しい思考の導き方が分からない…

strings little.img | grep third -A 10 -B 10
で検索かけてだいたいどこにいるのか把握したらautopsyで取り出すのが僕は一番強いと思いました…
(今回は調べてもわからんかった)

でもgrep結果でmp4形式と出ていたので、autopsyでひたすらポチポチすると

f:id:taikohaijin44:20200523073434p:plain
flag3

発見して


f:id:taikohaijin44:20200523073552p:plain
flagimage

このようになりました。

これを発見するのに使ったモジュールはphotorecなので、cuiでも実質できます。
でもphotorecを使うと分かったのは、結局他人のwriteup見たからなので何とも言えないですね…

もう一問perceptronというmiscがあるんですが挫折したので修行してきます


次回までの課題点

png,CRC32の最低限の知識をつける

qiita.com

この記事、まじで刺さっていた。



(*1) これ、fileコマンドで十分?
f:id:taikohaijin44:20200523031857p:plain
でも、これのみを見てたら他のファイルシステムを調べようと思わないし、この問題における正解なのかわからない…