SECCON CTF 2013 に参加した。
眠すぎて死にそうなので Writeup 書き殴り。
スコアは 2802、19位でした。
練習問題 [100]
答えは、「SECCON」です。Flag: SECCON
Enjoy the Game [100] バイナリ
起動すると一人称視点の立体迷路が始まる。
このゲームをクリアしたらパスワードが得られる。
you will get the password if you get a goal of the dungeon.
ゴールに行けばいいんだろうけど、もしゴールに行けないような
ステージになってたらどうしよう・・と思ったけど、100点問題でそれはないか、と。
data ディレクトリの中にメタセコイアのファイルがあったので、
適当にメタセコイアをダウンロードしてファイルを編集。
ゴールマスと通常マスの2つがあったので、通常マスのサイズを0.1倍に変更して保存。
すると、ゲームを起動するとゴールが丸見えなんだなあ。遠くの道も丸見えなんだなあ。
(ネトゲでよくあるチートですめ。)
結構遠い道のりでしたけど、手動でクリア。
ゴールマスにたどり着くと、MessageBox が出現。
Flag: 3D_dUnGEoN
ここはどこ? [100] フォレンジックス
ファイルだけ渡されるので、中身を見てみる。メールだ。
文字コード直すのめんどくさいのでIEにD&D。答えの様式が書いてある。
さらに添付ファイルがあるので、デコード。tiffファイル。動物園の写真。
GPS情報がひっついてるので、GoogleMapでポン。Taipei Zooだ!
Flag: Taipei Zoo
calculate it / 計算せよ [100] プログラミング
nc calculateit.quals.seccon.jp 45105Hint1: 四則演算ではありません / It is not a four arithmetic operations.
Hint2: 計算例 81 9- 16 6- 4/ 15 X 3- 72 45 = 82
Hint3: G- G- G- G- G- G- G- G- G- G- = 0
Hint4: X X X X X X X X X XXX = 300
最初、四則演算かと思ってひたすら投げるも、全部間違いと怒られる。
ヒント3〜4を見て、ようやくボーリングだと気付く。
後は、Rubyでごりごりスクリプトを書いて解きました。時間かかりすぎた。
何が嫌らしいって、最後にトータルスコアを聞かれる!
追加実装して走らせたら、さらにハイスコアまで聞かれた!笑った。
コードは死ぬほど汚いので載せません:p
Flag: Bowling is very fun!!
削除されているファイルの名前は何ですか? [200] フォレンジックス
ファイル Filesystem003.bin の内容を確認し、次の設問に回答してください。 削除されているファイルの名前は何ですか?
あー、これは。苦手なタイプだ。きっと解けない。
そう思いながらもチャレンジしたら、解けました。やった。
- NTFS Recovery Toolkit - Rescues deleted, damaged and re-formatted NTFS volumes, partitions and files
NTFSの構造。0x16バイト目のビットを確認して、1が立っていなければ
削除されてるファイルらしい。適当にRubyでpry使って見てたら見つけた。
最初に何件か見つかるけど、それは空レコードっぽい。
a = File.open('/home/dolphin/seccon2013/Filesystem003.bin','rb') while a.read(1024)[0x16].ord & 1 == 1 end [147] pry(main)> while a.read(1024)[0x16].ord & 1 == 1 [147] pry(main)* end => nil [148] pry(main)> a.pos => 17445888 [149] pry(main)> a.pos.to_s(16) => "10a3400"
Flag: SkyhookParser.exe
Find the key! [200] ネットワーク
この問題はきっと @clc_igu にゃんが書いてくれるに違いない。
(追記) 書いてくれました! → seccon2013 ctf オンライン予選 write up - Ruby_log
Hidden Message? [300] ネットワーク
JPG形式の画像ファイルが渡される。
末尾にこんな文字列が。
134.133.95.10.in-addr.arpaどうやら、JPGファイルは途中からpcapファイルだったらしい。(thanks to @clc_igu)
パケットを眺めつつ。各IPへ疎通確認。133.242.55.252 だけ ping が通る。
nmap してみると、DNSが空いてる。よしゃ、問い合わせてみよう。
dolphin@bt:~/seccon2013$ nmap 133.242.55.252Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2013-03-17 23:13 JST
Nmap scan report for 133.242.55.252
Host is up (0.035s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp filtered smtp
53/tcp open domain
さっきのJPG末尾にあったIPを問い合わせてみると、Flagゲット。
dolphin@bt:~/seccon2013$ dig -x 10.95.133.134 @133.242.55.252; <<>> DiG 9.7.0-P1 <<>> -x 10.95.133.134 @133.242.55.252
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29823
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available;; QUESTION SECTION:
;134.133.95.10.in-addr.arpa. IN PTR;; ANSWER SECTION:
134.133.95.10.in-addr.arpa. 3600 IN PTR You.G0t.a.H1dd3n.m3ss4g3.1n.Th15.DNS.;; AUTHORITY SECTION:
10.in-addr.arpa. 3600 IN NS haruna.great.;; Query time: 72 msec
;; SERVER: 133.242.55.252#53(133.242.55.252)
;; WHEN: Sun Mar 17 23:15:32 2013
;; MSG SIZE rcvd: 120
Flag: You.G0t.a.H1dd3n.m3ss4g3.1n.Th15.DNS.
ログインパスワードを解明せよ [300] フォレンジックス
あ、これも苦手なヤツだ。もうむり、あきらめよ・・
調査対象パソコンのユーザー名Forensicsのパスワードが不明な状態です。 システムの電源を落とす前に、win32ddにより、メモリ全体のイメージファイル(RAW形式)が取得されています。 このイメージファイルを解析し、ユーザー Forensics のWindowsへのログオンパスワードが何かを特定してください。
と思ったんですが、そいえばメモリのイメージをごそごそする何かがあった気がして。
ぐぐってみたら、ちゃんと解けました。やった。
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
forensics:1000:aad3b435b51404eeaad3b435b51404ee:98ffdb1b29e7c88954326cd4011141d8:::
抽出したハッシュがなかなか処理できなかったけど、ここのサイトでなんとか。
Johnがなんかうまく動かなかった。。
Flag: Kani3
Enter 8-char password to the interpreter [400] バイナリ
リバースエンジニアリングを行うかヒントを元にパスワードを入力し、秘密の鍵を取得せよ。
なんとなく cat したらヒントが書いてあった。
(なんで cat したのか未だに分からない。)
ヒント 1: パスワードはかつて存在したゲーム企業のキャッチコピーの一部。 ( HINT 1: The password is a part of promo words which former Japanese game company used.
IDAとかで開いた感じ、リバースはめんどくさそう。。
なんとかならないかなーと思って、いくつか関連しそうな企業をぐぐって確認。
ハッカーインターナショナルは、名前がそれっぽいけどキャッチコピーが見当たらず。
たまたま「かつて存在したゲーム企業 キャッチコピー」でぐぐったら
コンパイルが2件目に出る。「の〜みそコネコネ コンパイル」がキャッチコピー。
8文字にしては長いし、どうしよう。と思って、「konekone」って入れたら
パスワードが出てきてクソワロwwwwwwww
・・・ごめんなさいごめんなさい(◞‸◟;)
Flag: pUyOPuyO
古典暗号ちゃれんじ★ [500] 暗号
最初は手動でツール使いながら解いてたんだけど、時間制限的にむつかしい。
telnet 133.242.50.48 65437 で問題サーバに接続して、 5個のシーザー暗号と、5個の換字式暗号と、 単語区切りのスペースが消されたシーザー暗号と換字式暗号、 計12個を、それぞれ10秒以内に解いてください。答えは、平文の「a」が、暗号文だと何になるかで答えてください。
フラグが3つあります。
10問目まで解けた時点で350点。11問目までで+50点。 12問目まですべて解けると、+100点で、計500点が得られます。
なので、ツールで解いてくれるツールを作った。悪い子だ。
以下のサービスを利用。スペースが除去されててもさっくりと解読してくれる。
Flag1: Et tu, Brute?!!!
Flag2: Kanji? Kaeji??
Flag3: you are cryptogram solver!!
順番にフラッグを入れないと得点されないとかあったら嫌なので、フラッグは順番に入れた。
箱庭XSS Final [500] ウェブ
ひたすらXSSする!16回XSSする!
しかも、一度出てきたキーワードは使えない。ひぃぃ。
XSSとか全然知らないので、記号プログラミングとイベントを参考に解きました。
石投げないでください(◞‸◟)
"><"
イベント名がだんだん使えなくなって最後苦しかった。もっとスマートに解きたい。
8問目正解するともらえるフラッグ
Stage8までをクリアしたご褒美
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
スコアサーバに「折り返し地点まで来たよ!!」と送信してください。
途中点がもらえます。submit underlined part as (halfway-)flag.
全問正解するともらえるフラッグ
おめでとうございます! 見事に全問正解です。スコアサーバに「アイ・アム・アラート出したいマン!」と送信してください。
submit underlined part as flag.
Crossword Puzzle [300] その他 (追記)
こちらのWriteupを見て、クロスワードパズルの各項目の答え自体は
あってると思われるので、ここに置いておきます。
著名人特集っぽかったので、フラッグも著名人かなと決めつけたのが
敗因だったかな、という感じがする。。(あと、kanntai にやたらと引っ張られてた。)