実際のソフトウェアダウンロードがリモートバックドアを隠す方法
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
攻撃者は類似の RustDesk ダウンロードサイト(rustdesk.work)を運営しており、トロイの木馬化されたインストーラーを提供しています。正当な RustDesk セットアップに、 Winos4.0と呼ばれる悪意のあるローダーがバンドルされています。実行されると、ドロッパーは logger.exe and Libserver.exeを配置し、バックドアを メモリ内に ロードし、ディスク上のアーティファクトを減少させます。このインプラントは 207.56.13.76 上の TCP/5666を通じてコマンドアンドコントロールを確立し、持続的なリモートアクセスを可能にします。この活動は ソーシャルエンジニアリングとブランド偽装により推進されており、RustDesk ソフトウェアの脆弱性によるものではありません。
調査
アナリストは悪意のあるバイナリ rustdesk-1.4.4-x86_64.exe を取得し、正当な RustDesk インストーラーと共にディスクに武器化された logger.exe を書き込むことを観察しました。この logger.exe コンポーネントは Libserver.exeを生成し、次に WinosStager の DLL と大量のメモリ内ペイロードを、これらのモジュールをディスクに残さずに設定します。ネットワークテレメトリは 207.56.13.76:5666へのアウトバウンド通信を確認しました。これはキャンペーンの C2 チャンネルと評価されています。調査者は、偽装されたドメイン(rustdesk.work)、ドロップされたファイル名、および関連するファイルハッシュを含む主要な IOC を抽出しました。
緩和策
確認済みのソフトウェア取得プラクティスを施行し、RustDesk を公式のソース(rustdesk.com)からのみダウンロードしてください。未承認のバイナリの実行を防ぐためにアプリケーション許可リスト(または同等のコントロール)を適用し、特にユーザー書き込み可能なディレクトリからの「インストーラー」ファイルを防止してください。 TCP/5666へのアウトバウンドトラフィックを監視および制限し、接続に対する検出/ブロックルールを追加します。 rustdesk.workをブロックし、DNS、プロキシ、およびファイアウォールコントロール全体で悪意のあるドメインをブロックします。 207.56.13.76 レスポンス
の実行を検出するための検出を作成し、ネットワーク接続の警告があればお知らせします。
アドバイザリ: トロイの木馬化されたインストーラー(および利用可能な logger.exe and Libserver.exeSHA-256 207.56.13.76:5666のインジケータ)があるエンドポイントを積極的に探索し、RustDesk が非承認ソースからインストールされたかどうかを検証します。脅威が確認された場合、影響を受けるホストを隔離し、悪意のあるプロセスツリーを終了し、関連するアーティファクトを削除し、潜在的に露出したクレデンシャル(特にインストール中またはその後のリモートセッション中に使用されたアカウント)をローテーションします。 SHA-256 indicators) and validate whether RustDesk was installed from non-approved sources. If compromise is confirmed, isolate affected hosts, terminate the malicious process tree, remove related artifacts, and rotate potentially exposed credentials (especially any accounts used during installation or subsequent remote sessions).
アタックフロー
検出
RustDesk ログファイルが作成されました(file_event 経由)
表示
リモートアクセスソフトウェアドメインの通信試行によるコマンド&コントロール活動の可能性(dns 経由)
表示
代替リモートアクセス/管理ソフトウェア(プロセス作成 経由)
表示
検出するための IOCs(SourceIP):リソースの実際のダウンロードがリモートバックドアを隠す方法
表示
検出するための IOCs(HashSha256):リソースの実際のダウンロードがリモートバックドアを隠す方法
表示
検出するための IOCs(DestinationIP):リソースの実際のダウンロードがリモートバックドアを隠す方法
表示
Winos4.0 ネットワーク活動の検出(悪意のあるコマンド&コントロールサーバーを経由して)[Windows ネットワーク接続]
表示
Winos4.0 バックドアを持つトロイ木馬化された RustDesk インストーラー [Windows プロセス作成]
表示
シミュレーション実行
前提条件: テレメトリ&ベースラインのプレフライトチェックが合格していること。
理由: このセクションでは、検出ルールをトリガーするために設計された敵対者技法 (TTP) の正確な実行を詳細に説明します。コマンドとナラティブは、特定された TTP を直接反映し、検出ロジックによって予想されるテレメトリを正確に生成することを目的としています。
-
攻撃の説明とコマンド:
- 配信と実行: 攻撃者はトロイの木馬化された RustDesk インストーラー (
rustdesk-1.4.4-x86_64.exe) をフィッシングメールを通じて配信します。ファイルは%TEMP%に保存され、昇格された特権で実行されます。 - ペイロードのドロップ: 実行すると、インストーラーは 2 つの悪意のあるバイナリ—
logger.exeandLibserver.exe—を同一ディレクトリに抽出し、直ちに子プロセスとして起動します。 - 永続性(T1546.016):
logger.exeは Run キーエントリ(HKCUSoftwareMicrosoftWindowsCurrentVersionRun)を自分自身を示すように書き込み、再起動後の永続性を確保します。 - コードインジェクション (T1574.005 / T1055.005):
Libserver.exeは反射型 DLL をexplorer.exeに注入して高権限での実行を取得し、攻撃者の C2 への逆シェルを開きます。 - 回避(偽装 – T1036.011): すべてのバイナリは「RustDesk」命名規則を保持し、正当なソフトウェアと自分をブレンドします。
- 配信と実行: 攻撃者はトロイの木馬化された RustDesk インストーラー (
-
回帰テストスクリプト: 以下のスクリプトは手順 1‑3 を自動化し、3 つの必要なプロセス作成イベントを生成します。PowerShell を使用して、事前に配置された悪意のあるバイナリ(安全のため無害なプレースホルダーでシミュレーション)をコピーし、適切な親子関係で起動します。
# ------------------------------------------------- # シミュレーションスクリプト – トロイ木馬化された RustDesk インストーラー # ------------------------------------------------- # 前提条件: 2 つの無害なプレースホルダー実行ファイルが C:Malware に配置されている(logger.exe および Libserver.exe と名付けられたもの) # 実際のレッドチームテストでは、これらは実際の悪意のあるペイロードになります。 # ------------------------------------------------- $installerPath = "$env:TEMPrustdesk-1.4.4-x86_64.exe" $payloadDir = "$env:TEMPrustdesk_payload" $loggerPath = "$payloadDirlogger.exe" $libserverPath = "$payloadDirLibserver.exe" # 1. ダミーインストーラーをデプロイ(単に無害な exe のコピー) Write-Host "[*] 偽の RustDesk インストーラーをデプロイしています..." New-Item -ItemType Directory -Path $payloadDir -Force | Out-Null Copy-Item -Path "C:WindowsSystem32notepad.exe" -Destination $installerPath -Force # 2. ペイロードドロップをシミュレート – プレースホルダーバイナリをコピー Write-Host "[*] ペイロードをドロップします..." Copy-Item -Path "C:Malwarelogger.exe" -Destination $loggerPath -Force Copy-Item -Path "C:MalwareLibserver.exe" -Destination $libserverPath -Force # 3. インストーラーを実行(親プロセスを作成) Write-Host "[*] インストーラーを実行しています..." $installer = Start-Process -FilePath $installerPath -PassThru # 4. インストーラーの子として logger.exe を起動 Write-Host "[*] logger.exe を起動(インストーラーの子として)..." Start-Process -FilePath $loggerPath -ArgumentList "--parent $($installer.Id)" -NoNewWindow # 5. インストーラーの子として Libserver.exe を起動 Write-Host "[*] Libserver.exe を起動(インストーラーの子として)..." Start-Process -FilePath $libserverPath -ArgumentList "--parent $($installer.Id)" -NoNewWindow Write-Host "[+] シミュレーション完了. SIEMでのアラートを確認してください。" -
クリーンアップコマンド: 一時ファイルを削除し、残っているプロセスを終了します。
# ------------------------------------------------- # クリーンアップスクリプト – シミュレーションアーティファクトの削除 # ------------------------------------------------- $installerPath = "$env:TEMPrustdesk-1.4.4-x86_64.exe" $payloadDir = "$env:TEMPrustdesk_payload" Write-Host "[*] 起動中のプロセスを停止しています..." Get-Process -Name "logger","Libserver","rustdesk-1.4.4-x86_64" -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "[*] ファイルを削除しています..." Remove-Item -Path $installerPath -Force -ErrorAction SilentlyContinue Remove-Item -Recurse -Force -Path $payloadDir -ErrorAction SilentlyContinue Write-Host "[+] クリーンアップ完了。"