ISEC 2011 CTF Q9(lol.pcap) Writeup -追記あり


8/26〜8/27に行われた、ISEC 2011 CTFでのQ9(lol.pcap)のWriteupです。
解いている途中で時間切れになってしまったので、答えがあっているか確実ではありません。
 ただ、終了後のIRCの様子だとあっていると思うのですが・・



Q:9
Point:300

find key!
Download:lol.pcap


以下に途中で出たヒントも書いています。



level 9 hint 1

uppercase
It has space.


fileコマンド。


D:\CTF\ISEC_CTF2011\Q09>file lol.pcap
lol.pcap: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 65535)


素直にWiresharkで開く。


大量のUDP(ポート50012)だったので、UDPを使ったトンネリング(IPv6Teredoなど)かメディア系の通信が
まず思い浮かんだのですが、最後の方にSIPもあり後者と推測。


ペイロードを眺めていても
・先頭2バイトが固定ぽい感じ
・3バイト目からの2バイトはシーケンス番号?
・なんか特徴的
・同じのいっぱい
・(メディア関係はほとんど分からない・・orz)
くらいしか分からず、ひとまず参考になりそうなpcapをネットで漁る。


最初に見ていたWireshark WikiのサンプルSIP_DTMF2.pcapペイロードが酷似していたため、
試しに適当なポート50012のUDPパケットを選択し、右クリック -> Decode As... -> RTP -> Applyしてみる。
なんかRTPで当たってそう。


見た感じ音声なので抽出できないかと思い、backtrack内とGoogleでツールを探す。
tcpreplay+voipongで出来そう。
#参考 Example Scenarios


backtrack4R2に環境を移動。
#実際にはBT5でやっていたのですが、voipongが正常に動作するように設定を弄っている途中で
#時間切れになってしまったので、ここではconfのみの修正で動作したBT4R2を使います


まず、voipong.confを環境に合わせて修正。


root@bt:/pentest/voip/voipong# cat etc/voipong.conf
soxpath = /usr/local/bin/sox
device = em0
modpath = /usr/local/etc/voipong/modules
networksfile = /usr/local/etc/voipong/voipongnets

soxpath = /usr/bin/sox
device = eth0
modpath = /pentest/voip/voipong
networksfile = /pentest/voip/voipong/etc/voipongnets


voipongの起動。


root@bt:/pentest/voip/voipong# ./voipong -c etc/voipong.conf -d4 -f


tcpreplayでパケットをリプレイ。


root@bt:~# tcpreplay -i eth0 lol.pcap


voipongの表示が変わるまで少し待つ。
#rawファイルを抽出し、soxでwavファイルに変換中


確認。


root@bt:/pentest/voip/voipong# cd output/20110827/
root@bt:/pentest/voip/voipong/output/20110827# ls
session-enc8-PCMA-8KHz-192.168.0.100,50012-192.168.0.36,50012.raw
session-enc8-PCMA-8KHz-192.168.0.36,50012-192.168.0.100,50012.raw
session-enc8-PCMA-8KHz-192.168.0.36,50012-192.168.0.100,50012.wav

session-enc8-PCMA-8KHz-192.168.0.36,50012-192.168.0.100,50012.wavを再生すると
TLS WITH SRTP」と言っていて、これが答えです。(多分)




終了後のIRCの引用ですが(無断ですが・・)、

21:19 (gamja) http://h4ckk.dothome.co.kr/Untitled1__e34a9f8bbc743bbd6b60c198e3e729d6.mp3 ????d? TLS WITH SRTP??? ?????? ???????

上記の方法で抽出した.wavに比べてずっとクリアなんですよね。
他の方法なのか、それとも.rawをsoxで変換する際のパラメータなのか・・
すごく気になるのでWriteupを期待!

余談

ポート50013UDPパケットをRTCPにするときれいなpcapになります。



追記その1(2011/8/29)


@ucqさんに教えていただきました。
Wiresharkのバージョンによっては場所が違うかもしれませんが、Decode AsでRTPにした状態で


Telephony -> RTP -> Stream Analysis... -> Player -> Decode -> 波形がある上のやつにチェック -> Play


で綺麗に再生できましたorz
tcpreplay+voipongも必要なかったですね・・
RTPを特定できればすぐに解ける問題で、しかも300点。
本当に悔しいという言葉しかでないorz
Wiresharkすごすぎます。


追記その2(2011/8/29)

色々設定みてたのですが、


Edit -> Preferences -> Protocols -> RTP -> Try to decode RTP outside of conversationsにチェック


で50012のUDPが自動的にRTPとして認識されます・・
ということで、WiresharkでRTPの適切な設定ができていて、RTPの再生方法を知っていれば1分で解ける問題でしたとさ。



泣ける。