CodeGate2012 Forensics300を解いてみる

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

※注意

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

問題文

IU is investigating the system which was contaminated by malicious code.
As a result of analyzing TimeLine, it seems to be contaminated after February 9th 2012.
Contaminating path would be from visiting Web page. IU analyses various user traces of Internet, however IU can’t find malicious URL.
Maybe traces would be removed, when it was contaminated. Find correct malicious URL and the time it was contaminated. (cf. Remove http(s)://)
The time is based on Korea Standard Time(UTC +09:00).

Answer: malicious_URL|YYYY-MM-DDThh:mm:ss
(‘|’ is just a character)

ざっくり意訳

IUは悪意のあるコードによって感染しているシステムの調査をしています。

調査結果のタイムラインから感染は2012.02.09以降でWEBページからの感染ということがわかりました。IUは様々なユーザのインターネット履歴を分析しましたが悪意のあるURLを見つけることはできませんでした。おそらく履歴を感染の際に削除されてしまったようです。システムが感染した時間と、悪意のあるURLを特定してください。

注意

URLからhttp(s)://は覗いてください。

時間は韓国標準時刻でYYYY-MM-DDThh:mm:ssの形式で答えてください。

答えは   悪意のあるURL|時刻 で解答してください

こんな感じですね。IU押しですね・・・w

fileコマンド〜の流れは、まぁいいですよね。今回も7zipで圧縮されたwindowsのuserフォルダ

今回はproneerさんのフォルダのみですね。フォルダの最深部にはCookiesというフォルダのみ(GoogleChromeのCookieみたいですね)

お恥ずかしながら、Cookieってsqlite形式で保存されてるの初めて知りました・・・。sqliteコマンドで中身を見てみます。

Screen Shot 2013-02-15 at 21.23.18簡単にコマンド説明

とりあえずSELECT * してみました。Screen Shot 2013-02-15 at 21.31.06(一部抜粋です)

よくわからない文字列がワラワラ・・・。その中に唯一、読めそうなもんがありますね。二つ目のカラムです。URLっぽい感じですよね。うん、ここに答えがありそう!!って思いここだけ抽出してみることに

Screen Shot 2013-02-15 at 21.36.12

おぉー!アドレスがずらずら!ここに答えが!そう思ってた時期が僕にもありました。

結局のところ、ないんですよね、怪しいURLなんて・・・・。google,facebook, wikipedia, twitter,amazonなどなど・・・。よく見るURLと、まぁ特別あからさまなURLは見当たりません・・・。(ここでwriteupをカンニング・・・)

ここで問題文に注目。IUさんが調査してるんですよね、既に。そして見つからなかった・・・消されてしまった可能性がある、ということでした。つまりこのCookiesというsqliteファイルから対象データは消されてしまったんですね。そりゃここ覗いても見当たらないわけだ・・・。

参考にさせてもらったwriteupにあったのですが、基本的にsqliteファイルから完全にデータを削除することは、難しいみたいです。つまりファイル内にデータが残っている、と。

binaryエディタで見てみます。forensics200でインストールしてみた010Editorがものすごく良いのでそれで見てみます。sqliteのテンプレートは見つかりませんでしたが・・・。

Screen Shot 2013-02-15 at 21.50.43

 

まぁテンプレートがない以上、普通のバイナリエディタとまぁ、変わりませんね・・・でもテンプレートの威力を味わって、有料版買ってしまいそうです・・・。

まぁこんな感じでbinaryのなかに、さっきsqliteコマンドで見た内容がまんま入ってますね。画像は.schemaで表示させたcookiesテーブルの定義ですね。

このファイルのなかから、さっきselect *で取得したアドレスになかったものを探していきます。

binaryのなかから指定した文字列を検索して置き換える、っていうの何かいい方法ないかなぁ・・・地道に探しました・・・。これwriteup見なきゃ絶対僕には解けてないなぁ・・・

Screen Shot 2013-02-15 at 23.20.56

 

ここですね。test.wargame.kr

これがsqliteコマンドで表示されず、ファイルのなかに残っているURLです。

日付に関してはこちらを参照しました。URLの後にutmaとありますが、ここに色々な情報が格納されるようです。リンクを見ると.(dot)ごとに6つの情報があり3つ目がutmaが生まれた時間、4つ目が最新の1つ前のセッション開始時間、5つ目が最新のセッション開始時間。WEBページにアクセスしたときに悪意のコードをロードするので、3つ目の時間を利用します。(UNIX時間ですので、変換が必要です。)

forensics200の時に書いたコードをそのまま使って答えを出力します。時間の表示形式が若干違うのでそこだけ修正。コード

答え: test.wargame.kr|2012-02-09T23:57:27

 

難しい・・・・全然解ける気がしないっす・・・正直・・・

でもCookieの形式とか本当に勉強になりました。

ポイントとしては、対象ファイルを通常に開いても答えがないことに気がつく、utmaの情報にすぐに辿り着けるか、形式を把握しているか、だと感じました。

むずむず・・・・

コメントを残す

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