Tips

【CTF】SECCON 2016 Writeupその2【in 2016】
2016.12.12

【CTF】SECCON 2016 Writeupその2【in 2016】

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で開くとこんな感じ↓

wsimage

ひとまずは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」を選択する。

voip1

すると、新しいウィンドウが開く。

 

再生手順3 Playerを開く

出てきたウィンドウの中の

1.再生したいファイル?を選択

2.「Player」のボタンを押す

voip2

再生したいファイル?を選択した後でないと「Player」のボタンが押せないので要注意。

そして「Player」のボタンを押すと、さらに新しいウィンドウが開くのだが・・・

 

再生手順4 画面をきちんと表示する

出てきた画面がなぜか小さく、音声の波形が無い。/(^o^)\ナンテコッタイ

voip3

そこで、赤い四角で囲まれた「View as time of day」にチェックを入れたらきちんと音声の波形が出てきた。

なぜだかよくわからないが、突っ込むのはやめて次の手順へ進もう。ナンテコッタイが自動変換されてビックリしたのは内緒。

再生手順5 再生する

きちんと波形が出てきたら、あとは

1.再生したい音声と思しきチェックボックスにチェックを入れる

2.「Play」ボタンを押す

voip4

こちらも、再生したい音声を選択した後でないと「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を見ながら解いてみようかしら?

 

Vigenere 100の解答はこちら

Anti-Debugging 100の考察はこちら

練習問題その1はこちら

練習問題その2はこちら

 

プログラミング入門にぴったりの人気連載

独学で学ぶ-pythonプログラミング

Recent News

Recent Tips

Tag Search