bl4h.exeは今日のために用意したマルウェアです。中身をまず見て見ます。 皆さんまず未知のプログラムを得た場合どうしますか?まずは表層解析をします。どういった文字列が含まれているのか調べます。まずはbintextを使います。 #anamal
2010-12-17 19:18:26プログラムをbinTextにD&Dすると、含まれている文字列が抽出されます。この検体はPackと呼ばれる難読河、圧縮が施されており、いくら読んでも可読性がある文字列が出てきません。いくつかのAPIやDLLの文字列だけが出てきます。 #anamal
2010-12-17 19:19:22検体から抽出されたAPIからどのような感染動作につながるのかを導き出すという一連のプロセスを一章で解説しています。Packされている検体の特徴としてLoadLibraryAやGetProcAddressなどを利用しています。 #anamal
2010-12-17 19:20:22実際の書籍の中で使われているツールであるOllyDbgにロードさせます。 その前にPackerと呼ばれる圧縮ツールを特定します。そのためにPEiDを利用します。検索すればすぐに出てきます。 #anamal
2010-12-17 19:21:51シグネチャファイルというものがあり、一万種くらいのPackerを特定するためのDBがあります・。このソフトにマルウェアをロードさせることで、どんなパッカーで圧縮されているかわかります。 シグネチャ方なので、乗っていないものについては検地することができません・。 #anamal
2010-12-17 19:22:46本章では、簡単に使えるツールとしてこれらのツールを紹介しています。 D&DしてみるとUPXというパッカーであることが特定することができました。 UPXはフリーの圧縮ソフトなので、圧縮を解除するためのツールも手に入れることもできます。 #anamal
2010-12-17 19:23:57OllyDbgに食わせてアンパックをしてみると、一瞬ですけどアンパックが終わりました。 ImportStudioというプラグインを利用します。OllyDbgのプラグインフォルダに入れて使います。 GUIなので簡単にアンパックができます。 #anamal
2010-12-17 19:24:56パックされているマルウェアは既知のパッカーならツールをつかう。未知のパッカーの場合はOllyDbgを使う。 #anamal <-?
2010-12-17 19:25:45虫眼鏡のマークを押してもらって、AutoFIXのボタンを押すことでアンパックをした検体を抽出することができます。 保存されたものがこちらになっています。実際にアンパックされているかをBinTextに食わせます。そうすると明らかに可読性のある文字列が確認できます。 #anamal
2010-12-17 19:26:10UPXだったので、Original Entrypointでブレークポイントしかけてそこまで実行した後、プラグイン使って実行ファイルを保存してる感じなのかな #anamal
2010-12-17 19:26:38圧縮されたものを解凍することで意味のある文字列を抽出することで、解析のための第一歩に立ちます。 われわれがよく利用するのはIDA-PROというツールを利用します。 Free版もあります。 本章では4.9を紹介してますが、バージョン5からグラフビューがついています。 #anamal
2010-12-17 19:27:28IdaProにロードしてSHIFT+F12を押すと、テキスト文字列を抽出したウィンドウを出すことができます。なぜわれわれがIDAPROを使うかというと、プログラムのどこで文字列を利用しているかが容易に特定できるからです。 #anamal
2010-12-17 19:28:25たとえば、ここにレジストリキーらしきものがみえます。頭のSが抜け落ちてますが。 こういった形のレジストリキーがどこで利用されているかは、ダブルクリックして、ラベルをだして、右クリックして、・・・マッチしないですね。 #anamal
2010-12-17 19:29:46