TryHackMe 歴1ヵ月半が参加する Advent of Cyber 2022 [Day 12]

12日目。

[Day 12] Forensic McBlue to the REVscue!

マルウェアを Detect It Easy、CAPA、ProcMon を用いて解析していく。

What is the architecture of the malware sample? (32-bit/64-bit)

まずは Detect It Easy を使って解析を行う。Detect It Easy を開くと様々な情報が見られる。その中にアーキテクチャの記載もあるのでそれを回答する。

What is the packer used in the malware sample? (format: lowercase)

マルウェアの製作者はそのマルウェアを難読化するために実行可能な状態のまま圧縮することがあるが、その処理を「パッキング」といい、パッキングを行うものを「パッカー」と呼ぶ。そのパッカーも Detect It Easy によって解析できるのでそれを回答する。

What is the compiler used to build the malware sample? (format: lowercase)

ここからは hint にある通り CAPA を使って解析を行う。CAPA ではマルウェアの機能を解析できる。先述の通り、今回解析するマルウェアはパッキングされており、そのままでは CAPA で解析ができない。そこで一旦ファイルの圧縮を解いてから解析を行う。これより前に CAPA を実行していると mysterygift.viv が作成されてしまうので一旦削除してから解析を行う。

upx -d mysterygift
del mysterygift.viv
capa mysterygift

問題は何のコンパイラが使用されているかであるが、これは CAPA 実行結果の 4 番目のテーブルを見るとわかる。

How many MITRE ATT&CK techniques have been discovered attributed to the DISCOVERY tactic?

CAPA の実行結果の 2 番目のテーブルを見る。

What is the registry key abused by the malware?

ここからは ProcMon を使ってマルウェアの動的解析を行っていく。まずはフィルタを設定することで mystery.exe の動向のみを探ることができる。

フィルタの準備ができたので mysterygift ファイルを実行可能な mysterygift.exe に変更して実行する。一見何も起こっていないように見えるが ProcMon の上部にあるアイコンをクリックすると mysterygift.exe プロセスが動いてそうなのがわかる。アイコンについては今回は下図の 3 つのみを使用する。

解説にもある通り、マルウェア解析は

を軸として行われるので問題を通して順に見ていく。

まずはレジストリキー改変から(Show Registry Activity アイコンをクリック)。ここでは生成・改変されたレジストリのみに注目したいので

  • RegOpenKey
  • RegQueryValue
  • RegQueryKey
  • RegCloseKey

の 4 つについては右クリック → Exclude 'Regxxxxx' で除外する。除外されたリストのうち Path カラムに注目して回答を得る。

ちなみに、マルウェアによって abuse されているこのキーであるが、OS 起動時に自動的にプログラムが動くようにどうこうするためのものらしい(適当)。

What is the value written on the registry key based on the previous question?

残ったリストのうち、Operation が RegSetValue のものをダブルクリックして詳細を見る。Event タブの Data が答え。これもスタートアップ関連?

What are the names of two files created by the malware under the C:\Users\Administrator\ directory? (format: file1,file2 in alphabetical order)

次はファイル操作について。Show File System Activity アイコンをクリックするとマルウェアによって作成されたファイルが見られる。レジストリ改変の時と同様に、右クリックから以下の不要なリストを除去する。

  • CreateFile
  • CreateFileMapping
  • QuerySecurityFile
  • QueryNameInformationFile
  • QueryBasicInformationFile
  • CloseFile
  • ReadFile

Operation が WriteFile のものに注目し、C:\Users\Administrator\ ディレクトリに作られたファイルを 2 つ回答する。

What are the two domains wherein malware has initiated a network connection? (format: domain1,domain2 in alphabetical order)

最後はネットワーク接続について。Show Network Activity アイコンから確認する。Path のカラムを見ると通信元・通信先が見て取れるのでここから回答する。

Going back to strings inside the malware sample, what is the complete URL used to download the file hosted in the first domain accessed by the malware?

ここでは再び Detect It Easy に戻る。右側にある Strings をクリックし、マルウェアから読み取れる文字列をリストアップする。あとは適当にフィルタを掛けると答えらしきドメインが見える。

If you enjoyed malware analysis, try the Intro to Malware Analysis or Dissecting PE Headers rooms next!

No answer needed

感想

今回はリモートデスクトップを用いた安全な環境でのマルウェア解析であった。普段外のカフェで作業しているので 1 時間ごとに接続が切れるなど、リモートデスクトップには厳しい環境ではあったが何とか乗り切った。画像をよく見るとわかるが、今回から各画像に灰色の外枠を付けることにした。これで少しでも見やすくなればなぁと願うばかりである。ところで記事を投稿した後ってうまいこと画像サイズを変える方法とかないの?