概要
過去2ヶ月間、MassLoggerという新たなスパイウェアに対処してきました。この高度なキーロガー兼スパイウェアは、MalSpamの添付ファイルを介して拡散し、既存の他のキーロガーツールよりも多くの機能を備えています。このキャンペーンでは、初期感染ベクトルとして、複数の異なるファイル形式を悪意のある添付ファイルとして利用していることが確認されています。また、このキャンペーンの動的な動作は、複数のサンプル間で一定ではありません。キーロガー、Windows Defenderの除外、スクリーンショットの撮影、USB経由の拡散、クリップボードの窃取、VMの検出など、複数の機能を備えています。
技術的な詳細:
このキャンペーンでスパム添付ファイルとして使用されたさまざまなファイルの種類は次のとおりです。
- ZIP
- RAR
- gz
- 7z
- img
- イソ
- DOC
- Arj
- xz
- エース
- ドク
- z
- xlsm
- タクシー
上記のリストを見ると、添付ファイルは大きく分けて2つのカテゴリに分類されます。1つ目はアーカイブファイル、2つ目はドキュメントファイルです。アーカイブファイルの場合は、解凍後に.NET massloggerペイロードが存在します。一方、ドキュメントファイルの場合は、VBAマクロとエクスプロイトが含まれており、これらのエクスプロイトによってリモートサーバーからmassloggerペイロードがダウンロードされます。
多態的プロセスチェーン:
このキャンペーンでは、複数のサンプルにおいて、様々な動的挙動のバリエーションが確認されています。以下に、いくつかのプロセスチェーンのスナップショットを示します。




文書分析:
一部の脅威アクターは、VBAマクロと数式エディタのエクスプロイトを用いて、Office文書ファイルを初期感染ベクトルとして利用しています。次の図は、2つのVBScriptと1つのCVE-2017-11882エクスプロイトファイルを含むOLEストレージが埋め込まれたExcel文書と、VBAマクロを含むVBAプロジェクトストリームを示しています。

図5: OLEストリームとストレージ
次の図は、それぞれ異なるデータを含む複数の OLE ストリームを示しています。

最初のストリーム oleObject1.bin は、名前変更コードを含む VB スクリプト ファイルであり、その後、Wscript を使用して VBS ファイルを実行します。

図7: VBSジョブ
OleObject2.bin ストリームも、高度に難読化された VB スクリプトであり、C2 サーバーからペイロードをダウンロードするコードが含まれています。

数式エディターのスタックベースのバッファ オーバーフロー エディター エクスプロイトを含む Excel シートは、エクスプロイト後に WinExec API (0x00430C12) を使用して VB スクリプトの名前を変更し、実行します。

「1C00」は数式エディタのヘッダーで、右側にはシェルコードが存在し、その中にはcmd.exeが含まれています。このシェルコードはまずVBスクリプトの名前を変更し、それをWscriptに渡してVBスクリプトを実行します。オーバーフローが発生すると、このデータ全体がWinExec関数に渡され、そこでさらに処理が行われます。CVE-2017-1182エクスプロイトに関する詳細は、以下のリンクをご覧ください。 blog 役職。
ペイロード配信の可能性を高めるため、攻撃者はエクスプロイトとVBAマクロの両方を使用します。パッチ適用済みのシステムでエクスプロイトが失敗すると、ドキュメントファイル内に別のコンポーネントであるVBAマクロも存在します。VBAマクロにも同様のVBSコードが存在し、マクロコードはVBSファイルを「C:\programdata\」フォルダにドロップし、VBSジョブとして実行することで、Equation Nativeエクスプロイトと同様のアクティビティを実行します。
ペイロード分析:
その ペイロード 実行時に前述の通り、異なる初期攻撃ベクトルからダウンロードされ、数秒間スリープ状態になります。このバイナリには多くのスリープコードが含まれています。パックされたファイルは4層構造で、合計2つのコンポーネントで構成されています。
ステージ1レイヤー:
1でst レイヤーが実行されると、Form() コンポーネント内に単純なコードが隠されています。このコードは、リソースディレクトリから逆順にBase64形式のデータで存在するdllファイルを抽出し、さらにそれを解決してAndroidStudio.dllという名前のdllファイルをダンプします。

AndroidStudio.dll には、渡されるバッファを解凍して復号化する役割があります。

GZip解凍メソッドは、リソースディレクトリから渡されたバッファを解凍するために使用されます。このDLLは、その後のアクティビティを担う別のPEファイルをダンプするために使用されます。
ステージ 2 レイヤー: Lazarus.exe
Lazarus.exe がダンプされます。これは高度に難読化された .NET ファイルで、親ファイルから解凍されたものです。このファイルは de4dot ツールを使用して正常にデコードされました。実行中、Lazarus.exe は数秒間スリープ状態になり、「%appdata%」に自身のコピーが存在するかどうかを確認します。存在しない場合は、「%appdata%」に自身のコピーをドロップします。その後、システム内に永続的に存在し続けるために、タスクスケジューラにエントリを作成します。そのために、タスクスケジューラ作成の入力となる.XML 構成ファイルを「%temp%」に作成し、ドロップします。XML ファイルのメタデータはハードコードされ、PE リソースに保存されます。すべてのデータは実行時に置き換えられます。

名前は文字列「Update\」で始まり、その後に%appdata% の場所にドロップされたファイル名が続きます。
タスク スケジューラにエントリを追加するには、次のコマンドを実行します。
“C:\Windows\System32\schtasks.exe” /Create /TN “Updates\ ” /XML “C:\Users\ \AppData\Local\Temp\tmp .tmp”
さて、最後のペイロードであるMassloggerBin.exeに移りましょう。このマルウェアは、プロセスホロウイング(自己ホロウイング)技術を用いて、自身のプロセスにコードを挿入します。以下の画像は、自己ホロウイング技術を用いて更なる活動を行う様子を示しています。

新しいプロセスの書き込みと作成に成功すると、親プロセスは終了し、コードが注入されたプロセスは孤立プロセスとして実行されます。このプロセスのコードも高度に難読化されており、すべての関数名とクラス名はランダムまたは難読化された文字列に変更されます。
ステージ 3 レイヤー: MassLoggerBin.exe
まず、リソースから「Ionic.Zip.Reduced.dll」という名前のdllファイルを抽出します。Ionic.Zip.Reduced.dllは、DotNetZipの無料の高速クラスライブラリで、zipファイルの操作に使用されます。攻撃者がMassloggerで使用したコードは、こちらで入手可能です。 ウェブサイトこの dll を使用する主な目的は、スナップショット、キーロガー、ユーザー情報などのファイルの圧縮パッケージを含む zip ファイルを作成することです。
MassLogger は内部構成ベースの機能を使用して必要なものを取得し、それを特定の変数に割り当てます。
以下は、内部構成図に保存されているデータを取得する変数です。特定のオフセットに移動することが最初のパラメータであり、データが取得される構成配列が2番目のパラメータです。


システム名、Windowsのバージョン、CPU、GPU、インストールされているAV、URL「hxxp[:]//api[.]ipify[.]org」から取得するパブリックIPなどのシステム情報の収集を開始し、実行中のプロセス情報も取得します。

MassLogger は、実行中のプロセス ウィンドウの名前もログ ファイルに保存します。
MassLogger の機能:
1. アプリケーションデータ窃盗犯:
以下は、ユーザー データを盗み、さらに C2 サーバーに送信するアプリケーションの一覧です。
![]()
このバイナリに保存されているハードコードされたパスからデータをチェックすることで、特定のデータとこれらのアプリケーションのインストールをチェックし、詳細が見つからない場合は、次の形式でエントリを作成します。
<|| アプリケーション名 ||>
インストールされていません
MassLoggerバイナリには以下のモジュールが含まれています。以下にそのリストを示します。
2. Windows Defenderの除外
「WD Exclusion」というWindows Defenderの除外モジュールがあります。コマンド「Add-MpPreference –ExclusionPath「」と入力すると、Windows Defender ウイルス対策から除外されます。
3. USBの普及
もう一つのモジュールであるUSB Spreadは、オープンソースのコードを使用しています。 ライムUSB GitHubで入手可能です。USBドライブに保存されているファイルに感染するために使用されます。USBドライブ上のファイルが実行されると、感染したコードに加えて、自身のコードも実行されます。

4. キーロガーとクリップボード
キー ログ キャプチャ モジュールがあり、「SetWindowHookEx」API を使用してすべてのキーボード キーをキャプチャし、ログに記録します。

5. アンチVM
また、WMIを使用してVideo_Controllerアダプタをチェックすることで、アンチVM技術も備えています。Win32_VideoControllerから*を選択” はグラフィックカードに関連する情報を取得します。プロセスがVirtual Box上で実行されている場合は、「Virtual Box Graphics Adapter」を返します。

6. 検索してアップロード
設定ファイルに従って、「SearchAndUpload.zip」アーカイブに保存されている C2 サーバーに送信するファイルを検索します。
すべてのデータは設定ファイルに保存および取得されます。以下はMassLoggerの設定ファイルの概要です。

すべてのデータ収集が完了すると、Massloggerプロセスの開始時刻と終了時刻、その他の収集された詳細など、すべてのデータを含むログファイルが作成されます。その後、ZIP形式で圧縮され、「C:\Users\」に保存されます。 「\AppData\Local」に保存されます。
以下は MassLogger ログ ファイルを示す画像です。

まとめ:
Massloggerは、高度に設定可能なモジュール型のキーロガー兼スパイウェアです。Massloggerの作者は、他のキーロガーよりも高度な機能を搭載しようと試みており、これらの機能により、この高度なマルウェアの検出は困難になっています。
IoC:
4A199C1BA7226165799095C2C2A90017 (XLSM)
D1FFF0C0782D08ED17387297369797E0 (XLSM)
31B65A54940B164D502754B09E3E9B63 (PE)
37958546CB6DC41F505FDCB3430CEE3B (PE)
主題の専門家:
アニルッダ・ドラス
パワン・チャウダリ



