リソース
無料PDF:Practical Malware Analysis
Lab(上記PDF付属のマルウェア検体):ここからDLしたものを実行
解析環境:Win10のEdgeテスト用のVMにFlareVMいれたものをVirtualBox上で動かしてる。(YoutubeのMalwareAnalysisBootcampの環境)
Lab 1-1
Q1: VirusTotalでの解析
Q2: コンパイルがいつされたか?
コンパイルされた情報はインシデントレスポンスに使えたり、日時が同じなら同じマルウェアっぽいみたいな考察に使える。
この情報はPEヘッダのIMAGE_FILE_HEADERから読み取り可能(偽装されてる可能性もあるが)。
2010/12/19っぽい。
Q3: packerや難読化の有無
stringやimport/export情報が明らかに少ないならされてる可能性大。とりあえずPEiDが自動検出してくれるので、使う。
Visual C++ 6.0 なのでおそらくされてない。
続いてImport/Export情報を確認。
エクスポート無しでインポート6個... 少ないと思ったが解説見ると小さいプログラムってことらしい。
ちなみにこのimport/exportは.rdataにあり、PEviewでも見れるがpestudioのほうが圧倒的に見やすい。
また、文字列情報も一応確認してみる(実行ファイルを右クリックしてstringsを選択)。
まぁ難読化はされてないっぽい。
Q4: Importからのマルウェアの動作の推測
.exeの方
まず関数のライブラリだけみると、kernel32.dllとmsvcrt.dllしか使ってない。
- kernel32.dll:メモリ/ファイル/ハードウェアなどの操作をする基本的なやつ
- msvcrt.dll:どの実行ファイルでも使われてるらしいので無視
次に関数を見てみると、どうやらファイル操作関連が多く、教材取り上げられていた FindFirstFile/FindNextFile もあることから、このマルウェアはファイルを探索したり作成したりできるっぽい。
.dllの方
こっちはどうやらネットワーク関連のimportが多い。あとCreateProccessもある。
stringも見てみると、
どうやらIPっぽいのが書いてあり、ここと通信してるのかなと思ったり。
Q5: host-baseシグネチャとなる特徴的な情報の探索
他に感染したPCを特定するために、host-baseシグネチャとなるものはないかを探す問題かな。
シグネチャ作るならstring情報とか使えそうだしみてみると、kerne 1 32.dll という文字列がある。
これとか特徴的だしシグネチャとして有用っぽい
Q6: network-baseシグネチャとなる特徴的な情報の探索
先程stringsで見つけた127.26.152.13のIPアドレスがシグネチャとして使えそう。
Q7: このマルウェアの種類の推測
CreateProcess+SleepのコンビはよくBackdoorとして使われるらしく、stringsとしてexecとsleepがあったらバックドアっぽいと睨むらしいのでみてみる。
あったので、たぶんバックドア作る系、VT結果からみてやはりトロイの木馬っぽい。
Lab 1-2
Q1: VirusTotalでの解析
Q2: パッカー/難読化の有無
PEiDではNothingFoundだったが、pestudioでみたらUPXとか書いてあるからUPXっぽい。
import/exportも少ないので確実にPackedされてる。UPXなので、以下のコマンドでアンパックする。
Q3: Importからのマルウェアの機能の解析
kernel32.dll/msvcrt.dllはいつも入ってるとして、特徴的なのは以下。
- wininet.dll:InternetOpenやInternetOpenURLによりインターネット接続してる
- advapi32.dll:ServiceManagerやレジストリを扱うライブラリで、今回CreateServiceなどがある
string情報を見てURLやサービス名が無いか探すとあった。
他にも "Malservice" のような文字列があった。
Q4: host-base/network-baseシグネチャとして使えそうな情報の探索
Q3でみたようにhostでは "Malservice" 、networkならURLがシグネチャとして使えそう。
Lab 1-3
Q1: VirusTotalでの解析
相変わらずのTrojanとSpywareという結果もある。(Flareなら右クリックしてVirusTotalもできる)
Q2: パッカー/難読化の有無
明らかにimport数が少ないのと、PEiDによると、
FSGでパッキングされてるが、アンパックの手段が無い。アンパックできないなら次もう進めん。
Lab 1-4
Q1: VirusTotal解析結果
Q2: パッカー/難読化の有無
PEiDだと Visual C++ 6.0 なのでパッキング無し!
Q3: タイムスタンプの確認
pestudioの file header 確認すると 2019/8/30 で、この教材の古さからしたら未来すぎるので改ざんされてるのかもしれない。
Q4: Importからのマルウェアの機能の解析
ライブラリに関しては kernel32.dll/advapi32.dll/msvcrt.dll しか無い。
関数名を見るとPrivilegeとあるので権限周りでなにかすることがわかる。また、組み合わせると以下の流れだと考えられる。
- LordResourceなどでresourceセクションから何らかのデータを読み込む
- CreateFile/MoveFileなどでファイルに書き込む
- WinExecで実行する
また、GetWindowsDirectoryがあることからSystemディレクトリに書き込むではと推測できる。
Q5: host/network-basedシグネチャに使えそうな情報
このURLだとかwupdmgr.exeなどのパスなど使えそう。
Q6: Resourceの解析
Resourceから何らかのデータを取ってきているのでResourceHackerで見てみる。
どうやら実行ファイルがResourceセクションがあるようなので、Action > Save Resource to a BIN file してみて、再びpestudioで開いてみる。
特徴的なのはURLDownloadToFileAでWinExecもあることから、ダウンローダであると推測できる。