NPM サプライチェーン攻撃がundicy-httpを使用してRATを展開

偽のHTTPクライアントパッケージを悪用して、強力なRATとステルスブラウザスティーラーの両方を配信する非常に高度なnpmサプライチェーン攻撃。

悪意のあるパッケージである[email protected]は、Node.jsプロジェクトで広く使用されている公式HTTPクライアントのundicīを装ってnpmにアップロードされました。

似た名前にもかかわらず、HTTPクライアントロジックは含まれていません。代わりに、そのbinエントリは難読化されたindex.jsペイロードを直接指しています。

パッケージメタデータとコードは、著者「ConsoleLofy」、ハードコードされた「Lofygang」文字列、ポルトガル語のステータスメッセージを含む、LofyGang脅威グループと強く関連しています。

実行されると、スクリプトはまず一時的なVBScriptラッパーと_NYX_HIDDEN環境変数を使用して、見えるコンソールウィンドウを避けるために隠れたコンテキストで自身を再起動します。

JFrog Security研究チームは、人気のあるundici HTTPクライアントライブラリを装った悪意のあるnpmパッケージを特定しました undicy-http (バージョン2.0.0)。

そこから、ws://24[.]152[.]36[.]243:3000のWebSocket C2サーバーに接続し、「ScreenLiveClient」として登録し、リモートオペレーター向けの豊富なRATインターフェースを公開します。

NPMサプライチェーン攻撃

Node.js RATはWebSocketコマンドを通じて感染したホストの完全な対話的制御を提供します。

パッケージはタイポスクワッティング戦略を使用して、Node.jsにバンドルされた公式HTTP/1.1およびHTTP/2クライアントであるundiciを装います。

Image

サポートされているアクションには、リモートシェル実行、ファイルアップロード、マルチモニタースクリーンキャプチャとストリーミング、マイク録音、Webカメラ列挙/ストリーミング、被害者のスピーカーで任意のオーディオを再生することが含まれます。

スクリーンキャプチャはscreenshot-desktopを介して実装され、RATチャネルを介してストリーミングする前にPowerShellのSystem.Drawing APIを使用してサイズ変更されます。

永続性は複数の層で実装され、再起動と権限エラーに対応します。マルウェアはまず「ScreenLiveClient」という名前の高権限スケジュール済みタスクを作成しようとし、次にHKCU Runキーにフォールバックし、他のステップが失敗した場合はWindowsスタートアップフォルダにコピーされます。

サイレントに実行している間にユーザーを安心させるために、マルウェアはVBScriptを介して偽のDLL欠落エラーダイアログを表示し、RATが既にアクティブであっても、プログラムの起動に失敗したことを示唆する場合があります。

以前のLofyGangツールからの最大のエスカレーションは、ネイティブ第2段階のchromelevator.exeであり、amoboobs[.]comからCloudflareインフラストラクチャの背後でダウンロードされます。

Node.jsレイヤーは、可能な場合はこのバイナリをWindows Defender除外パスに配置するか、フォールバックとして%TEMP%\WinSvcHostに配置してから、UACとログをバイパスするためのいくつかの戦略を使用して実行します。

JFrogの分析は、chromelevator.exeが64ビットWindows PEであり、直接syscallを介してプロセスホロウイングを実行し、ユーザーモードntdll APIを呼び出さずにメモリを割り当て、リモートスレッドをスポーンすることを示しています。

実行時にindex.jsが最初に行うことは、すでに隠れて実行されているかどうかを確認することです。そうでない場合は、自身をウィンドウレスプロセスとして再起動するVBScriptファイルを作成します。

Image

このアプローチは、標準的なWindows APIをフックするEDR製品を回避し、スティーラーがブラウザプロセスに注入され、認証情報、クッキー、クレジットカード、IBAN、およびセッショントークンを大規模に盗むことができるように設計されています。

バイナリはNextronのVALHALLAフィードのMAL_Browser_Stealer_Dec25_2 YARAルールと一致します。これはnpm、PyPI、およびGitHubを対象とする継続中のマルチエコシステムGlassWormキャンペーンサプライチェーン操作に関連付けられています。

注入されると、スティーラーは50以上のChromiumおよびGeckoベースのブラウザ、およびWindows用Safariを対象とし、保存された認証情報とSQLiteデータベースからのクッキーとローカルストレージをスクレイピングします。

同様に90以上のブラウザウォレット拡張機能と数十のデスクトップウォレットを対象とし、ExodusのようなウォレットのPBKDF2を介したオフラインパスワードクラッキングさえ試みています。

追加モジュールはRoblox、Instagram、Spotify、TikTok、Steam、Telegram、およびDiscordのセッションを乗っ取り、プラットフォームAPIからのプロフィールと請求メタデータでトークンを充実させることがあります。

流出は意図的に冗長です。より小さなデータセットとステータスメッセージは、ハードコードされたDiscord WebhookとTelegram botに直接送信されます。URLはbase64で構成され、静的検出を阻害します。

SteamまたはTelegramデータ、ウォレットバックアップなどの大規模なアーカイブは、gofile.ioやcatbox.moeなどのサードパーティファイル共有サービスにアップロードされ、結果として得られたリンクはDiscordおよびTelegram経由で返送されます。

アンチVM、アンチデバッグ、およびLofyGang

undicy-httpペイロードは、アナリストとサンドボックスに対して見えないままであることに大きく投資しています。AntiVMクラスは、MACプレフィックス、BIOS文字列、ディスク名、分析ツール、ユーザー名、レジストリキー、サービス、および既知のサンドボックスファイルパスにまたがる10の異なるチェックを実装します。

分析または難読化解除が検出された場合、自己参照コードとデバッガステートメントはツールを無限ループにロックしてしまい、リバースエンジニアリングをさらに遅くしてしまいます。

Image

LofyGangへの帰属は堅牢に見え、彼らの手口の著しい進化をマークしています。初期のキャンペーンは主にJavaScriptベースのDiscordトークンスティーラーとクレジットカードハーベスターを使用していました。undicy-httpは、syscallレベルの回避とコンプリヘンシブなマルチプラットフォームデータ盗難スタックを備えたコンパイル済みネイティブインジェクターを導入します。

JFrogはundicy-httpをすぐにアンインストールし、疑わしいnodeおよびwscript.exeプロセスを終了し、「ScreenLiveClient」スケジュール済みタスクと実行キーを削除し、ドロップされたVBScriptランチャーとchromelevator.exeを削除し、lofygang-localステージングディレクトリをワイプすることを推奨しています。

RATのライブスクリーンとオーディオストリーミング、および幅広いウォレット対象と組み合わせると、これはundicy-httpをこのアクターに公開されて関連付けられた最も有能なnpmベースのペイロードの1つにします。

悪意のあるインフラストラクチャは、24[.]152[.]36[.]243:3000のWebSocket C2とペイロードホストamoboobs[.]com(172[.]67[.]173[.]92)を中心に、流出に悪用された公式DiscordおよびTelegram APIと共にあります。

妥協の深さとネイティブインジェクターのステルスを考えると、chromelevator.exeが実行されたシステムは完全に妥協したものとして扱われるべきであり、完全な認証情報ローテーション、ウォレット移行、セッション取り消し、および可能な限り完全な再イメージングが必要です。

翻訳元: https://gbhackers.com/npm-supply-chain-attack/

ソース: gbhackers.com