SECCON CTF 2014 オンライン予選に参加した&Writeup
7/19 9:00 ~ 21:00 (JST)の間の12時間、SECCON CTFのオンライン予選に参加しました。
昨年度のオンライン予選は2014年の1月と年度後半で最も遅い予選だったけど、今年度は最も早い予選であった。
今回も昨年に引き続きチーム********(よめない)で参加した。また、今回は新たなメンバーをチームに迎えての参加でもあった。
結果
結果は、以下の通り。
(公式)
http://score.quals.seccon.jp/ranking/
(非公式得点グラフ)
http://yamagata.int21h.jp/seccon-scoreboard-ss/2014summer/chart/
2000点でポイントを入れた340チーム中10位。
7位以上で全国大会出場だったが、2年連続で********が出場とは行かなかった。
Writeup
自分が得意とするネットワーク100と300は解けたので、最低限の人権は確保出来たのかなと。
(FLAGのサブミットは他の某氏が自分より早くしてて出来なかったので、厳密には人権無いかも?)
ということで、その2問のWriteup。
ネットワークの問題の感想としては、100は結構素直な問題で非常に解きやすくて、300は時事問題を反映した問題でとても面白かった。
このパケットを解析せよ(ネットワーク 100)
配布されているファイル名がseccon2014.pcapngだったので、とりあえずWiresharkで開く。
開いて見ると、FTPのパケットが流れていることがわかる。
とりあえず、FTPのパケットをFollow TCP Streamする。
最初は、FTPのユーザ名とかパスワードとか見えてるからサーバにでも繋いで取りに行くのかと思ったけど、ローカルIPだし違うからパケットの中から探す。
見てると、FTPでflag.txtをrequestしてresponseした後に、PSH,ACKしてるじゃないですか。
Packet Bytes見ると、base64みたいなのあるじゃないですか。
Follow TCP Streamとかでデータ部を取り出してみると、flag.txtの中身がRkxBR3tGN1AgMTUgTjA3IDUzQ1VSM30=であることがわかる。
あとは、Base64をデコードしてあげると、FLAG{}形式の答えが出現。
FLAG{F7P 15 N07 53CUR3}
ソーシャルハック?(ネットワーク 300)
「犯人を追い詰めろ」という問題文と、chat.quals.seccon.jpへのリンクがあった。
リンク先では某L1NEのチャット画面のようなWebアプリケーションが動いていた。
このメッセージ見た瞬間、この詐欺のことだとすぐわかった。(これが今回の時事問題でしょうか)
(参考)なるほどwLINEアカウント乗っ取りへの意外な対策「天安門事件」 - NAVER まとめ
あとは、自分のサーバにアクセスさせて、IPアドレスを抜くということをやってる人がいたなーとも思った。
(参考)LINEのWebMoney詐欺が来たのでIPアドレスを特定してみた | nezu.log
ということで、自分のVPSにhoge.jpgというファイルを用意して、アクセスしさせることにした。ちなみに、hoge.jpgはただのテキストファイル。
以下の画像のように適当に話を進めてURLを乗せると、「見ました」と言って勝手にアクセスをしてくれる。
この時VPSではtcpdumpを起動させておき、ポート80番に来るパケットのみをキャプチャした。
このパケットキャプチャファイルをローカルに落として、パケットをWiresharkで開いた。
これを見ると、153.120.82.112からHTTPのHEADリクエストを送信している。よって、このIPアドレスを犯人は利用していると考えられる。
また、User-Agent:MyVNCpasswordIsVNCpass123となっており、VNCのpasswordがわかる。
nmapで153.120.82.112に対してポートスキャンをかける。(nmapの結果は終わった後。途中からvncのポートが増えたらしい?)
# nmap -p 0-65535 -sS 153.120.82.112 Starting Nmap 6.46 ( http://nmap.org ) at 2014-07-19 18:19 a/T Nmap scan report for 153.120.82.112 Host is up (0.064s latency). Not shown: 65519 closed ports PORT STATE SERVICE 22/tcp open ssh 135/tcp filtered msrpc 137/tcp filtered netbios-ns 138/tcp filtered netbios-dgm 139/tcp filtered netbios-ssn 445/tcp filtered microsoft-ds 5901/tcp open vnc-1 5902/tcp open vnc-2 5903/tcp open vnc-3 5904/tcp open unknown 5905/tcp open unknown 6001/tcp open X11:1 6002/tcp open X11:2 6003/tcp open X11:3 6004/tcp open X11:4 6005/tcp open X11:5 63182/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 54.73 seconds
以上の結果から、TCPのポート番号5901でVNCが動いていることがわかる。
あとは、153.120.82.112:5901に対してVNCクライアントを利用して接続すると、FLAGが表示された画面が表示される。Windows XP使ってるのはどうなんだろう…
FLAG{giveMeYourWebM0n3y}
ちなみに、例のワードを入力するとw個人的にこの仕様はツボりましたwww
楽しい✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌
感想
相変わらず今回もネットワーク問題しか解けない大会だった。つらい(´・ω・`)
ホントにもっと解ける問題の幅を広げないとって感じ。
今回の大会はオンラインであったが、某所にチームメンバーで集まり12時間問題に取り組んでいた。
オンラインであると集まってワイワイしながらだったり、チームで協力しながらっていう風にはできないので、その点は集まって問題解いたりしたことはとても楽しかったし、ここまで点数取れたのだと思う。今後もオンラインのCTF大会でもチームで集まってっていうことはやって行きたい。
結果に関しては、あと少しで全国大会に出場出来たと思うと非常に悔いが残る。
ネットワークの問題を解き終わった後は、unknown 300のPrint itをずっと考えていたのだが、結局3Dプリンタのデータファイルだったことに気づけなかったことが特に悔いが残る。
地方大会で優勝しても出場権を取れるが、恐らく交通費的に僕も他のメンバーも横浜以外の地方大会への出場は難しいでしょう。だから、12月に行われる英語版のオンライン予選でどうにかリベンジしたい。もっともその大会には、海外からの参戦者も来るという話ですが。
最後に、SECCON CTFに参加された皆様、12時間にも及ぶ長い戦いお疲れさまでした。
また、SECCON CTF運営及び問題作成者の皆様、今回も素晴らしい舞台と楽しい問題を用意して頂きありがとうございました。
今回の大会も楽しかったです。