マクニカよ!私は帰ってきた!! MNCTF2016 writeup

『待ちに待った時が来たのだ!
多くの英霊が無駄死にで無かったことの証の為に・・・
再びジオンの理想を掲げる為に!
星の屑成就のために!
ソロモンよ!私は帰ってきた!! 』

f:id:appleseedj073:20160625231816j:plain

金曜日の朝、品川に着いた時はこんな気分でしたよw

まぁ、結果としてはガトーに吹っ飛ばされた側でしたねw

 

忘れないうちにwriteupしておきます。

サイトも公開されたのでやり直しを兼ねてね。

http://mnctf.info/mnctf2016/

 

今年は昨年よりも会場が広く感じました。

会場に入ると正面のスクリーンにでっかく「MNCTF」の文字がwww

f:id:appleseedj073:20160709224815j:plain

相変わらずオシャレなTOPページですね。

 

f:id:appleseedj073:20160709223812p:plain

今年の問題はこんな感じでした。

全体的な感想としては、多くの参加者さんが「昨年より簡単」みたいなことを言われていたのですが、私個人的には昨年より苦戦した感じですねw

あと、昨年の問題は凌さんがほとんど手がけていたようですが、今年の問題は何人かで手分けをして作成されたそうです。そのせいなのか?問題の雰囲気が昨年とはだいぶ違った感じがしました。自分としては2015の問題が好きですね。

 

ではwriteupてきな・・・

※あくまで私の個人的な解答方法です。手順がまどろっこしいとか、無駄が多いとかは多々あると思いますが、そこら辺はご愛嬌ということでw

点呼

昨年と同じ。「MNCTF2016」と入力して点呼完了。

暗号新聞

クロスワード。昨年よりは難易度も規模も小さめ。

f:id:appleseedj073:20160709230805p:plain

 ヨコの鍵

 タテの鍵

f:id:appleseedj073:20160709231103p:plain

同一集団1〜5

ドメイン調査。対象ドメインWHOIS登録情報から同一攻撃者が保持している他のドメインを調査して解答。

f:id:appleseedj073:20160709233339p:plain

 shinobot.comをaguse.jpで調査すると、まず1個目のドメインをゲット。

f:id:appleseedj073:20160709233450p:plain

そのままwhoisでも調査するとメールアドレスを無事ゲット。ゲットしたメールアドレスをググったら他のドメインもゲット!

難読記録

正規表現・・・。これは本番では解答できなかった( ;  ; )

説明を聞いたんだけど途中までしか理解できなく・・・というか全部をメモしなかったw

そんなわけで、ググりながら正規表現を完成させてみました。

問題より条件が

  • 先頭は「AD」から始まる(ドメイン名)
  • そのあとに16進数が6文字続く
  • 英字はすべて大文字

という感じなので「AD\[0-9A-F]{6}」と組み立てて入力すると・・・

f:id:appleseedj073:20160710000729p:plain

ログの中にADAABBCCDDというのが混入していて余計に抽出してしまってる。そこでもう一度ググりました。で、見つけたこのサイトを参考にして正規表現に追加しました。いらないDDの部分を除去する内容を追加して「AD\[0-9A-F]{6}(?!DD)」として上手くいきました。

超持株会

f:id:appleseedj073:20160710004353p:plain

株購入のページでデータの改ざんをして第三者に買わせるような感じ。ページを確認すると株は100口までしか買えないし、ログインしているのは買わせたい人とは違う。ということで「burpsuite」を起動して途中のパラメータを改ざんしてみる。

f:id:appleseedj073:20160710004406p:plain

burpsuiteで途中のデータを確認して、

f:id:appleseedj073:20160710004546p:plain

IDを「A20050023」にstockを「1000」変更して送ればフラグゲット。

権限昇格

問題からダウンロードしてきたファイルを「BinText」で見てみる。

f:id:appleseedj073:20160717222300p:plain

文字列の中に「MS16_032」というのを発見する。これをググればCVE番号もすぐに見つかる。

【2016/07/17 Update 当初利用していた「Strings」というGUIツールが入手出来ないという指摘があったので「BinText」に変更】

一行挿入

これもjavaの難読化が解けなくて本番ではダメだった。

まずは、問題の難読化されている不審なスクリプトを難読化を解除してくれる便利なサイトに投げる。

Online JavaScript beautifier

すると・・・

f:id:appleseedj073:20160710005342p:plain

こんな風に表示される。読めるw

userAgentが「ShinoBrowser 1.0.0.1」だと何かありそうな感じなのでuserAgentを「ShinoBrowser 1.0.0.1」に変更して接続すると違うサイトに誘導される。そのサイトを答えたらフラグゲット。

超標的型

これも本番では出来なかった。問題より入手した検体を動的解析しようにも起動しないし、当然表層解析でも面白い答えは出てこない。最後の手段でIDAを使って静的解析をすると

f:id:appleseedj073:20160710010300p:plain

「答えはコンピュータ名です。」というのが見つかる。

このコメントの前後で呼ばれている関数を見てみると

f:id:appleseedj073:20160710010406p:plain

何かをくみ上げてる感じが・・・(落ち着いて見ればわかるw)

これを文字コード表で調べてみると端末名になった!

丸文字文

当然、これもできてません。そしてこれを書いてる今でもできてませんw

多分、この丸で囲まれている文字を普通の文字に直して変換系のサイトに投げてやればいいんだと思うけど・・・ちょっと難しい。俺には

 

まとめ

いろいろとCTFは参加させてもらっているけど、マクニカのCTFが一番業務に直結するスキルだと思ってる。だから、なおさら解けないと悔しい( ;  ; )

そして今回一番の驚きは、毎回問題に登場している「てしがわら」さんが実在していた!w てっきり株式会社マクニキと同じ架空の人物だと思ってたのに(⌒▽⌒)

 

そしてCTFに参加しただけなのに参加賞が半端ないレベルで驚いた!本当にもらっていいのかな?逆にここから問題でるの?って思ってしまったりw

 

本当にマクニカさんに感謝です。あと、セッションの合間にいろいろと情報提供してくださった凌さんにもこの場を借りてお礼申し上げます。ありがとうございました。創作意欲が湧いてきました!w

 

f:id:appleseedj073:20160710011315j:plain

CTF参加賞で頂いた書籍と、懇親会の後に頂いたお菓子

 

来年も参加するぞ!たとえ仕事をサボってでもw