Slapdash Safeguards

にわか仕込みのセキュリティ

ESETの公開した90種類以上のEDR Killerを調査した記事を読んで思ったこと

攻撃で使われたEDR Killerは90種類以上もあると。

その中の54種類はBYOVDベースっていうことなので、EDRにとってやはり脆弱なカーネルドライバが天敵なのはやっぱりって感じ。

7件はスクリプトベースっていう話だが、スクリプトベースで本当に止められる?

EDRはカーネルレベルまで手を出していて、SYSTEM権限でも停止できないのにスクリプトレベルでKillできるのだろうか。

15件はルートキット対策ソフト等ということなので、本来は悪意のあるソフトではないがOSの根幹に干渉できる系ソフトの悪用ということ。

ここでは、無料で公開されていたりツールの現況が分かるものをピックアップして思ったことを述べていく。
www.welivesecurity.com

スクリプトベース

ESETの記事には、「taskkill、net stop、sc deleteなどの組み込みの管理ツールやコマンドを悪用して、セキュリティ製品のプロセスやサービスを改ざんします。」的なことが書いてある。

いや待て!そんなんでEDR止められたら誰も苦労しないし、サイバー攻撃なんてバンバン成功しちゃうよ。ってツッコんだ。

そのあとに、「レベルの低い攻撃者の所業」的なことが書いてあるので確かにそうって感じ。

EDRとかは組み込みのツール何かじゃ止められないし、管理者権限で止められるようなものではない。

管理者権限で止められるのはEDRとはいえないと言っても過言ではないと思っている。

OT環境では、管理者は不要なときに簡単にローカルで停止できるっていうのをアピールポイントにしているEDRがあるが意味不明過ぎてヤバい。

で、じゃあスクリプトベースだとEDRに対して全く意味がないかというとそうでは無かったわけだ。

ツール名 開発者 URL 主な機能
CheckSafeBoot fashionproof (Mark) https://github.com/fashionproof/CheckSafeBoot セーフモードでAV/EDRが動作しているかを確認するC#ツール。WMIでインストール済みセキュリティ製品を特定し、セーフモードでの稼働状態をチェック。BCD操作によるセーフモードへの再起動、結果のC:\Users\Public\SafeBoot.txtへの出力、セーフモード解除と再起動までを自動化。

セーフモードって最低限のプログラムだけ起動させてメンテナンスするようなときに使う。

この状態でランサムウェアを実行するのを仕組化して悪用したのがSnatch。
www.sophos.com

セーフモードだとEDRも動作しなくなっちゃうので、その間なら好き放題できるということ。

ただし、セーフモードのためには再起動が必要で攻撃者はせっかく手に入れた操作権限を目的達成を確認する前に一度手放さないとならず。

再び、操作権限を手に入れるまで上手くいったか分からないだろうし攻撃者側もリスクが伴う。

Snatchランサムウェアグループは、セーフモードを使用する際に毎回願掛けでもしていたのだろうか。

なので、攻撃者的にはあんまり好まれない、人気ではない手法のイメージ。

今はセーフモードでも、EDRが動作するようになっていたりするので脅威度は下がっていると思う。

アンインストールするなら、セーフモードでやってくださいとアナウンスしているEDR製品は少し気になるが。

アンチルートキット

隠れたマルウェア、簡単には消せないマルウェアを除去するためのソフト。

ということは???

ツール名 開発者 URL 主な機能
GMER GMER http://www.gmer.net/ 隠しプロセス/スレッド/モジュール/サービス/ファイル/レジストリキーの検出、MBRスキャン、SSDT/IDT/IRPフック検出、インラインフック検出、ADSスキャン
HRSword (火絨剣) Huorong (火絨安全) / スタンドアロン版公開: szdyg https://github.com/szdyg/HRSword プログラム動作監視、プロセス管理、スタートアップ管理、カーネルモジュール管理、フックスキャン、サービス管理、ドライバスキャン、ネットワーク監視、ファイル管理、レジストリ管理
PC Hunter (PCHunter) Epoolsoft https://www.majorgeeks.com/files/details/pc_hunter.html プロセス管理(隠しプロセス検出)、カーネルモジュール表示、SSDT/Shadow SSDT/sysenterフック検出・復元、Ring0/Ring3フック検出、システムコールバック表示・削除、ネットワーク接続表示、レジストリ閲覧・編集(隠しキー検出)、隠しファイル検出、フィルタドライバ表示、自動起動管理
TDSSKiller Kaspersky Lab https://www.bleepingcomputer.com/download/tdsskiller/ TDSS/Alureon系ルートキットの検出・除去、ZeroAccessルートキット対応、ブートキット(MBR感染型)検出、Cidox/Sinowal/Whistler/Phanta等多数のルートキットファミリー対応、ドライバ署名検証、KSN連携スキャン
WKTools AngleHony https://github.com/AngleHony/WKTools カーネルモジュール表示・隠しモジュール検出・アンロード/ダンプ、SSDT/Shadow SSDT/sysenter/int2eフック検出・復元、FSD/キーボードディスパッチフック検出・復元、カーネルインラインフック/IAT/EATフック検出・復元、ObjectTypeフック検出、IDT表示、カーネル通知コールバック表示・削除、フィルタドライバ表示、IOタイマー/DPCタイマー/システムスレッド表示、隠しレジストリ検出、プロセスフック検出・復元

本来の目的は、ルートキットに対抗するソフトたち。

ルートキット除去に使用されのは分かるが、個人的には昔なかなかアンインストールできないアンチウィルスソフトを除去するのに使用していたイメージ。

全然マルウェア検知回避的な文脈ではなくて、ウイルスバスターをアンインストールしてノートン入れたけどなんPC超絶重くなって。変だなぁと思ったら何かまだウイルスバスターが生き残っていて頑張っている。そこ頑張るとこじゃないじゃんとかツッコミいれつつ、ルートキット除去ツールで何とかするしかないかっていうことでウイルスバスターを完全除去すればノートンに乗り換えれた。

みたいなときに使用していた。アンインストールしてもファイル除去が上手くいっていなくて、使うときってあったよね......?

そんなしつこい汚れを綺麗にする感じで、なかなか消せないものを消すソフトをアンチウイルス製品に対して、EDR Killerとして使用されていたということだ。

最近のEDRがそんなことで簡単に削除できるわけがないのでは?と思うが、まだまだ柔なEDRもあるだろうから効果はあるかもしれない。

ランサムウェア被害調査では、PC Hunterだけ使用されていたのを見たことがある。

そのときに止められていた対象は、ESETのEDRじゃないやつだった。(じゃあ、普通にアンインストールとか止めれば良かったんじゃねとか超思った。)

BYOVD

脆弱なカーネルドライバを持ち込んで、EDRの検知機構を書き換えたり無効化したりする系。

基本方には、カーネル空間のメモリを書き換えるような脆弱性を持つカーネルドライバが使用される。

そういうものの方がEDRを無効化しやすいので。

カーネルドライバに脆弱性があったら、全部が全部EDR Killerとして転用可能なわけではなく、場合による。

ツール名 開発者 URL 主な機能
EDRSandblast Wavestone (Thomas Diot, Maxime Meignan) https://github.com/wavestone-cdt/EDRSandblast/ 脆弱な署名済みドライバを武器化し、EDRのNotify Routineコールバック、Object Callbacks、ETW TI providerを無効化。LSASS保護(RunAsPPL/Credential Guard)のバイパスとダンプ、ユーザーランドアンフッキング、Firewallルール追加によるEDR通信遮断、未署名ドライバのロード機能。1000以上のEDRドライバに対応。C言語実装。DEF CON 30発表
s4killer gavz https://github.com/gavz/s4killer Rust製BYOVD PoC。脆弱なminifilterドライバを悪用し、minifilter API(FilterConnectCommunicationPort / FilterSendMessage)経由でプロセスを終了。PID引数指定。READMEなし。Embargo ransomwareのMS4Killerのベースとなった(ESET報告
evil-mhyprot-cli kkent030315 (Kento Oki) https://github.com/kkent030315/evil-mhyprot-cli 原神(Genshin Impact)のアンチチートドライバmhyprot2.sysの脆弱性(CVE-2020-36603)を悪用するPoC。カーネル/ユーザーメモリの読み書き、スレッド列挙、ZwTerminateProcessによるプロセス終了が可能。ランサムウェアによるAV無効化に実際に悪用された事例あり(Trend Micro報告
BadRentdrv2 keowu https://github.com/keowu/BadRentdrv2 rentdrv2ドライバの脆弱性(CVE-2023-44976)を悪用するBYOVD PoC。x32/x64両対応で、EDR/AVプロセスをPID指定で終了可能。RansomHub等のEDRKillShifterでも悪用が確認されている
BYOVD (TfSysMon-Killer含む) BlackSnufkin https://github.com/BlackSnufkin/BYOVD 脆弱ドライバのBYOVD悪用PoCコレクション(Rust実装)。TfSysMon-Killer、BdApiUtil-Killer、Viragt64-Killer、K7Terminator、NSec-Killer、Wsftprm-Killer等を含む。共通ライブラリ(byovd-lib)を使用し、新規ドライバ追加が容易な設計。CVE-2025-52915、CVE-2025-1055を含む
Backstab Yaxser (Yasser Alhazmi) https://github.com/Yaxser/Backstab SysinternalsのProcess Explorer(ProcExp)ドライバ(Microsoft署名済み)を悪用し、アンチマルウェア保護プロセスのハンドルを閉じて終了させるツール。ProcExpドライバのロード/アンロード、サービス名・パスの指定が可能
AuKill マルウェア(攻撃者作成) https://www.sophos.com/en-us/blog/aukill-edr-killer-malware-abuses-process-explorer-driver Backstabと同じProcess Explorerドライバを悪用するEDR Killerマルウェア。Medusa Locker、LockBit等のランサムウェア展開前に使用が確認。Sophos検出名: ATK/BackStab-D
Terminator ZeroMemoryEx (Mairon) https://github.com/ZeroMemoryEx/Terminator SpyBoyの手法($3,000で販売)を再現。Zemana Anti-Malwareのzam64.sysドライバを悪用してEDR/XDR/AVプロセスを終了。ドライバの信頼プロセスID登録機構をバイパスしてIOCTLを送信。C++実装
SharpTerminator mertdas (Mert Daş) https://github.com/mertdas/SharpTerminator TerminatorのC#再実装。zam64.sysドライバをリモートURLからダウンロード、またはディスクに直接ロードしてAV/EDRプロセスを終了。C2のアップロード機能不要でドライバ取得可能
Ternimator nbaertsch https://github.com/nbaertsch/Ternimator TerminatorのNim再実装。zam64.sysを使用したEDR/AVプロセス終了。Sophos報告(SC Media)でTerminatorバリアントとして確認
DLKiller マルウェア(攻撃者作成) https://blog.talosintelligence.com/byovd-loader-deadlock-ransomware/ DeadLockランサムウェアで使用されたBYOVDローダー。Baidu AntivirusドライバBdApiUtil.sysの脆弱性(CVE-2024-51324)を悪用し、IOCTL 0x800024b4でカーネルレベルのプロセス終了を実行。PowerShellスクリプトによるUACバイパス・Windows Defender無効化・VSS削除と組み合わせて使用
GhostDriver BlackSnufkin https://github.com/BlackSnufkin/GhostDriver Rust製のBYOVD AV Killerツール。プロセス名を指定(複数指定可)してAV/EDRプロセスを終了。truesight.sysドライバを使用
dead-av carved4 https://github.com/carved4/dead-av/ BlackSnufkin/BYOVD/BdApiUtil-KillerのGo言語リライト。Bitdefender API Utilityドライバ(bdapiutil64.sys)を使用してセキュリティプロセスを自動検出・終了
kill-floor brosck https://github.com/brosck/kill-floor/tree/main ※指定URLのリポジトリ内容を直接取得できなかった。同著者のL1LKillerはtruesight.sys(Rogue Anti-Malware Driver 3.3)を使用したBYOVDツールでSophos EDRに対してテスト成功。別途 7h3w4lk3r/Kill-Floor はAvast Anti-Rootkitドライバ(aswArPot.sys)を使用するBYOVDツールとして存在
Shanya-Killer Shanya (マルウェア/PaaS) https://www.sophos.com/en-us/blog/inside-shanya-a-packer-as-a-service-fueling-modern-attacks Packer-as-a-ServiceとしてEDR Killer機能を提供。正規のThrottleStop.sys(rwdrv.sys)の脆弱性を悪用してカーネルメモリ書き込み権限を取得し、未署名の悪意あるドライバhlpdrv.sysをロード。Akira、Medusa、Qilin、Crytox等のランサムウェアグループが使用。DLLサイドローディング、AMSI bypass、anti-VM機能を含む
Killers xalicex (Alice) https://github.com/xalicex/Killers 複数のプロセスキラードライバの悪用PoCコレクション(C言語)。Avast(aswArPot.sys)、PowerTool等のドライバを使用したプロセス終了手法を実装。研究・教育目的。READMEの詳細は未取得のため対応ドライバの全リストは未確認

EDR無効化!EDR回避!という話題が飛び交う度に登場するBYOVDだが、万能ってわけではないのは既に何度もお伝えしている通り。
前のリンク

特にMVDB、EDRが持っている脆弱なドライバブロックリストでブロックするし。

ゼロデイとかリストに載ってないと意味ないけれど。

EDRSandblastは、BYOVDでセキュリティ製品を無効化するツールとしてお手本的なもの。

セキュリティ製品のリストも持っているし、一時期猛威を奮っていたようだ。

githubリポジトリで使用している脆弱なドライバは既にブロックされているが、新しいものに置き換えれば簡単に再利用できるような構造になっている。

ドライバーを使用しない系

BYOVDもマルウェアとして検知されたり、リストでブロックされる?それなら既にある機能でEDRを妨害すればいいじゃない?

とでも言いたげな分野。

ツール名 開発者 URL 主な機能
EDRSilencer netero1010 (Chris Au) https://github.com/netero1010/EDRSilencer Windows Filtering Platform(WFP)APIを使用してEDRプロセスのIPv4/IPv6アウトバウンド通信をブロックし、セキュリティイベントのサーバー送信を阻止するツール。EDRプロセスを終了させるのではなく、テレメトリ送信を遮断するドライバレスなアプローチ。対応EDR: Microsoft Defender for Endpoint、Elastic EDR、Trellix EDR、Qualys EDR、SentinelOne、Cylance、Cybereason、Carbon Black、Tanium、Cortex XDR、FortiEDR、Cisco Secure Endpoint、ESET Inspect、Harfanglab EDR、TrendMicro Apex One。EDRのminifilterによるCreateFileW制限を回避するカスタムFwpmGetAppIdFromFileName0を実装。MdSec NightHawkのFireBlockにインスパイア。C言語実装、v1.4
EDR-Freeze TwoSevenOneT (Two Seven One Three) https://github.com/TwoSevenOneT/EDR-Freeze WerFaultSecure.exeの仕様を悪用し、BYOVDを使わずにユーザーモードでEDR/アンチマルウェアプロセスを一時停止(coma状態)にするツール。Windows 11 24H2で動作確認済み。MiniDumpWriteDump関数がダンプ時にターゲットプロセスの全スレッドをサスペンドする仕様を悪用し、PPL(WinTCBレベル)で動作するWerFaultSecure.exeを介して保護プロセスにアクセス。PIDとスリープ時間(ミリ秒)を指定して実行。MITRE ATT&CK T1562.001に該当。検出用Sigmaルール公開済み(Detection.FYI)。C++実装

EDRのエージェントの通信止めて孤立させれば反応が鈍るし、EDRプロセスバグらせればそりゃEDRも正常に稼働しなくなるよねって話。

単純なように聞こえるが、個人的にはかなり衝撃だった。

ただ、Windowsの機能を粗方抑えている人は気づきそうな方法とも思ったので、Windowsの脆弱性探している人たちとEDR回避頑張ってしようとしている人たちって分野が違うのかなと思ったり。

TwoSevenOneT氏は、BYOVDではない回避手法の話題を定期的に投下してくるので今個人的に大注目中。

今の流行は回避するよりも潰すこと

EDRやアンチウィルスを回避することよりも、プロセスキルや妨害することが最近の流行。

今はまだ、「あのEDRはシグネチャデータベースが凄いから検知する」、「あのEDRは機械学習ベースのふるまい検知が凄い」とか言っているが、もしかして今後は完全性・可用性的な側面が重要視されたりあるか?

回避することよりも妨害することの方法を見つけるのは難しいが、実行するのは簡単になっている。

攻撃者界隈では、EDRを回避して実行するツールより、EDRを潰すツールのサービスの方が目立っているように見えるのでそういうことだと。