SECCON 2016 オンライン予選
12月10日(土) 15:00から 12月11日(日) 15:00(日本時間)にかけて、SECCONオンライン予選2016が開催されました。
私も参加して結果は2問200点でした。そこ、去年と同点wwwとか言わないで~
writeupその1ではプログラムを書かずにVigenere 100を解いてやったぜ(^^)b
・・・プログラムを書くより自力で解いた方が早いと思っただけで、決して書けなかったわけじゃ(ry
それでは早速writeupの続きを書いていこう。
※練習問題その1とよく似た問題?のVigenere 100のWriteupはこちら
※エンコード方式に敗北したAnti-Debugging 100の考察はこちら
※Vigenere 100とそっくり?な練習問題その1を解いてみたい方はこちらからどうぞ。
※本編には全く出なかったけれど、練習問題その2もあるので興味がある人はこちらからどうぞ。
VoIP 100
2つめの問題。問題文は以下の通り。なお、voip.pcapはpcapファイルへのリンクだったが、以下では削除している。
1問目と比べるとシンプルだ。
Extract a voice. The flag format is SECCON{[A-Z0-9]}. voip.pcap
問題文を訳すと「声を聴け。さすればflagは与えられん」といったところだろう。訳がだいぶ中2病っぽくなっているのはご愛敬
さて、どうやって解こうか。
.pcapファイル
.pcapファイル
今回ダウンロードできたファイルの拡張子は.pcapとなっている。
この.pcapファイルには、平たく言えば、ネットワーク上の通信データが入っており、Wiresharkというソフトなどで開くことができる。
Wiresharkで開くとこんな感じ↓
ひとまずはWiresharkで開いてみるものの、とてもじゃないが読み切れない。どうしよう。
VoIP
そこで、とりあえずVoIPについて調べてみる。とはいっても、あまり時間をかけてもしょうがない。厳密な定義も必要ないのでWikipediaで適当に調べてみる。
サクっと読んでみるとVoIPとは「Voice over IP」のことらしい。つまり、音声ファイルをIPパケットに変換したものということらしい。
ここで、問題文に「声を聴け(Extract a voice.)」と書いてあったのを思い出す。
声を聴け・・・
声を・・・
・・・あれ、もしかしてこれ、音声再生できるんじゃないか?
そして再生へ
そこで早速「VoIP pcap 再生」で検索してみる。すると、以下のページにたどり着いた。
Wiresharkのコアな使い方|VoIPパケットを再生して品質を確認 – テリロジー
WiresharkでのVoIPの再生の手順やフローグラフについて、とても丁寧にされていた。このページをもとに早速問題のVoIPの再生に挑戦してみる。
※ここからは上記リンク先を参考に、筆者がVoIPの問題を解いた際の手順である。出てくるキャプチャ画像はその際に筆者が準備したものである。昨今画像の無断使用が騒がれることも多いので、念のため添えておく。
再生手順1 ファイルを開く
まずはファイルを開かないと始まらない。と言っても、VoIP.pcapファイルをダブルクリックするだけの簡単なお仕事(^ω^)である。
お、お刺身の上にタンポポを載せる仕事よりも楽(ry
再生手順2 メニューを選ぶ
上部メニューの「Telephony」から「VoIP Calls」を選択する。
すると、新しいウィンドウが開く。
再生手順3 Playerを開く
出てきたウィンドウの中の
1.再生したいファイル?を選択
2.「Player」のボタンを押す
再生したいファイル?を選択した後でないと「Player」のボタンが押せないので要注意。
そして「Player」のボタンを押すと、さらに新しいウィンドウが開くのだが・・・
再生手順4 画面をきちんと表示する
出てきた画面がなぜか小さく、音声の波形が無い。/(^o^)\ナンテコッタイ
そこで、赤い四角で囲まれた「View as time of day」にチェックを入れたらきちんと音声の波形が出てきた。
なぜだかよくわからないが、突っ込むのはやめて次の手順へ進もう。ナンテコッタイが自動変換されてビックリしたのは内緒。
再生手順5 再生する
きちんと波形が出てきたら、あとは
1.再生したい音声と思しきチェックボックスにチェックを入れる
2.「Play」ボタンを押す
こちらも、再生したい音声を選択した後でないと「Play」ボタンが押せないので注意。
再生手順6 音声を聴き取る
音声を聞き取ると、ものすごい聞き取りづらい音声で
ハーイ +◆×&%~ ラージ S E C C O N %▲&◎?? 9 0 0 1 アイ ビィ アール *☆△!?● サンキュー
と再生された。最初の雑音(?)はよくわからないが、おそらく2つ目はと3つ目は { と } だろうと推測。以下のフラグを得る。
SECCON{9001IBR}
これを入力して100ポイントゲッ・・・って、あれ、またも不正解!?
そして解答へ
なぜだ、なぜなの!?答えはあってるはず・・・と考えて小一時間。
まさかと思い、
SECCON{9001IBR}
を
SECCON{9001IVR}
に変更して解答する。
すると、無事100pointを獲得。
VとBの違いとか、中学校以来だったわ(^^;
まさかとおもったじぶんをほめてあげたいの(^o^)
自力で解けた問題は、以上の2問でした。あとは、余力があったら解けそうだった問題をほかの人のwriteupを見ながら解いてみようかしら?