ハッカーが正規のNode.jsランタイムを悪用、企業攻撃で永続的なバックドアを隠蔽

攻撃者は従業員をだまし、画面共有中にリモート操作要求を承認させたり、Quick Assistを開かせてアクセスコードを提供させたりします。侵入に成功すると、正規のリモート管理・サポートツールを使ってデバイスを制御します。

その後、PowerShellを実行してクラウドストレージから悪意のあるMSIパッケージをダウンロードし、Windows Installerでサイレントインストールします。これはTeamsソフトウェアの欠陥ではなく、ソーシャルエンジニアリングによるものです。

攻撃者は、ユーザーが目に見える外部連絡先警告を無視し、見慣れたサポートの手順を信頼することに付け込んでいます。

このMSIは、ユーザーのLocalAppDataフォルダ配下に、ポータブル版のNode.jsランタイムと暗号化されたJavaScriptインプラントを展開します。

Node.jsが存在しない場合、ローダーは公式のNode.js配布元から正規のランタイムをダウンロードします。PowerShell、cmd.exe、WScriptのいずれかを介して起動される隠しブートストラップコードが、インプラントを復号してnode.exeで実行します。

署名済みランタイムを使用し、場合によってはリネームすることで、この活動は通常の業務に紛れ込みやすくなります。マルウェアはまた、無害に見える名前や非標準の拡張子、サイレントインストールも利用します。

これにより、攻撃者は未知の実行ファイルや明らかなスクリプトファイルのみに焦点を当てた簡易な検知を回避できます。すべてのコンポーネントは、利便性のためユーザー書き込み可能な場所に置かれたままになります。

再起動後も生き残るため、確認されたインストーラーは現在のユーザーのRunキーまたはスタートアップフォルダにEdgeUpdateというエントリを作成します。サインイン時にこのエントリがWScriptまたはNode.jsを起動し、隠されたJavaScriptバックドアを再読み込みします。

このインプラントは、ランダム化されたHTTPSロングポーリングリクエストを通じてコマンド&コントロール(C2)サーバーを呼び出します。応答はJavaScriptタスクとして処理され、外部の攻撃者はファイルシステム、プロセス、環境変数、Node.jsモジュールにアクセスできるようになります。

Microsoftは、システム情報、ディスクの詳細、アンチウイルス製品、ディスプレイアダプター、仮想化の痕跡を収集するコマンドを確認しました。

攻撃者はまた、一定間隔でスクリーンショットを取得し、リサイズしてエンコードした上で外部に送信していました。休眠状態のコードがEthereumコントラクトに問い合わせる仕組みも存在します。

このコントラクトは代替のC2 URLを提供できる可能性がありますが、Microsoftによれば、回収された実装ではハードコードされたフォールバックサーバーが使用されていたとのことです。アクセスを確認した後、攻撃者はActive Directoryへと侵入範囲を拡大します。

ネイティブコマンドとADSIクエリを使ってドメインアカウント、ユーザー、サーバー、そして特権ロールや運用上のコンテキストを明らかにしうる説明フィールドを列挙します。

このバックドアは、信頼されたWindowsバイナリであるrundll32.exeを通じて、追加のDLLペイロードを起動することも可能です。特に懸念されるのは、攻撃者がTCPポート5985経由のWinRMを使ってドメイン参加済みのシステムにアクセスしている点です。

標的にはファイルサーバー、データベースサーバー、アプリケーションサーバー、ドメインコントローラー、認証局が含まれていました。

この認証情報を悪用した水平展開は、データ窃取や恐喝、ランサムウェアにつながりかねない「ハンズオンキーボード」型の攻撃を示唆していると、Microsoftは述べています

注: IPアドレスおよびドメインは、誤って名前解決やハイパーリンク化されるのを防ぐため、意図的に無効化([.]など)してあります。再有効化は、MISP、VirusTotal、SIEMなどの管理された脅威インテリジェンス基盤内でのみ行ってください。

ANY.RUNのブラウザ内データ検査で、検知・調査・対応をより迅速に-> ANY.RUNでSOCを強化

翻訳元: https://cyberpress.org/node-js-runtime-backdoor-abuse/

本記事は cyberpress.org の記事を翻訳・要約したものです。