ハッカーがBRUSHWORMとBRUSHLOGGER攻撃で南アジアの金融企業を標的

南アジアのある金融機関が、モジュール式バックドア「BRUSHWORM」とDLLサイドロード型キーロガー「BRUSHLOGGER」を組み合わせたカスタムマルウェアツールキットによる攻撃を受けました。

攻撃者は、最初にpaint.exeという名前のバックドアと、libcurl.dllに偽装したキーロガーに依存していました。どちらも高度なパッキングや難読化を欠いていました。

BRUSHWORMは主要なインプラントとして機能し、インストール、永続性、コマンド&アンドコントロール(C2)、モジュラーペイロード読み込み、USBワーム動作、および業務上重要な形式にわたる大量ファイル盗難を処理します。

BRUSHLOGGERはこれを補完し、ウィンドウごとのコンテキストで全システムのキーストロークを記録し、侵害されたホストでのユーザーアクティビティに関する詳細な洞察を攻撃者に提供します。

Elastic Security Labs は調査中に侵入を観察しました。その際、被害者環境はSIEMレベルのテレメトリのみを公開し、悪用後のアクティビティへの可視性を制限していました。

調査官はまた、V1.exe、V2.exe、V4.exeなどのファイル名を持つ複数の初期テストビルドをVirusTotalで特定しました。それらの一部は無料のダイナミックDNSサービスを使用するように構成されていました。

これらの反復とコーディングミス、および未使用の暗号化構成スキーマは、経験不足の開発者が時間をかけてツールセットを実験・改善していることを示唆しています。

BRUSHWORMバックドアの動作

実行時に、BRUSHWORMは一連の基本的な反分析チェックを実行します。これには最小画面解像度の確認、「sandbox」を含むユーザー名またはホスト名の検索、一般的な仮想化プラットフォームのCPUID ハイパーバイザーベンダー文字列のクエリが含まれます。

画面解像度チェック、ディスプレイ解像度が1024×768ピクセルより小さい場合、実行は直ちに終了します。これは一般的なサンドボックス検出技術です。

ハイパーバイザーが検出された場合に中止するのではなく、マルウェアは短く一時停止してから続行し、5分間のウィンドウでマウス移動を監視することで人間のアクティビティをさらに検証します。

インプラントは、その後メインバイナリ用のC:\ProgramData\Photoes\Pics\、ダウンロードされたモジュール用のC:\Users\Public\Libraries\、流出データのステージング用のC:\Users\Public\Systeminfo\など、一連のハードコード化された隠しディレクトリを作成します。コンポーネント全体で「Photoes」というスペルミスを一貫して使用しています。

構成データはJSONとして保存され、ハードコード化されたキーとフィールドごとのIVを各ブロブの先頭に付けてAES-CBCで暗号化されます。

復号化されると、構造はinternetCheckDomain、downloadDomain、retryCountなどのフィールドを定義しますが、これらはアクティブなコードパスでは使用されず、実際のC2エンドポイントは攻撃者が制御するホスト上の/updtdllパスを参照する平文のグローバル文字列として別に保存されます。

永続性はMSGraphicsという名前のCOMベースのスケジュール済みタスクを通じて実装され、これはユーザーログオン時にバックドアを実行します。2番目のタスク「MSRecorder」はrundll32.exeを使用してLibrariesディレクトリからダウンロードされたRecorder.dllペイロードを実行します。

取得されたモジュールは復旧されませんでしたが、その命名と実行モデルはプラグインアーキテクチャを示唆しており、おそらくスクリーンキャプチャまたは追加のデータ盗難などの機能が含まれています。

BRUSHWORMのUSBワームと収集ロジックは、金融環境では特に危険です。

インターネット接続が利用可能な場合、バックドアは「給与明細.exe」や「プレゼンテーション.exe」などのルアーファイル名を使用してリムーバブルドライブに同時に感染し、ドキュメント、スプレッドシート、プレゼンテーション、メールアーカイブ、ソースコードをカバーする広い範囲の拡張子を持つファイルを収集し、Systeminfoの下でステージングしながら、NuGetサブディレクトリでSHA-256ハッシュを追跡して重複した流出を防止します。

BRUSHLOGGERキーロガー

BRUSHLOGGERは32ビットDLLで、libcurl.dll名でのDLLサイドロード用に構築されています。curl_easy_*エクスポートの小さなセットを無反応なスタブとして公開しながら、プロセスアタッチ時のDllMainから悪意のあるロジックを実行します。

起動時に、Windows Update KBリファレンスに似たミューテックス識別子をデコードして単一の実行中インスタンスを強制し、次にユーザー名とそのMD5ハッシュを使用してC:\ProgramData\Photoes\の下でユーザーごとのログファイル名を導出します。

キーロガーはSetWindowsHookExAを使用してグローバルロウレベルのキーボードフック(WH_KEYBOARD_LL)をインストールし、標準のWindowsメッセージループを維持してシステム全体でフックをアクティブに保ちます。

キャプチャされた各キーストロークに対して、BRUSHLOGGERはアクティブなウィンドウハンドルを記録し、ウィンドウタイトルを取得し、キーイベントのシーケンスをタイムスタンプとウィンドウ名でタグ付けしてユーザーアクションの周囲のコンテキストを保持します。

キーは2桁の16進仮想キーコードとしてログされ、バッファリングされて定期的にフラッシュされます。

ディスクに書き込む前に、バッファは静的な0x43キーでバイト単位でXOR暗号化され、.trnログファイルに追加されます。これは本当の暗号化保護ではなく、表面的な難読化のみを提供します。

Elastic Security Labs は中程度の信頼度で、開発者がこれらのツールの反復を続けており、完全に検証せずにAIで生成されたコードを組み込んだ可能性があり、チームは関連するC2インフラストラクチャの監視を続けています。

洗練されていない実装と明らかなコーディングエラーにもかかわらず、BRUSHWORMとBRUSHLOGGERは一緒に、経済的に焦点を当てたスパイ活動またはデータ盗難作業のための有能な収集プラットフォームを提供します。

ツールセットは、スケジュール済みタスク永続性、モジュラーDLL読み込み、積極的なドキュメントとソースコード盗難、USBベースの伝播、および正当なライブラリ名でのDLLサイドロード経由のステルスキーストロークキャプチャを組み合わせています。

翻訳元: https://gbhackers.com/brushworm-and-brushlogger/

ソース: gbhackers.com