CodeGate2012 Forensics400を解いてみる

前回に引き続きCodeGate2012の復習とか

※注意

  • 他の方のwriteupを参考に解いています。(許可とってないのでリンクは貼りませんが、ぐぐってすぐ出てくる海外の方のブログを色々参考にさせていただいています。)
  • できれば全問触りたいのでwriteupを見ることを前提で解き初めてます。

問題文

In Energy corporate X which is located in Seoul, APT(Advanced Persistent Threat) was occurred.
For 6 months, Attacker A has stolen critical information with an elaborate attack.
Attacker A exerted great effort to remove his all traces such as malicious file, prefetch, registry and event logs for the period of attacking, so it was hard for Energy Corporate X to find an attacking path. However IU who is Forensic expert can find the traces of the malicious files Attacker A used by analyzing MFT(Master File Table).
What time malicious file was created? The time is based on Korea Standard Time(UTC +09:00)
Answer: YYYY-MM-DDThh:mm:ss.sTZD
(TZD : +hh:mm or -hh:mm). Calculate down to seven decimal points.

ざっくり意訳(今回難しいな・・・)

ソウルにある企業Xに、重大な脅威が発生しました。6ヶ月もの間、攻撃者Aは高度な手法を用いて重要な情報を盗みました。攻撃者Aは攻撃が終わるまでの悪意のあるファイル、レコード、イベントログなどの痕跡を消すため努力しました。ですので、企業Xが攻撃の情報を見つけるのは大変困難でした。しかしフォレンジックのエキスパートであるIUはMFT(MasterFileTable)を分析することによって、攻撃者Aの悪意のあるファイルの痕跡を発見することができました。その悪意のあるファイルはいつ作成されたでしょうか?時間は韓国標準時間(UTC +09:00)でYYYY-MM-DDThh:mm:ss.sTZDの形式で答えてください。小数点以下は7桁まで計算してください。

こんな感じですかね・・・違和感バリバリですが、まぁ意味はギリギリわかります・・・(笑)

問題ファイルはいつもどおり7zipで圧縮されており、解答すると$MFTというファイルひとつが出てきます。(問題ファイルはリネームしました)

Screen Shot 2013-02-16 at 14.21.44

fileコマンドしても、dataとしか出ませんね。まぁ問題文にもMFT(Master File Table)とあるので、それでググってみます。それと一緒に参考になりそうなwikipediaのページも一緒に載せておきます。

MFT マスターファイルテーブル -wikipedia-

NT File System -wikipedia-

ファイルシステム -wikipedis-

要するに、もらったファイルはwindowsのNTFSのMFTで、そこにシステム内のファイルが全部書いてあるーみたいな感じですかね。

それでそのファイル開いてみたんですが、もちろんテキスト形式では意味不明です。これ中身を見る方法なんかないかなー、ってググってたらとても良いツール見つけました。参考にさせていただいたwriteupには「そういうツールがいくつかあるので、好きなもの使ってね」って感じで、具体的なツールは紹介されていなかったのですが、利用させていただいたので、紹介します。Github analyzeMTF

pythonで書かれたMTF解析して csvで出力してくれるスクリプトですね。今度ちゃんと中身読んでみたいな。探すとなんでもありますね・・・ネットには。 writeupでも同じ形式で出力してるサンプルが載せられていたので、同じものを使ったのかも。(追記:韓国の参加者の方のブログでは同じものが紹介されていましたが、これを使わずに解答にたどり着いたようです。他にはR-studioっていうソフトで中身をチェックしている方もいました。)

これを利用して、中身を見やすいCSVファイルにしてもらいます。

Screen Shot 2013-02-16 at 14.48.34

 

使い方は-fオプションで対象ファイル、-oで出力ファイル、簡単です!

さっそく中身を見てみます。

Screen Shot 2013-02-16 at 14.52.10

わちゃーーーーーーーー!おおよそ1500ファイルくらいのレコードが記録されていました。さてさて、この中から答えはどこにあるのでしょう・・・。文字列としては読みやすくなりましたが、それぞれがなんの値なのか・・・・。と思ったらちゃんと一番最初の行に書いてありますね。ExcelかNumbersで見たほうが見やすいかな。まぁここから先は全くわかりませんでした・・・。

writeup見ればすぐにわかることなんで、ザックリ答えから書いちゃうと、1047コ目のレコードである/$Recycle.Bin/r32.exeがそのファイルなんですが、どうやってここにたどり着いたかサッパリ・・・他の方のwriteupには、対象ファイルは.exeで、ヒットする中で怪しいのはこれだけ、ということ。もうひとつ、隠しフォルダ$Recycle.Bin/のなかに入っているから、これが答え、ということでした。まぁ言われればそうなんですけど、.binファイルも含まれているのに、なぜ.exeに断定できたのか・・・Recycle.Binってゴミ箱ですよね・・・?削除した、ってゴミ箱にかよ・・・って思っちゃったんだけど、なんか見落としてるかな・・・英語ならゆっくり読めばなんとなくわかるんだけど、韓国語は全くわからん・・・。まず文字打てないし・・・wぐぬぬ・・・。

答えはこのファイルが作成された時間ですね。これも含まれてます。上記のファイルが含まれるレコード内に2012-02-22 17:39:18.897461とあります。これが作成された時間。

ただ、これはUTC時刻なので、韓国・ソウルの時間に合わせて形式も解答の形に整形してあげます。小数点以下7桁で解答するように求められているので、小数点の最後にゼロをつけます

2012-02-22 17:39:18.897461 -> 2012-02-23T02:39:18.8974610+09:00

これが解答。難しすぎるよー・・・・100~400まで順番にやって、ちゃんと難易度あがってるように僕は思います・・・よくできてるなぁ・・・

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です