Emotetマルウェアキャンペーンは長らく存在しています。様々な手法や亜種を用いて、定期的に発生し、被害者にマルウェアを拡散します。攻撃者は巧妙で、検出を回避するために複雑な手法を駆使します。2017年の初めには、メールに添付されたPDFファイルやJavaScriptファイルを介してEmotetキャンペーンが拡散しているのが確認されました。今回は、高度に難読化されたマクロを組み込んだMS Office Word文書を介して拡散しています。
攻撃チェーン

このキャンペーンの拡散メカニズムはフィッシングメールです。「請求書」「配送詳細」「発送詳細」「お支払い詳細」といった件名を使い、被害者を騙してメールを開かせようとします。こうしたメールには、Word文書をダウンロードさせる不正サイトやフィッシングサイトへのリンクが張られています。また、メール内に文書を直接添付したり、圧縮ファイルとして文書ファイルを添付したりする手口もあります。

マクロの詳細分析
マクロが埋め込まれた悪意のあるOffice文書です。「編集を有効にする」をクリックすると、マクロコードが起動します。サンプルを1つ採取しました。この文書には「prMzoHTQ」や「zdXXRhCd」といった高度に難読化された2つのマクロが含まれており、Sub AutoOpen()関数を含むコードがマクロを実行しています。

最初のマクロ「zdXXRhCd」には、文字列を引数として受け入れる関数 FAUzvR() が 4 つあります。難読化解除の段階で、コードを逆にして複雑化させるためにジャンク コードが使用されていることがわかりました。On Error Resume Next は、ジャンク コードが存在することを意味します。ジャンク コードが存在する場合は無視します。コードを実行するために使用されているシェルの横には、文字「P」を意味する vbkeyP があります。図に示すように、MIqCuXCZPMl、SOznt、およびその他の XNUMX つの値は、関数 FAUzvR() に渡されるパラメーターです。これらは、XNUMX 番目のマクロで関数として宣言されています。XNUMX 番目のマクロの目的は、文字列を結合して、最初のマクロの関数 FAUzvR() に値を返すことです。関数 FAUzvR() は WScript Shell オブジェクトを作成し、vbkeyP を使用して関数を実行して以下の出力を取得します。
「PowersHeLL -e KABuAEUAVwAtAG8AYgBKAEUAYwBUACAAIABT……」
最終的な PowerShell コマンドは下図のように出力されます。

コマンドを確認したところ、PowerShellがBase64でエンコードされた文字列を使用していることがわかりました。Base64文字列をデコードすると、以下の出力が得られます。

次に、PowerShellスクリプトを示します。内容はPowerShellパラメータで圧縮されたBase64文字列です。このスクリプトでは、IO.StreamReaderを使用して、指定されたファイルと指定された文字エンコーディングでStreamReaderクラスの新しいインスタンスを初期化します。IO.compression.compressionModeは圧縮モードをDecompressionに設定します。Deflateストリームオブジェクトは、MemoryStreamから解凍されたバイトをストリームします。[SySTem.tExt.encodIng]::ASCIIはASCIIエンコーディングに設定します。REadtOEND()はストリーム全体を読み取り、そこに含まれるASCII文字列を返します。
スクリプトの難読化を解除するには、まず文字列をbase64でデコードする必要があります。その後、解凍すると以下の図のような出力が得られます。

ついに難読化解除されたスクリプトを入手しました。このスクリプトには悪意のあるURLのリストが含まれています。このスクリプトはURLからマルウェアをダウンロードし、1から994915までの範囲でランダムなファイル名を生成し、%temp%ディレクトリに.exe拡張子で保存します。その後、Start-Processコマンドによってマルウェアが実行されます。
下の図に示すように、さまざまな難読化方法が存在します。



ペイロード分析
ダウンロードされたペイロード「{Random_number}.exeファイル” は %temp% の場所から実行されます。
この場合、ペイロード名は 「iwamregutilman.exe」. これによりインスタンスの名前が変更され、名前のコピーが起動されました 「wsdquota.exe」 「C:\Windows\system32」の場所から。
このファイルは再び独自の新しいインスタンスを生成し、そのアクティビティを表示します。

ダウンロードされたペイロードには、事前に定義された単語のリストがあり、このリストから2つの単語を組み合わせて2つの名前を作成します。nd 自己コピーはそれぞれの場所から実行されます。システムが32ビットの場合、「C:\Windows\System32」フォルダから自己コピーが実行され、64ビットの場合、「C:\Windows\SysWOW64」から実行されます。

以下はこのファイルに保存されている名前のリストです。

1を組み合わせることでst 「wsd」という単語と2nd 単語が「quota」の場合、ファイル名は「wsdquota.exe」として作成されます。
ドロップされたファイルの最初のインスタンスには、巨大な暗号化データが含まれています。このデータは実行時に復号され、メモリ内に別のPEファイル2つが書き込まれます。このPEファイルは、親ファイルによる後続処理に使用されます。
その後、親プロセスは、そのプロセスが自身で生成されたものかどうかを確認します。そうでない場合は、ミューテックスを1つ作成し、親プロセスを閉じて個別に実行します。
生成されたプロセスは、実行中のすべてのプロセスをリスト化し、メモリに保存します。その後、各プロセスの列挙を開始します。

使用することにより CreateToolhelp32Snapshot 関数は、各プロセスと、これらのプロセスで使用されるスレッド、ヒープ、モジュールのスナップショットを取得します。

実行中の各プロセスの詳細を取得した後、マルウェアはデータの暗号化を開始し、POST リクエストで悪意のあるサーバーに送信します。

すべての悪意のあるサーバーがアクティブではないため、このマルウェアの応答後の投稿アクティビティを見つけることはできません。
以下は、各 URL に POST リクエストを送信するマルウェア内に存在する悪意のある URL のリストです。

IOC
4154619d2075d3f6c9e73bf4cdccdb17 (DOC)
6f86fa7d95fed4472ad03eb77cb6a9a4 (DOC)
2dcf064d40ef8fda90193fb00d306020 (DOC)
8249D414627D3DDE168318C92A63F74A (PE)
7B6E1369FF14E16A4815AE1DB32F0794 (PE)
検出統計
Quick Healは、Emotetキャンペーンの初期ベクトルであるスパムメールの検出に成功しました。これは、Quick Healが提供する、この種のキャンペーンを検出するための特別な検出機能です。
以下は、電子メール検出の過去 1 か月の統計です。

Quick Heal は Emotet キャンペーンの最初のベクトルを検出しているため、このキャンペーンの 2 番目と 3 番目のベクトルからのヒットは少なくなっています。

検出名
- MIME.Emotet.Downloader.31464
- MIME.Emotet.31831
- MIME.Emotet.31617
- MIME.Emotet.31618
- W97M.エモテット.31645
- W97M.エモテット.31769
- X97M.エモテット.32092
- トロイの木馬.エモテット.Y4
- トロイの木馬.Emotet.X4
結論
ユーザーを簡単にフィッシングできるソーシャル エンジニアリングのトリックを備えたスパム メールを介して Emotet マルウェアを拡散します。
Quick Heal は、Emotet キャンペーンの各層に対して多層的な保護を提供します。
従うべきセキュリティ対策
- 不明なソースから送信されたメール本文内のリンクを開かないでください。
- 信頼できないソースから受信した添付ファイルをダウンロードしないでください。
- ウイルス対策ソフトウェアの電子メール保護を常にオンにしてください。
- ドキュメントの実行時に「マクロ」または「編集モード」を有効にしないでください。
主題の専門家:
プラシャント ティレカール、アニルッダ ドラス、プレクシャ サクセナ、プラカシュ ガランデ、ヴァラブ チョーレ |クイックヒールセキュリティラボ



