BlankGrabberの操作者たちは、Windows証明書ツールを悪用して、Rust製のステージャーを正当な暗号化データに見せかけて隠蔽する、隠密なローダーチェーンを実験中である。
このアプローチにより、盗聴ツールはエンタープライズ環境に溶け込みながら、リモートアクセス、データ盗難、および長期的な永続性のために複数のペイロードをデプロイすることができる。
certutil.exeを使用してインストールしており、証明書のインポート活動を装いながら、実際にはコンパイルされたRust実行ファイルを書き込んでいる。
静的検査により、「証明書」データはX.509ではなく、certtilが問題なく処理する不透明なバイナリであることが示されており、表面的なコンテンツチェックの回避を助ける。
Rustステージャーはその後実行され、ダウンストリームペイロードの復号化と起動を担当し、初期スクリプトと最終的な盗聴ツールコンポーネント間に追加の分離層を追加する。
Splunk脅威研究チーム(STRT)は、GofileでホストされているBlankGrabberローダーを分析し、バッチスクリプトとして到着する。実行時に、スクリプトは埋め込まれたブロブをデコードする。
サンドボックスと自動化されたパイプラインを困らせるため、ステージャーは何かを復号化する前に環境チェックを実行する。
仮想化に関連するシステムドライバを検査し、現在のユーザー名とコンピュータ名を「Triage」、「Sandbox」、「Malware」、「User」、「Admin Test」、「Virus」、「Zenbox」などのハードコードされたリストと比較して、既知の分析環境を回避する。
これらのチェックがパスした場合にのみ、次のステージを復号化し、自己解凍型RAR(SFX)アーカイブを%TEMP%ディレクトリにドロップします。一般的なWindowsおよびゲームプロセスに混ざるために、複数の無害に見えるファイル名(例えば、OneDriveUpdateHelper.exe、RuntimeBroker.exe、svchost_update.exe、GoogleUpdateSetup.exe、MicrosoftEdgeUpdate.exe、SteamService.exe、またはNvidiaContainer.exe)の1つを採用する。
SFXアーカイブは複数のペイロードを含んでおり、特にXWormリモートアクセスクライアント(host.exe)とPyInstaller製のBlankGrabber盗聴ツール(Knock.exe)があり、操作者は同じホスト上で完全なリモートコントロールと認証情報およびデータ盗難を組み合わせることができる。
PyInstallerビルド内で、STRTは「blank.aes」という名前の高エントロピーファイルを読み取るPythonバイトコードモジュールを特定し、コア悪意のあるロジックの暗号化コンテナとして機能する。
コードは最初、ハードコードされたキーとIV値を使用してAES-GCMを使用しているように見えるが、標準ライブラリを使用した復号化の試みは失敗し、BlankGrabberが非標準のIV処理を使用したカスタマイズされたAES-CTRルーチンを採用していることを研究者が発見した。
このルーチンを再実装することで、STRTは次のステージを含むZIPアーカイブを復号化し、「stub-o.pyc」という別のバイトコードファイルが埋め込まれている。
このスタブを逆コンパイルすると、zlibバイト配列を解凍し、Base64、ROT13、文字列反転などの複数のエンコーディングレイヤーを適用して、最終的なBlankGrabberペイロードを再構築する、大きく難読化されたPythonローダーが明らかになった。
このマルチステージ難読化パイプラインはPyInstallerラッピング、暗号化ブロブ、カスタマイズされたAES、zlibコンプレッション、チェーン化されたエンコーディングを使用して、静的署名を倒し、ディフェンダーを完全な行動またはメモリフォレンジック分析に強制することを目的としている。
完全に展開されると、BlankGrabberは複数のMITRE ATT&CK技術と整合した広範な機能セットを露出させる。
クリップボードコンテンツをダンプし、PowerShell経由で呼び出されるインラインの.NETコードでスクリーンショットをキャプチャし、Wi-Fiプロファイルを列挙してクリアテキストのWLANキーを回復し、Telegram、Discord、Steam、Epic Games、Robloxなどのプラットフォームに関連するファイルと認証情報を収穫することもできる。
防御回避のため、マルウェアはWindowsホストファイルを変更してハードコードされたセキュリティドメインのリストを0.0.0.0にリダイレクトし、PowerShell経由でWindows Defenderの機能を無効にし(リアルタイム保護と署名を含む)、その作業ディレクトリをDefenderの除外リストに追加する。
「ms-settings」パスの下でレジストリベースのUACバイパスを試行し、Startupフォルダを永続性のために利用し、アーティファクトを減らすために独自の実行可能ファイルを削除し、バンドルされたrar.exeを使用して盗まれたデータをパスワードで保護されたアーカイブ(「Blank123」)に圧縮してから流出させる。
C2通信はエンコードされたTelegramボット設定と公開ウェブサービスおよびファイル共有プラットフォームへのアップロードに依存していますが、IP検索サービスip-api[.]comは被害者を分類し、クラウドインスタンスを一般的なホストから区別するために使用される。
これらの動作を実装するために、STRTは複数のSplunk検出を提供し、製品キーレジストリクエリ、api.telegram.orgへのDNSルックアップ、ip-api[.]comなどのIPチェックサービスへのアウトバウンドクエリの分析を含む。
標準インストールパス外でのWinRAR/rar.exeの実行、疑わしいホストファイルアクセス、WMI偵察パターン、およびgofile.ioおよびcdn.discordapp.comなどの乱用されたウェブサービスドメインをターゲットにするDNS活動。
これらの検出は、基盤となるPythonおよびRustコードが大きく難読化されている場合でも、ディフェンダーが偽の証明書ローダーチェーン、ステージング動作、およびダウンストリーム流出チャネルを検出するのに役立つ。
このトレードクラフトを考えると、組織はcertutilの使用、%TEMP%での異常なSFX抽出、PowerShell経由のDefender設定の変更、TelegramおよびIPチェックAPIへのDNSトラフィックの周りのテレメトリを優先順位付けて、BlankGrabberおよび同様の盗聴ツールファミリーを感染ライフサイクルの早期に検出する必要があります。
翻訳元: https://cyberpress.org/blankgrabber-malware/