
Nutzen Sie einen legitimen WFP-Callout-Treiber, um zu verhindern, dass EDR-Agenten Telemetriedaten senden.
Co-Autor: @oops4git(https://github.com/oops4git)
EDRPrison macht sich einen legitimen WFP-Callout-Treiber, WinDivert, zunutze, um EDR-Systeme effektiv stummzuschalten. Inspiriert von Tools wie Shutter, FireBlock und EDRSilencer konzentriert sich dieses Projekt auf netzwerkbasierte Umgehungstechniken. Im Gegensatz zu seinen Vorgängern installiert und lädt EDRPrison einen externen legitimen WFP-Callout-Treiber, anstatt sich ausschließlich auf das integrierte WFP zu verlassen. Darüber hinaus blockiert es ausgehenden Datenverkehr von EDR-Prozessen, indem es dynamisch Laufzeitfilter hinzufügt, ohne direkt mit den EDR-Prozessen oder deren ausführbaren Dateien zu interagieren.
Zusammenfassend bietet EDRPrison die folgenden wichtigsten Funktionen und Fähigkeiten:
Weitere technische Details finden Sie im Artikel: https://winslow1984.com/books/malware/page/edrprison-borrow-a-legitimate-driver-to-mute-edr-agent
Zum erfolgreichen Ausführen von EDRPrison sind erhöhte Rechte erforderlich. EDRPrison besteht aus den folgenden drei Komponenten:
EDRPrison bietet gegenüber seinen Vorgängern mehrere Erweiterungen und Verbesserungen und ist damit ein robusteres und heimlicheres Werkzeug für die netzwerkbasierte EDR-Umgehung:
Aufgrund der mir zur Verfügung stehenden Ressourcen habe ich EDRPrison bisher auf meinem physischen Server gegen Elastic Endpoint und Microsoft Defender for Endpoint (MDE) getestet.
Die relevanten Prozesse für Elastic Endpoint und MDE sind im Quellcode fest verdrahtet. Während der Tests wurden weder das Hauptprogramm noch WinDivert von den Sicherheitssystemen erkannt.
Ich habe einige gängige Malware-Beispiele wie Mimikatz getestet. Diese Beispiele können weiterhin erkannt werden, da EDR-Systeme auch ohne Internetverbindung grundlegende Erkennungsfunktionen wie hashbasierte Signaturen beibehalten. Nach der Ausführung der Malware stieg die Anzahl der Pakete, was darauf hindeutet, dass sie Alarmdaten enthielten.

Während einige Erkennungen lokal erfolgen, erscheinen sie nicht im EDR-Panel. Ohne Internetverbindung sind EDR-Systeme nicht in der Lage, erweiterte Funktionen wie maschinelles Lernen und Cloud-Computing zu nutzen, um anspruchsvollere Malware-Angriffe zu verhindern.


Ändern Sie das folgende Code-Snippet, um weitere EDR-Prozesse fest zu verdrahten.
static void initData()
{
processDictionary.TryAdd("MsMpEng.exe", 1);
processDictionary.TryAdd("MsSense.exe", 1);
processDictionary.TryAdd("SenseIR.exe", 1);
processDictionary.TryAdd("SenseNdr.exe", 1);
processDictionary.TryAdd("SenseCncProxy.exe", 1);
processDictionary.TryAdd("SenseSampleUploader.exe", 1);
processDictionary.TryAdd("elastic-endpoint.exe", 1);
processDictionary.TryAdd("elastic-agent.exe", 1);
}
Die folgenden Ansätze können verwendet werden, um die Nutzung von EDRPrison zu erkennen oder abzuschwächen. Abhängig von der Umgebung können einige dieser Erkennungen jedoch zu Fehlalarmen (False Positives, FP) führen.
Wenn der WinDivert-Treiber nicht bereits auf dem System installiert ist, installiert EDRPrison den Callout-Treiber bei der ersten Ausführung. Sowohl das Betriebssystem als auch die Telemetriedaten protokollieren dieses Ereignis.
EDRPrison und andere von WinDivert abhängige Programme benötigen das Vorhandensein von WinDivert64.sys und WinDivert.dll auf der Festplatte. Die Überwachung dieser Dateien kann bei der Erkennung solcher Programme helfen.
Tools wie WinDivertTool können Prozesse erkennen, die derzeit die Windows Filtering Platform (WFP) verwenden.

Elastic verfügt über eine Erkennungs-Regel, die Paketverwerfungs- oder Blockierungsaktionen gegen Prozesse von Sicherheitssoftware identifizieren kann, was auf das Vorhandensein von EDRPrison hindeuten kann.
Das Tool WFPExplorer unterstützt Administratoren bei der Überprüfung aktiver WFP-Sitzungen, registrierter Callouts und Filter.




Ein potenzielles zukünftiges Feature könnte zusätzliche Schutzmaßnahmen für die Treiberinstallation hinzufügen und so die Sicherheit gegen unbefugte Nutzung von Treibern wie WinDivert weiter erhöhen.
Aus Red-Team-Sicht können je nach den Sicherheitskonfigurationen der Umgebung mehrere Strategien eingesetzt werden, um die zuvor genannten Erkennungen zu umgehen.
Wenn WinDivert in der Umgebung als bösartig eingestuft wird, können alternative signierte Open-Source-Treiber verwendet werden. Diese Alternativen sollten weniger Aufzeichnungen über bösartige Nutzung aufweisen und weiterhin Paketabfangen, Wiedereinspeisung und andere Manipulationstechniken unterstützen.
In Umgebungen, in denen externe Treiber ohne Genehmigung nicht zulässig sind, ist es herausfordernd, aber machbar, einen installierten oder integrierten WFP-Callout-Treiber zu reverse-engineeren. Durch die Wiederverwendung seiner Callout-Funktionen können Red Teamer vorhandene Treiber nutzen. Viele Sicherheitssoftware-Lösungen enthalten eigene WFP-Callout-Treiber, die zweckentfremdet werden können.
Statt abgefangene Pakete zu blockieren oder zu verwerfen, können Red Teamer sie umleiten oder über einen Proxy leiten. Diese Methode kann Erkennungsregeln umgehen, die sich auf Paketverwerfungs- oder Blockierungsaktionen konzentrieren, während weiterhin die gewünschte Beeinträchtigung der EDR-Prozesse erreicht wird.
Die folgenden Ressourcen haben mich während meiner Forschung inspiriert und sehr unterstützt. Ich danke allen Autoren: