「Gentlemen」ランサムウェアグループは、VMware ESXiハイパーバイザー向けに特別に設計された高度に特化したELFバイナリのデプロイが確認されています。このサンプルはESXiコマンドラインエコシステム(esxcli、vim-cmd)に関する深い知識を示しており、暗号化前に仮想マシン(VM)を終了し、ストレージバッファを操作するための積極的な戦略を採用しています。
デコンパイルされたCコードの分析により、ChaCha20暗号化を利用した洗練されたマルチスレッドロッカー、大規模な仮想ディスクを急速に破損させるための断続的な「高速」モード、および自動サンドボックスを回避するために設計された特定の反分析ガードレールが明らかになりました。
ゲートキーパー:反分析引数チェック
このマルウェアが採用する最初の防御線の1つは「パスワード」チェックです。自動サンドボックスは、動作を観察するために引数なしでサンプルを実行することが多くあります。「Gentlemen」はこれを予想しており、コマンドラインで正しいパスワードが提供されない場合、バイナリは単に「bad password」を出力して終了し、悪意のある活動を何も明らかにしません。
エントリ関数FUN_00401660で見られるように、マルウェアはargv[2]をハードコードされた文字列に対して明示的にチェックします:
// コード参照:FUN_00401660
iVar3 = strcmp((char *)param_2[2], “KhHULsJugc”); // ハードコードされたパスワード
if (iVar3 != 0) {
puts(“bad password”);
return 1;
}
このシンプルなロジックは、KhHULsJugcキーを知らない一般的な分析環境でマルウェアが起動するのを効果的に防ぎます。
ESXi環境の武器化
認証後、マルウェアはESXiホストを最大限の影響のために準備します。ファイルを暗号化するだけでなく、実行中のVMを終了し、バッファ設定を変更することで、ファイルハンドルを積極的に解放し、暗号化されたデータができるだけ早くディスクにコミットされるようにします。
バッファキャッシュ操作
マルウェアはESXiバッファキャッシュ設定を変更してキャッシュサイズを削減し、フラッシュ頻度を増加させ、暗号化されたファイル操作がより迅速かつ永続的にディスクに書き込まれるようにし、揮発性メモリバッファに残される暗号化されていないデータの量を減らします。:
system(“esxcfg-advcfg -s 32768 /BufferCache/MaxCapacity > /dev/null 2>&1”);
system(“esxcfg-advcfg -s 20000 /BufferCache/FlushInterval > /dev/null 2>&1”);
「キル」ループ
仮想ディスク(.vmdk)を暗号化するには、ファイルが実行中のVMプロセスでロックされていないことが必要です。マルウェアはVMをシャットダウンするための二重方法アプローチを利用します:
- ソフトストップ:vim-cmd vmsvc/power.offを使用してVMの電源を正常に切断します。
- ハードキル:esxcli vm process listを使用して実行中のプロセスを反復処理し、プロセスが継続する場合は終了させます。
// コード参照:FUN_00401660
snprintf((char *)__s, 0x200, “esxcli vm process kill –type=force –world-id=%s > /dev/null 2>&1”);
system((char *)__s);
暗号実装:ステルスより速度優先
マルウェアはChaCha20ストリーム暗号を使用します。これはハードウェアAES高速化がないCPUでの高いパフォーマンスのため、現代的なランサムウェアの標準的な選択肢です。
ChaCha20の識別:
関数FUN_00404e20では、標準的な「expand 32-byte k」定数を使用してChaCha20状態マトリックスの初期化を観察します:
// コード参照:FUN_00404e20 – ChaCha20定数
*(undefined4 *)(param_1 + 0x10) = 0x61707865; // “apxe” (expa)
*(undefined4 *)((long)param_1 + 0x84) = 0x3320646e; // “nd 3” (3 dn)
*(undefined4 *)(param_1 + 0x11) = 0x79622d32; // “2-by” (yb-2)
*(undefined4 *)((long)param_1 + 0x8c) = 0x6b206574; // “te k” (k et)
断続的な「高速」モード:
テラバイトのVMデータを暗号化するには時間がかかります。攻撃を迅速化するため、「Gentlemen」はファイルの一部のパーセンテージのみを暗号化する断続的な暗号化フラグを実装しています。FUN_00401660とFUN_00402720のロジックは、選択されたモードに基づいてジャンプ間隔を計算します:
- –fast:ファイルの9%を暗号化します。
- –superfast:ファイルの3%を暗号化します。
- –ultrafast:ファイルの1%を暗号化します。
// コード参照:FUN_00402720
if (DAT_006086f4 != 0) {
dVar12 = dVar12 * 0.01; // Ultrafast:1%
} else if (DAT_006086f8 == 0) {
dVar12 = dVar12 * 0.09; // Fast:9%
} else {
dVar12 = dVar12 * 0.03; // Superfast:3%
}
このロジックにより、脅威アクターは10TBのデータストアを時間ではなく数分で使用不可にすることができます。
永続性メカニズム
システムがリブートされたまたはセッションが中断された場合でも暗号化プロセスが完了することを確保するために、「Gentlemen」は積極的な永続性フックをインストールします。
FUN_004024f0では、コードは実行中の実行ファイルを隠された場所にコピーし、システム起動スクリプトを変更します:
- RC.Localインジェクション:ブート後30秒でペイロードを実行するために/etc/rc.local.dにスクリプトを作成します。
- Crontab操作:ルートcrontabに@rebootエントリを追加します。
// コード参照:FUN_004024f0
snprintf(acStack_839 + 1, 0x800,
“mkdir -p /etc/rc.local.d 2>/dev/null; echo ‘#!/bin/sh’ > ‘%s’; …”, …);
snprintf(acStack_839 + 1, 0x800,
“echo ‘@reboot sleep 60 && %s %s’ | crontab – 2>/dev/null”, …);
侵害の指標(IOC)
- マルウェアハッシュ:5dc607c8990841139768884b1b43e1403496d5a458788a1937be139594f01dca1eece1e1ba4b96e6c784729f0608ad2939cfb67bc4236dfababbe1d09268960c
- ランサム拡張子:.fjuuk0ファイルに追加
- ランサムノート:README-GENTLEMEN.txtがディレクトリに配置
- 実行パスワード:KhHULsJugc(コマンドラインhistoryログに見つかる)
- Yaraルール:
rule rbrk_linux_ransomware_gentlemen_ESXi {
メタ:
description = “VMware ESXiを対象とするGentlemen ランサムウェアを検出”
author = “Rubrik Zero Labs”
date = “2026-02-03”
hash = “5dc607c8990841139768884b1b43e1403496d5a458788a1937be139594f01dca”
文字列:
$s1 = “KhHULsJugc” ascii
$s2 = “.fjuuk0” ascii
$s3 = “README-GENTLEMEN.txt”
$s4 = “esxcli vm process kill” ascii
$s5 = “vim-cmd vmsvc/power.off” ascii
$s6 = “esxcfg-advcfg -s 32768 /BufferCache/MaxCapacity” ascii
$s7 = “–superfast” ascii
$s8 = “–ultrafast” ascii
条件:
all of ($s*)
}
結論
「Gentlemen」ESXiランサムウェアは、仮想化インフラストラクチャへの成熟した目的特化型脅威を表しています。断続的な暗号化とESXi固有の管理コマンドの使用は、ランサムウェアオペレータが速度と最大限の混乱のためにツールを最適化し続けていることを実証しています。
翻訳元: https://zerolabs.rubrik.com/blog/under-hood-deconstructing-gentlemen-esxi-ransomware