This post is also available in: English (英語)
私たちは最近、2017年6月9日に開催される毎年恒例のLabyREnth、第2回Palo Alto Networksセキュリティ コンテスト(CTF)の課題を発表しました。昨年と同様、LabyREnthカウントダウン ページにはちょっとしたティーザーを含めました。見つけることができたでしょうか? 見つからなくても、心配は無用です。誰もが確実に情報を確認できるようにしたいため、カウントダウン ページのCTF情報にリンクを追加してあります。また、まだ試してみたいとお思いの場合は、ティーザーを解く方法も示されます。
今年は、いくつかの素晴らしい賞品が用意されています。すべての賞金の金額を増やし、すべての種目を最初に解決した人には$10,000が授与されます。これが、セキュリティ コミュニティの多くの人々が遊び感覚で学習し、楽しむための動機付けになることを期待しています。
ティーザーの課題を解決するには、まず初めにメインのlabyrenth.comページに移動します。
ページの開発者ツールをプルアップした場合、ページの本文の任意の場所をクリックすると、404ページにリダイレクトされることがわかります。それはかなり異常です。スレッドをたどり、好奇心の導く先になにがあるのかを確認しましょう。
この404ページはありふれたApache 404ページのように見えますが、ページの開発者ツールを見ると、非表示の入力とwat_do.jsという名前のjavascriptファイルがあることがわかります。これは、ログインを非表示にするためにPriv8 Webシェルで使用されている手法と同様です。
javascriptを見ると、それが難読化され、evalを使用していることがすぐにわかります。これは、解凍されたjavascriptコードを評価するためにマルウェアで使用される一般的なjavascript難読化手法です。元のjavascriptをコピーして、開発者ツールのコンソールに貼り付けることができます。その後、次のレイヤーを出力するため、evalをconsole.logに変更します。
出力をコピーして、Visual Code Studioなどのテキスト エディタに貼り付け、javascriptを整えます。dat_otha_boyとsome_otha_stuffを伴うxorデコード ループがあることがわかります。また、dat_otha_boyがユーザー入力で、デコード ループの出力にリダイレクトされることもわかります。
ここで自問する必要があります。dat_boyがevent.srcElement.idに設定され、決して使用されないのはなぜでしょうか? おそらく、それが実際に探している少年だからです。javascriptを開発者ツールのコンソールに貼り付けることで、dat_boyが使用された場合に、リダイレクト先を出力するようにjavascriptを変更できます。それを行うと、w3_sh0w_U_wUt_w3_g0000t.htmlという正しいリソースらしきものが得られます。
G3t$chW1ftyを404ページの非表示のテキスト ボックスに入力するか、または直接デコードしたリソースに移動して、偽のWebシェルを取得できます。使用可能なコマンドのhelpを入力することで、偽のシェルとやり取りできます。
チームは、皆さんに楽しんでもらえるように、CTFに多数のサプライズを用意しています。幸運を祈ります。6月9日にLabyREnthでお会いできることを楽しみにしています。