MNCTF 2017 Writeup

f:id:fatsheep:20170717160854p:plain

 

7月6日に品川にてMacnica Networks Day 2017が開催されました。

そのセッションの中の1つにMNCTFがあり、今回それに参加しました。

「WriteupまでがCTF」ということで、遅ればせながらWriteupを書いていきます。

★これからやる人はネタバレ注意

 

CTF終了後、問題は以下に公開されており、自由に解答可能になっています。

MNCTF2017

 

CTF終了後に解説がありましたが、時間内に解けた問題について実際に解いたやり方を書いていきたいと思います。

(後ほど、解けなかった問題も記載したいと思います。)

 

練習問題

フラグフォーマットチェック。そのままフラグです。

 

昇進試験

クロスワードパズルの問題。Linuxコマンド実行結果が掲載されており、どんなコマンドを実行したか解答します。

ちなみにタテ5のcolumnは初めて知りました。(文字数とc、mの位置はわかっていたので、Linuxコマンドの候補から探しました。)

f:id:fatsheep:20170713235236p:plain

 

通信記録

PCAPファイルを解析し、どのような攻撃の通信か答える問題。SMB通信がポイントで、最近話題になったEternalBlueが正解。(半分当てずっぽうで入力しました。)

 

不振起動

レジストリのオートランにコマンドが登録されており、そのコマンドにより通信する通信先を答える問題。

コマンドの中にはPaste binのURLが記載されており、Paste binのスクリプトを実行するというもの。

スクリプトJScriptで記載、また文字列がアスキーコードで書かれており、パッと見ではわからないようになっています。

スクリプト部分をGoogle Closure Compilerに掛けアスキーコードを文字に戻した後、httpをgrepし通信先を割り出しました。

Closure Compiler Service

Google Closure CompilerはJava Scriptなどで書かれたスクリプトの難読化解除や、不要コードを削除してくれるサービスです。

 

脅迫文書

Torのアドレスが与えられており、Torブラウザでアクセスし、 URLの下に書いてある文字列をパスワードとして入力することでフラグが表示されます。

解説では、Torブラウザを使わないやり方が紹介されており、「~~.onion」のあとに「.to」をつけ「~~.onion.to」のようにアクセスすることで、通常のブラウザからもアクセスできることを紹介されていました。

またフラグを格納しているサイトは「Stronghold Paste」というサイトが使用されており、これはTorネットワーク上のPaste binのようなもので、攻撃に使われる脅迫文書がおかれている場合があるとのことでした。

 

攻撃痕跡

EDRのログに攻撃の痕跡があり、盗まれたファイルのファイル名を答える問題。

与えられているファイルの中を見ていくと、パスワード付のRARファイルがあります。

そのファイル名でEDRのログを検索すると、xlsxファイルをパスワード付で圧縮しているコマンドを見つけられます。

最後にそのパスワードでRARファイルを解凍すれば盗まれたであろうファイルが出てきます。

ちなみにこの問題は、実際にマクニカ社さんで解析した検体で、パスワードも攻撃者が使っているものをそのままに出題されたそうです。

 

宛先暗号

EDRのログファイルと、不審なプログラムが与えられ、プログラムの通信先を調査する問題。

プログラムのほかにバイナリデータが格納されたファイルも与えられています。

ログファイルを見ると、不審なプログラムと、バイナリファイルを引数に実行されている痕跡が確認できます。

x32dbgにてプログラムを開き、引数としてログに記録されたとおりのものを設定。

CPU画面にてモジュール内のStringsを検索したところ、「http」を参照しているところがあったので、その部分でブレーク。

f:id:fatsheep:20170714000843p:plain

その後、数ステップ進めた所でスタックに該当のドメインが格納されたことが確認でき、フラグ入手。

f:id:fatsheep:20170714001040p:plain

解説では与えられたバイナリファイルのほうに着目しており、プログラムを引数なしで実行するとRC4ファイルを与える旨のUsageが表示されることから、RC4形式で暗号化されたファイルと推測。

鍵情報はログより「abcd」であることがわかります。

以下のようなツールで復号することで、プログラムを実行せずドメインを特定することが可能、ということでした。

RC4-Python/rc4.py at master · bozhu/RC4-Python · GitHub

また問題に出題された「shinobot.com」というサイトは、標的型攻撃をシミュレートするサービスを提供しており、午後のセッションで詳しく解説がありました。

 

賭博遊戯

時間内に解けなかった問題です。

 

情報照合

時間内に解けなかった問題です。

 

脆弱会話

時間内に解けなかった問題です。

 

最後に

 難易度、実施時間などとても程よく、また問題についても最近話題になっているものや実際の攻撃を問題として出題しており、大変勉強になりました。

時間が足りず解けなかった問題も数問あり悔しかったので、次回(来年?)に向けて準備して、全問正答を目指したいと思います。