4ensiX

4ensiX

FPと言ったものはFPを選んだが表示はTPになっていることに気づいた。

SECCON Beginners CTF 2019 Misc containers&Dump writeup

2019/05/25 15:00 JST - 2019/05/26 15:00 JSTに行われたSECCON Beginners CTF 2019のMiscで解いた問題のwriteupを記す。Forensicは、もう見放されたか。

 

containers

f:id:Zarat:20190526153833p:plain

ダウンロードしたファイルをfileコマンドにかけた

f:id:Zarat:20190526154136p:plain

バイナリが気になるのでバイナリエディタで見てみると

f:id:Zarat:20190526154302p:plain

CONTAINER.FILE0とは何だろうか。それよりもPNGファイルが含まれているのが気になる。おそらくCONTAINERというからには複数のファイルが含まれているのだろう。ということで含まれているファイルを調べてみるためにbinwalkにかける。

f:id:Zarat:20190526154603p:plain

f:id:Zarat:20190526154635p:plain

おっと何だか沢山ファイルが入ってるな。なんとなく、含まれているのはPNGファイルのみなので、これらのファイルを組み合わせたものがflagになると考えられる。これをddコマンドで分割していってもいいが時間がかかるので、さくっとバイナリでファイル分割してくれるforemostを使う。なんか今まで忘れてたけどこんな便利なものあったな。

f:id:Zarat:20190526155145p:plain

foremostで分解した結果はoutputディレクトリ内に展開される。何かいっぱいPNG出てきた。このPNG一つに一文字ずつ文字が書かれているので全部繋げると、

flag:ctf4b{e52df60c058746a66e4ac4f34db6fc81}

 

Dump

f:id:Zarat:20190526155736p:plain

とりあえずfileにかけとく

f:id:Zarat:20190526160332p:plain

pcapなのでwiresharkで開く

f:id:Zarat:20190526160554p:plain

次にどうしようかと考えている内に問題文に戻ってみる。

Analyze dump and extract the flag!!

Dumpという題だし、どこかでdumpのやりとりをしているのだろう。色々見ているとhttpで何か怪しいものを見つけた。

f:id:Zarat:20190526160928p:plain

サーバー上のファイルに対してhexdumpを行った結果をhtmlで返してるようなのでこのhtmlファイルをエクスポートしてみる。そしてエクスポートしたファイルがこれ。

f:id:Zarat:20190526161305p:plain

まさにdumpだ。これをファイルに戻していく。今回はこれを表示させた命令がファイル名になっていて、URLエンコード方式でデコードしておく。

hogehoge.tk

$hexdump -e '16/1 "%02.3o " "\n"' /home/ctf4b/flag というコマンドで表示されたことが分かった。以下のサイトを見ると、このコマンドはflagというファイルを8進数で16回表示ごとに改行していることが分かる。

www.atmarkit.co.jp

8進数をファイルに変換するというものは見たことがないので、8進数を16進数に変換する必要がある。今回は変換にCyberChefを使う。ここで先ほどのhtmlの中身をコピペしてそのまま使うと改行が入っているので上手くいかない(ここに気づかず時間がちょっと過ぎてから解けた)。なので中身の改行を全て半角スペースに置き換える。置換するときはsedコマンドを使うと思ったがどうも上手くいかなかったのでperlの力を借りた。

qiita.com

以下ファイル内改行半角スペース置換。

f:id:Zarat:20190526163814p:plain

加えてこのままだと8進数の始めに余計な空白があるのでそれをエディタなどで消してからCyberChefにコピペ(赤矢印のとこの空白を消してからコピペ)。

f:id:Zarat:20190526164442p:plain

f:id:Zarat:20190526164628p:plain

CyberChefで8進数から16進数に変換したが、どうやってここからファイルに変換しようかと悩んでいたら良いものを見つけた。

qiita.com

imtndさん、ありがたく使わせていただきます。
余談だがこのようなものもある。

i-tech.dryplace9.com

CyberChefで変換した結果(download.dat)をhex_to_binaryにかけてみる。

f:id:Zarat:20190526165621p:plain

その出力結果を見るとgzipになっているので、gzipとして解凍してみると

f:id:Zarat:20190526170035p:plain

このjpgファイルを見ると、

flag:ctf4b{hexdump_is_very_useful}

 

 

Dumpが時間内に解けなかったのが悔しすぎる。もっと簡単な解き方があって遠回りをしたのかもしれない。来年の自分は今よりも成長していますように。そしてForensis復活を求ム。