2012/03/29

SECCON CTF問題にチャレンジした

sutegoma2で御馴染みtessyさんのBlogで、SECCON CTFの問題が公開されていました。
[てっじーの丸出し]:[CTF]SECCON CTF問題 Mission:Impossible
北海道情報セキュリティ勉強会のスタッフをやってる僕ですが、正直なところ全般的に知識が浅い為CTFの正答率は低いです。なので練習がてらチャレンジしてみました。

結局ググりまくって2時間かけて何とか答えに辿り着きました。いやぁCTFerの人たちはすごいな、こんなの調べながらじゃないと出来ないや。幅広い知識が必要なんですねぇ。でも楽しかったので、また練習問題を見つけたらチャレンジしてみたいと思います。

tessyさんが公開された回答はこちら。この回答を見てオンラインROT13Audacityというものを知りました。

以下、僕のチャレンジのトレース。自分で解きたい方は、以下は見ないように!






















(1)まずはファイルをダウンロード。

(2)fileコマンドでマジックナンバーを見るのが定石なんだろうけど、Windows 7環境なので、とりあえずバイナリエディタ(Stirling)で開いてみる。


(3)マジックナンバーは「1F 8B」。検索してみるとgzipとのこと。拡張子を.zipにして展開。

(4)展開されたファイルを再度バイナリエディタで開いてみる。


(5)「RIFF」と「WAVEfmt」という文字列を発見。検索してみる。どうやら「RIFF」以降がWaveフォーマットらしい。そのままバイナリエディタで「RIFF」以前を削って別名で保存。

(6)拡張子を.wavにして再生してみる。これは...聞き覚えが...モールス符号か!

(7)モールス符号なんて勉強したこと無い。モールス符号表を見ながらスピードを50%にして再生してみたけど聞き取れない...どうしたもんかなぁと考えながらバイナリエディタをグイングインスクロールしていたところ、どうもデータの分布にムラがある気がしたので、ビットイメージで表示。

(8)表示したビットイメージがこちら。なるほど、太いところがツー(-)で短いところがトン(・)か。再度モールス符号表を見ながら紙に書き写していく。

(9)文字列化したのがこれ。さっぱりわかりません。とりあえず「,」と「.」はそのままだろうと思うので、区切られた一文である「SNENJNL」について調べてみる。


(10)ありがちな1文字ずらし→2文字ずらし→3文字ずらしをやってみたけど違う。問題文が「Mission:Impossible」なので、それにちなむ名文句(「Good morning,Mr.Hunt.」、「This message will self-destruct in five seconds.」)も考えてみたけどどうも違う。うーん。

(11)もういっそのことと思い「SNENJNL」で検索すると...ヒットした!そうか、これROT13か!

(12)ROT13変換して、英単語っぽいところで切って...

(13)有名な文句ですね。「むかしむかし、はるかかなたの銀河系で...」ってやつです。回答を見て知ったんだけど、ここで回答すべきは映画のタイトル(STAR WARS)らしいです。この辺は場数踏んでみないとわかんないな。これからも頑張ろう。