TMCTF2017 Reversing 100

珍しいwindowsのCTF問題、Writeupします。

バイナリが与えられているので、ダウンロードし、opensslで解凍

解凍したらファイルタイプを確認

remnux@remnux:~/Desktop$ file files13.zip 
files13.zip: Zip archive data, at least v2.0 to extract

zipなので、そのまま解凍

remnux@remnux:~/Desktop$ 7z x files13.zip

7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=ja_JP.UTF-8,Utf16=on,HugeFiles=on,1 CPU)

Processing archive: files13.zip

Extracting pocket

Everything is Ok

Size: 39393
Compressed: 39503

pocketというファイルが生成される

こいつもzipなのでもう一度解凍、するとbiscutが生成される

remnux@remnux:~/Desktop$ file pocket 
pocket: Zip archive data, at least v2.0 to extract
remnux@remnux:~/Desktop$ 7z x pocket

7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=ja_JP.UTF-8,Utf16=on,HugeFiles=on,1 CPU)

Processing archive: pocket

Extracting biscuit

Everything is Ok

Size: 39271
Compressed: 39393
remnux@remnux:~/Desktop$ file biscuit 
biscuit: RAR archive data, v1d, os: Win32

biscutはrarだった。ここでwindowsにチェンジ。

rarで確認する。

勘所と違う。とりあえずファイルが2つあるので解凍。

biscut1がpeで、biscut2がZIPだった。

biscut2はパスワードがかかっている。biscut1をプロセスモニターで追いかけても特に無し。

biscut2をollyに喰わすと・・

と、出てくる。mから始まるスイーツがパスワードなので、総当たりで行けそうだが、

biscut1から探す。idaに喰わすと

ExitProcessが見える。条件分岐をNOP書き換えが、メモリに表示すると思われるので、ollyで少し前にbreakpointをしかけて確認していく。

macarron が出てくる

biscut2をmacarronで解凍すると、biscut3,biscut4,biscut5が出てくる。

biscut4は以下の内容。

Please create flag.

hint:

Flag = TMCTF{biscuit3_ biscuit5}

biscut3は画像ファイル。

多分、ビスケットと主張したいんだろうけど、クッキーにしか見えないw

で、バイナリを読むと

テキストが埋め込まれてる。取り出すと

cream

biscut5はというと、biscuit1と同じノリだった。

choux??

調べるとシューだった!

なのでフラグは

TMCTF{choux_cream}

仮想化検知っぽい動きも見れて勉強になった。

振り返ってみて思うのは、誰かが言ってた「CTFのバイナリは後ろから!」

が正にあてはまる。開始30分で正解してるteamがいて「正気か!?」と思ったけど、

今なら行ける気がするw