sekai013's blog

JavaScriptとかを勉強する

MNCTF 2015

長い試験期間が終わって夏休みになっていたけど, 夏休みの1/4はいろいろ出かけたりしていてなんの気力もないまま終わってしまった. そろそろやる気を出していきたい.

MNCTF という CTF を何かの拍子で見つけて解いてみたので解けた分について書いてみます.
初心者でもそこそこ解けたのでちょうどいいという感じでした.

早期警戒 MISC, 60

どこかのデータベースになかったら知らんと思ってハッシュでググってみたらやっぱりあった.

漏洩情報 NETWORK, 60

pcap ファイルが与えられるので Wireshark で見てみたら ZIP ファイルを POST していたので ZIP のバイナリをコピペして解凍する.
中から secret.cab というファイルが出てくる. 知らない拡張子だったのでとりあえず

% file secret.cab
secret.cab: Microsoft Cabinet archive data, 10546 bytes, 1 file

なるほど. ただのアーカイブなので適当に解凍すると中から答えになるファイルが出てくる.

感染端末 FORENSIC, 60

乗っ取られてスパムメールを送り続けている端末の IP を, 一部欠損した Proxy ログから特定するという問題. ログは CSV 形式なので split ',' とかして適当に見ていくことにした.
最初は問題文を無視して, 異常にログに残ってる回数が多い IP とかがあるんじゃないかと思ってたけどそういうことはなかった.
User-Agent で適当に分類してみたけどこっちも特に変わったことは見つけられなかった.
困ったのでログに残ってる回数多いIPから適当に入力することにしたら答え見つかった.
あてずっぽうで通ってしまった. わかる人にはあのログだけで何かわかるんでしょうか.

書込文書 BINARY, 100

実行形式のファイルが与えられる. デバッガでファイルを書き込む処理っぽいものの前にブレークポイント張って見てみたらそれっぽいのが出た.

隠蔽検体 STEGANO, 100

png が与えられる. 画像を見ても変わったところはなさそう. png に見せかけて別形式のファイルでもあるというやつかと思って file コマンドで見てもしっかり png だった.

% file MNC_Logo.png
MNC_Logo.png: PNG image data, 158 x 41, 8-bit colormap, interlaced

png に何か隠すみたいなのはちょっと調べたことがあったので, いくつかのチャンクからなっていることとか, IHDR チャンクから始まって IEND チャンクで終わることとかくらいは知ってる.
調べた時は tEXt チャンクにメッセージが書いてあるパターンとかを見たけど, 今回の画像には tEXt チャンクはなさそうだった.
手がかりがなくなってしまったのでざっと見て変なところ見つかるのに期待するかという方針でバイナリを眺めはじめたけど, いつまで経っても終わらないので,
どれくらいのサイズなんだこの画像はと思って最終行に飛んだら小さい画像なのに 230kb もあったし, 何よりも最終行なのに IEND チャンクがない.
IEND チャンクどこにあるんだろうと思って見てみたらすぐ後ろに 50 4b 03 04 以下不穏なバイナリがくっついていた.
なるほど. ZIP がくっついてたのか. IEND チャンクの後ろはどうでもいいことになってるんですね.
抽出した ZIP を解答すると exe が出てきたので適当なデータベースでハッシュを調べた.

不正使用 BINARY, 100

デバッガで見るだけで解けてしまった.

強固暗号 CRYPT, 120

暗号化された ZIP とファイル1つが与えられるので ZIP をクラックしろという問題.
暗号化された ZIP の中に与えられたファイルが含まれていそうだったので, 既知平文攻撃でクラックできる.
pkcrack をインストールしていたのでそのままクラックできた.

% pkcrack -c 暗号化されたZIPに含まれている中で平文がわかるファイルの名前 -C 暗号化されたZIP -p 平文のファイル -d 出力先

うーんこの中身のなさ. せっかく解いたので何か書こうとしたけど知識ないと何も書けないですね.
そろそろやる気を出していきたい.