setodaNote

忘れる用のメモ書き for Cybersecurity

検体解析:2018-07-02-Zeus-Panda-Banker-caused-by-Emotet.exe (2)

前回の振り返り

前回はアンチアナリシスを回避するところまで解析しました。 今回はその続きを解析します。 参考までに以下に前回の解析概要を記載します。

単に検体の exe を起動するだけでは自身を削除してしまうだけなので、x32dbg でデバッグします。
 1.  [Ctrl+G]+「CreateFileW」で関数の番地に移動し、
   先頭とリターンの箇所にブレークポイントを設定しておきます。
 2.  [F9]でブレークポイントを設定した「CreateFileW」まで処理を進めます。
 3. さらに[F9]で処理を進めると、以下のファイルについて存在チェックをしていると分かります。  
    C:\popupkiller.exe  
    C:\stimulator.ex    
    C:\TOOLS\execute.exe
    `\\.\NPF_NdisWanIp`
  この「`\\.\NPF_NdisWanIp`」の存在チェックが失敗していると検体が終了してしまうので、
  デバッガで書き換えて処理を継続させます。  
 4. 画面の右側にある LastError をダブルクリックして値を 0x3 とします。
 5.  [Ctrl+G]+「CreateToolhelp32Snapshot」で関数の番地に移動し、
   先頭とリターンの箇所にブレークポイントを設定しておきます。
 6.  [F9]でブレークポイントを設定した「CreateToolhelp32Snapshot」まで処理を進めます。
 7. さらに[F9]で処理を進めると、以下のプロセス名を監視していると分かります。
    Wireshark
    immunity
    processhacker
    procexp
    procmon
    idaq
    regshot
    aut2exe
    perl
   python
  プロセス名は実行ファイル名を変更すれば変わるので、
  適宜、変更するなどして監視を逃れるようにします。
 8. さらに[F9]で処理を進めると「CreateFileW」の処理で再びファイルの存在チェックが始まります。  
  確認されるのは以下のファイルです。
    `\\.\REGVXG `→ 0x2 (ERROR_FILE_NOT_FOUND)
    `\\.\FILEVXG` → 0x2 (ERROR_FILE_NOT_FOUND)
    `\\.\REGSYS` → 0x2 (ERROR_FILE_NOT_FOUND)
    `\\.\FILEM` → 0x2 (ERROR_FILE_NOT_FOUND)
    `\\.\TRW` → 0x2 (ERROR_FILE_NOT_FOUND)
  ここは特に何もしなくても通過しました。
  9. 次に C:\Users\%USER%\AppData\Roaming のフォルダの走査が始まります。
 10.  [Ctrl+G]+「WriteFile」で関数の番地に移動し、
    先頭とリターンの箇所にブレークポイントを設定しておきます。
 11. さらに[F9]で処理を進めると「WriteFile」の処理でRoming 配下のどこかに自身をコピーを作成します。  
    このときのパスやファイル名はすでにあるフォルダやいくつかのファイル名が使われ、実行毎に変化します。

動作概要

  • ダウンローダ
  • 永続化(レジストリ Run を利用)
  • svchost.exe にペイロードをインジェクションして外部通信を行う

ファイル概要

ファイル名:
2018-07-02-Zeus-Panda-Banker-caused-by-Emotet.exe

MD5    : 5adbfc0f8654bb458438b3f614ca9e37
SHA1   : 1a99cb666cccb67e4537856e083773576ec29e1d
SHA256 : 2527c9eb597bd85c4ca2e7a6550cc7480dbb3129dd3d6033e66e82b0988ee061
SSDEEP : 3072:aQ5wUD2hwA85rjT7LwuiEl8bBNpkLbNb9fkr+UnT2V3FPjDR08OUWd:aQX6hw9rf7Lwuhswdb9fkqUT63v08cd

挙動

レジストリの設定

CurrentVersion\Run に自身のコピーを登録し、永続化していました。

HKCU\Software\Microsoft\Windows\CurrentVersion\Run\calWcapUtils.exe

HKLM\SOFTWARE\Wow6432Node\Microsoft\Tracing\svchost_RASAPI32\EnableFileTracing
HKLM\SOFTWARE\Wow6432Node\Microsoft\Tracing\svchost_RASAPI32\EnableConsoleTracing
HKLM\SOFTWARE\Wow6432Node\Microsoft\Tracing\svchost_RASAPI32\FileTracingMask
HKLM\SOFTWARE\Wow6432Node\Microsoft\Tracing\svchost_RASAPI32\ConsoleTracingMask
HKLM\SOFTWARE\Wow6432Node\Microsoft\Tracing\svchost_RASAPI32\MaxFileSize
HKLM\SOFTWARE\Wow6432Node\Microsoft\Tracing\svchost_RASAPI32\FileDirectory
HKLM\SOFTWARE\Wow6432Node\Microsoft\Tracing\svchost_RASMANCS\EnableFileTracing
HKLM\SOFTWARE\Wow6432Node\Microsoft\Tracing\svchost_RASMANCS\EnableConsoleTracing
HKLM\SOFTWARE\Wow6432Node\Microsoft\Tracing\svchost_RASMANCS\FileTracingMask
HKLM\SOFTWARE\Wow6432Node\Microsoft\Tracing\svchost_RASMANCS\ConsoleTracingMask
HKLM\SOFTWARE\Wow6432Node\Microsoft\Tracing\svchost_RASMANCS\MaxFileSize
HKLM\SOFTWARE\Wow6432Node\Microsoft\Tracing\svchost_RASMANCS\FileDirectory
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\SavedLegacySettings
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\UNCAsIntranet
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\AutoDetect
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\UNCAsIntranet
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\AutoDetect

ファイルの作成

calWcapUtils.exe は検体のコピーです。生成されるフォルダやファイル名は実行する毎に変化するようです。 バッチファイルは検体自身を削除するためのものです。

C:\Users\username\AppData\Roaming\Thunderbird\Profiles\xxxxxx.default\extensions\{e2fda1a4-762b-4020-b5ad-a41df1933103}\defaults\preferences\calWcapUtils.exe
C:\Users\infected\AppData\Local\Temp\upd4177f06c.bat

バッチファイルの内容は以下の通り。「C:\0\90_kentai\exe1」は今回の検体を置いているフォルダ名です。

@echo off
:d
del /F /Q "C:\0\90_kentai\exe1\2018-07-02-Zeus-Panda-Banker-caused-by-Emotet.exe"
if exist "C:\0\90_kentai\exe1\2018-07-02-Zeus-Panda-Banker-caused-by-Emotet.exe" goto d
del /F "C:\Users\username\AppData\Local\Temp\upd4177f06c.bat"

通信先

ドメイン名は実行毎に変化していたので下記以外にも複数あるようです。

hxxps://canariasmotor[.]top/1upmituazuciqfaiwutbo.dat
hxxps://canariasmotor[.]top/fpQ/63hoTk/PR/XdOFKc/3YSbS/5/Eg/
hxxps://canariasmotor[.]top/JTr88t/x/1xLEA/v/0cfe/md/4X9ZZCa/TA
hxxps://canariasmotor[.]top/W62/2j4/LfwWybJXmGIu7/e/PLaIw

通信はすべて HTTPS 通信による POST で、 POSTデータ自体は通信毎に変化していましたが、すべて 729 字からなる base64 という共通点がありました。 また単純にデコードするだけでは意味のあるデータにはなりませんでした。

なお、VirusTotal によると当該ドメインはシンクホールになっているようです。

content-length: 0
content-type: text/html
date: Mon, 13 Aug 2018 06:12:04 GMT
server: nginx/0.7.65
x-sinkhole: Malware sinkhole

解析画像

自身のコピーを作成した後、さらに処理を進めるとコピーを起動し自身を削除します。 その後、1分30秒ほど待機した後に svchost.exe が2つほど実行されます。 この2つのプロセスが calWcapUtils.exe(検体のコピー)が自動起動されるようにレジストリに登録をしたり、 外部通信をしたりしていました。

検体実行時のプロセスツリー

通信先はのドメインは VirusTotal で 9 / 68 として Malicious 判定がされていました。 ドメイン以降はほかにもいくつかあるようでした。都度生成されるものなのかもしれません。

検体実行時のプロセスツリー

感想

ほんの思いつきで選んだ検体だったものの予想以上にちゃんとしたマルウェアでした。 楽しかったものの解析手順なぞることすら苦戦するという。。。

参考

今回の検体は、ほぼこちらのサイトの解析方法に即して解析をしています。

また、さらに詳しい解析が以下でされています。 svchost.exe へのインジェクション手法やURLの生成について解析がされています。

更新履歴

  • 2019/03/21 一部記載の削除。
  • 2023/01/10 一部リンク切れの旨を追記