タイポスクワッティングウェブサイトからのトロイの木馬化されたSlackダウンロードにより、攻撃者がほとんどのユーザーが見つけようとしないようなもの、つまり自分のマシン上で実行されている隠されたデスクトップを得ることができています。
インストーラーは正当に見え、さらにはSlackの機能するコピーを起動します。しかし、バックグラウンドでは、画面に何も表示されることなく、攻撃者がブラウズしたり、アカウントにアクセスしたり、あなたのシステムと相互作用できる無視できないセッションを作成できます。明確にするために、このキャンペーンはSlack企業とは何の関係もなく、私たちは彼らに私たちが見つけたことを知らせています。
Slackは150以上の国で200,000以上の有料組織を超えて数千万の日次アクティブユーザーを持ち、フォーチュン100の77社を含みます。したがって、トロイの木馬化されたインストーラーは、それを実行する個人への脅威だけでなく、企業ネットワーク、SSO連携アカウント、および社内通信への脅威でもあります。
誰もがロゴを信頼している

Slackはユーザーが躊躇なくインストールするアプリの一つです。Chromeやズームと並んで、新しい仕事の初日にワーカーがダウンロードする膨大なソフトウェアの中に位置しており、多くの場合、ブックマークされたリンクではなく、Googleの簡単検索から行われます。これはそれがそのような説得力のある餌になる理由です。ブランドはすぐに認識でき、インストーラーは何百万人もの人々が以前に実行したものであり、それをセットアップするのを見ることの全体的な経験は完全に普通に感じます。
このキャンペーンの背後にある攻撃者はドメインslacks[.]pro(余分な「s」と.comの代わりに.proトップレベルドメインに注意)を登録しました。サイトのソースコードには、ページのすべてのクリックをインターセプトし、別のドメイン、debtclean-ua[.]sbsでホストされているダウンロードにブラウザをリダイレクトするJavaScriptクリックハンドラーが含まれています。除外されるクリックはCookie同意ボタンだけです。その他はすべてダウンロードをトリガーします。これはブラウザを無言で悪用する真のドライブバイではありませんが、それに十分に近いです:気が散ったユーザーからのたった1クリックが必要です。
被害者のデスクトップに到着するのはslack-4-49-81.exeという名前のファイルで、Slackの実際のバージョン番号と十分に類似した名前で、ほとんどの人は躊躇しません。

これは不明な戦術ではありません。2024年8月、Slackの検索を悪意あるダウンロードページにリダイレクトするために詐欺的なGoogle Adsを使用した、ほぼ同じキャンペーンを文書化しました。これらの攻撃は、盗む機能を持つリモートアクセストロイの木馬であるSecTopRATを配信しました。
これらのキャンペーンが何度も戻ってくるのは、この式が機能するからです:攻撃者は信頼できるブランドを取り、説得力のあるドメインを登録し、ほとんどの人が仕事のセットアップをしようとしているときにURLを詳しく調べないという事実に頼ります。
ここがこの特定のサンプルを賢くしている点です:Slackをインストールするふりをするだけではありません。バックグラウンドで悪意あるローダーを同時に実行しながら、アプリケーションの機能するコピーを実際にインストールします。被害者は正当なスプラッシュスクリーンを見て、Slackがタスクバーに表示されるのを見て、何か悪くなったと疑う理由がありません。
本来ないはずのものを拾い上げた?
無料のMalwarebytesスキャンを実行して確認してください。
起動されてから数秒以内に、slack-4-49-81.exeはユーザーの%TEMP%フォルダに2つの一時ファイルを書き込みます。最初のslack.tmpは囮です:自己抽出Squirrelインストーラーパッケージです。Squirrelは本物のSlack、Discord、Microsoft Teamsを含む数十のElectronアプリに組み込まれた正当なオープンソース更新フレームワークです。ドロッパーはSquirrelの正規コピーUpdate.exeを、slack-4.49.81-full.nupkgという名前のNuGetパッケージ、ブランド入りのスプラッシュイメージ(background.gif)、およびリリースマニフェストと一緒にバンドルしています。slack.tmpが実行されると、すべてのこれを%LOCALAPPDATA%\SquirrelTempに解凍し、標準の–installフラグでUpdate.exeを起動します。その時点から、Slackインストールは、ユーザーがslack.comからアプリをダウンロードした場合と同じように進行します。Slackが開き、見た目が良く、機能します。
2番目のファイルsvc.tmpは数秒後に到着します。これはローダーです:150MBインストーラー内に埋め込まれた約519KBの実行可能ファイルで、囮の隣の%TEMPに抽出されました。これは署名されておらず、その移植可能実行可能ファイル(PE)メタデータで、Microsoft Corporationによって提供されるWindows Component Update Serviceとして自身を識別し、隣にインストールされているSquirrelフレームワークまたはSlackアプリケーションと関係がありません。ほぼ即座にtemp フォルダにloader_log.txtという小さいファイルを作成し、ローダーステージが開始されたことを確認し、TCPポート8081でコマンドアンドコントロール(C2)サーバー94.232.46.16に接続しようとします。
一方、Squirrelインストールが完了し、リスタート後も存続するレジストリRunキーを書き込みます:HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Runの下のvalue nameはcom.squirrel.slack.slackです。これは正当なSlackインストールが作成する正確なキー名とパスです。ITの管理者が自動開始エントリをスクロールしていると、通常のSlackインストールのように見える何かを見て、移動し続けるでしょう。
ローダー内部:静的分析が明らかにするもの
C2チャネルを持ったらローダーが何をするように設計されているかを理解するために、バイナリを直接調査しました。そのPEバージョン情報はWindows Component Update Service(内部名WinSvcUpd.exe)、Microsoft Corporationによって発行、バージョン1.4.2.0であることを主張しています。これのいずれも真ではありません。これはプロセスリストまたはタスクマネージャーで見過ごされるように設計された虚偽のフラグです。
バイナリはMSVCでコンパイルされた64ビットWindowsの実行可能ファイルです。その7つのPEセクションは、通常のコンパイラによって生成される標準的な.textと.rdataではなく、.7ssik、.d1npl、.m6zefのようなランダム化された名前を持っています。これは、カスタムビルダーまたは暗号化ツールの使用と一致しています。そのインポートテーブルは意図的に最小限です:KERNEL32.dllからの90個の関数と他に何もありません。ネットワーキング、レジストリアクセス、またはプロセス操作の静的インポートはありません。代わりに、GetProcAddressとLoadLibraryExWを使用してランタイムでそれらのAPIを解決します。これはインポートテーブル分析からバイナリの実際の機能を隠す標準的な手法です。

このサンプルをローダーとして珍しくするのは、内部的にどれだけ饒舌であるかです。バイナリは、その全体的なアーキテクチャを説明し、ラベル付きされたサブシステムに整理されたデバッグ文字列で満たされています。これらの文字列は被害者に見られることは決してありませんでした。これらはビルドに残されている開発者の診断であり、このツールが何をするように設計されたかを正確に示しています。
[P1]で始まる文字列は最初のフェーズについて説明します:ローダーはそのC2からペイロードをダウンロードします([P1] Downloading payload…)。ダウンロード自体はWinHTTPを使用し、ランタイムで解決されます。デバッグ文字列[HTTP] Connect、[HTTP] Send、[HTTP] Recvは完全なリクエストサイクルをトレースしますが、[HTTP] winhttp unavailableはライブラリを読み込めない場合のフォールバックパスを明らかにします。Windowsファイルマッピング API([P1] Payload in shared memory)を介して共有メモリにペイロードを保存し、フェーズ2として自身の2番目のコピーを起動します([P1] Phase-2 launched)。フェーズ2は共有メモリからペイロードを読み取り([P2] Payload copied from shared memory)、それを復号化します。文字列[CRYPT] Decrypting…と[CRYPT] MZ OKはペイロードが暗号化されて到着し、復号化後にWindows実行可能ファイルとして検証されることを確認します。復号化されたDLLはwmiprvse_*.tmpパターンに一致するファイル名の下でディスクに書き込まれ、合法的なWindows WMI Provider Hostによって作成された一時ファイルに混ざるように設計されています。
その後、ローダーは復号化されたDLLから特定のエクスポート関数HvncRunを呼び出すように設計されています。文字列[LOAD] Calling HvncRun…と— HvncClient log —はペイロードをHVNCクライアント、隠されたVirtualネットワークコンピューティングツールとして識別します。HVNCは従来のリモートアクセストロイの木馬とは重要な方法で異なります:被害者のマシン上に完全に別の、見えないデスクトップセッションを作成します。攻撃者はブラウザを開き、銀行ポータルにアクセスし、ユーザーの可視画面に何も表示されることなく認証されたセッションと相互作用できます。これは主に金融詐欺活動に関連するツールです。
HVNC ペイロードを秘密裏に実行するために、ローダーはセクションベースのインジェクションとして知られている技術を使用してDLLをexplorer.exeに注入する能力を備えています。文字列[INJ] === Section-based injection into explorer.exe ===と[INJ] Remote thread created in explorer.exe!はローダーがNtCreateSectionを介して共有メモリセクションを作成し、それを独自のプロセスとWindowsシェルの両方にマップし、シェルコードとDLLパスを共有領域に書き込み、NtCreateThreadExを介してリモートスレッドを開始するシーケンスについて説明しています。これは古典的なWriteProcessMemoryアプローチよりもプロセスインジェクションのより検出困難なバリアントです。ターゲットのメモリ空間に直接書き込むことを避けるためです。NT APIが利用できない場合、ローダーはDLLをディスクに書き込んで直接読み込むことにフォールバックします([INJ] Required NT APIs not available, falling back to DropAndLoad)。

バイナリは積極的な反分析防御を含みます。文字列[AA] Debugger/sandbox detectedはそれが観察をチェックし、それに応じてその動作を変更することを示しています。そうするためのツールを持っています:IsDebuggerPresentとGetTickCountはインポートテーブルに表示されます。これらは通常デバッガー検出とタイミングベースのサンドボックス回避に使用されますが、両方ともMSVCコンパイルバイナリの標準的なCRTインポートでもあります。デバッグ文字列はこれらのAPIが意図的に使用されることを示すより強力な信号です。
これを実行した誰かにとって何を意味するか
最近slack.com以外の場所からSlackをダウンロードした場合、特に.proで終わるドメインから、またはページの任意の場所をクリックしたときに自動的にファイルをダウンロードしたサイトからダウンロードした場合は、真摯に受け止めてください。
ローダーはSlackウィンドウが読み込み完了する前にそのC2サーバーに到達しようとします。その接続を使用するように設計されています(確立された場合)HVNCペイロードをダウンロードして復号化し、Windowsシェル内から動作するようにexplorer.exeに注入します。Squirrelインストールは正当なSlackインストールが行うのと同じRunキーを書き込むため、自動開始エントリはクリーンなマシンと区別できません。一方、ローダーは一度だけ成功する必要があります:初期実行中にHVNCペイロードをダウンロードしてexplorer.exeに注入した場合、攻撃者は次の再起動まで続く足がかりを持ちます。ペイロードの追加的な永続性が存在するかどうかは、C2オペレーターの次の動きに依存します。
安全に保つ方法
このキャンペーンは、普通に見えるようにどのくらいのエンジニアリング努力が行われるかのケーススタディです。1つのコードパスは正当なフレームワークを通じて実際のソフトウェアをインストールします。もう一つは、Microsoftサービスとして自身を識別するバイナリにすべてパックされた、動的API解決、暗号化されたペイロード配信、Windowsシェルへのプロセスインジェクション、および反分析防御を持つマルチフェーズローダーを実行します。囮は何が起こっているかを隠し、ローダーは攻撃者に足がかりを与えます。
あなたが使用するソフトウェアの実際のダウンロードページをブックマークしてください。もしあなた自身がGoogleで「Slackダウンロード」と検索し、正しく見える最初の結果をクリックしているのであれば、あなたはこのキャンペーンが捕捉するために構築された正確な人です。
- 公式サイトからのみSlackをダウンロードしてください。slack.comに直接アクセスするか、信頼できるブックマークを使用してください。広告または不慣れなリンクをクリックしないでください。
- URLを注意深く確認してください。余分な文字や不慣れなドメイン(たとえば、「.com」の代わりに「.pro」)のような微妙な変更を探してください。
- クリック時にダウンロードをトリガーするサイトを警戒してください。ページがクリックされたときにファイルをダウンロードしている場合は、それを閉じてください。
- 実行する前にインストーラーを確認してください。ファイルを右クリックし、そのプロパティを確認し、有効なデジタル署名を探してください。
- リアルタイムセキュリティ保護を使用してください。セキュリティツールは既知の悪意のあるドメインをブロックし、インストール中に疑わしい動作をキャッチできます。
- ソフトウェアをインストール後の不常な動作を監視してください。予期しないネットワーク活動、遅速、または不明なプロセスは調査する価値があります。
- 何か変に感じたら、素早く行動してください。インターネットから切断し、完全スキャンを実行し、クリーンデバイスからパスワードを変更してください。特にメール、銀行、および仕事のアカウントについては。
影響を受けている可能性がある場合の対応
- ネットワークから直ちに切断して、あらゆるアクティブなC2セッションを切断します。
- Malwarebytesで完全スキャンを実行してください。
- このマシンからアクセスしたアカウントのすべてのパスワードを変更してください。異なるクリーンデバイスからこれを行ってください。メール、銀行、およびSSOアカウントを優先してください。
- これが仕事用マシンの場合、すぐにIT部門またはセキュリティチームに通知してください。
侵害の指標(IOCs)
ファイルハッシュ(SHA-256)
cfd2e466ea5ac50f9d9267f3535a68a23e4ff62e3fe3e20a30ec52024553c564 (slack-4-49-81.exe)
08fd0a82cdeb0a963b7416cf57446564dfed5de5c6f66dee94b36d28bfefec9d (svc.tmp)
配布
slacks[.]pro
debtclean-ua[.]sbs
ネットワークインジケーター
94.232.46.16:8081
