EDR-Umgehungstechniken (Endpoint Detection and Response) werden von Angreifern immer häufiger eingesetzt, da sie ihre Strategien zur Umgehung von Sicherheitsmaßnahmen weiterentwickeln, ohne entdeckt zu werden. Es gibt viele verschiedene Arten von EDR-Umgehungstechniken, von denen viele auf der MITRE ATT&CK-Website aufgeführt sind. Die Komplexität und Entwicklung dieser Methoden variiert stark; einige können recht einfach sein und bekannte Schwachstellen oder Konfigurationsfehler ausnutzen, während andere ausgeklügelte Techniken beinhalten, die sich im Laufe der Zeit an Gegenmaßnahmen anpassen. Eine der beliebtesten Methoden ist das „Reflective Loading“.
Beim „Reflective Loading“ werden Nutzdaten direkt in den Speicher des Host-Prozesses injiziert, so dass das Betriebssystem glaubt, dass der im Speicher ausgeführte Code zum eigentlichen Prozess gehört. Viele Tools in Windows beispielsweise nutzen dies rechtmäßig für Debugging- und Virtualisierungszwecke.
In dieser Untersuchung werden drei verschiedene Varianten dieser Technik behandelt und gezeigt, wie sie zur EDR-Umgehung eingesetzt werden können. Abschließend erklären wir, was dies für Unternehmen und EDR-Anbieter bedeutet und was Sicherheitsexperten tun können, um ihre Sicherheitslage zu verbessern.
Unternehmen sollten sich dieser Angriffe bewusst sein, da sie die primären Verteidigungsmechanismen Ihres Unternehmens umgehen können, was zu Datenschutzverletzungen, Betriebsunterbrechungen und erheblichen finanziellen und rufschädigenden Schäden führen kann.
Wer sollte dies lesen?
- CISOs – Um zu lernen, wie man Bedrohungen für das Unternehmen durch reflexives Laden besser erkennen kann
- Forscher – Um ihr Wissen zu erweitern und neue Techniken zu erlernen
- Red Teamers / Pentesters – Um neue Fähigkeiten zu erlangen und zu versuchen, mögliche kompromittierte Assets zu erkennen
- EDR-Unternehmen – Um ihr Produkt anzupassen und neue Erkennungstechniken einzubeziehen
Taktik 1: Umgang mit Abhängigkeiten
Die erste Taktik nutzt reflektierendes Laden, um Mimikatz auszuführen und dabei AV- und EDR-Produkte wie Windows Defender zu umgehen. Während Windows Defender diese Methode angeblich blockiert, zeigen wir einen neuen Weg, mit Abhängigkeiten umzugehen. Dies geschieht durch die Verwendung von DLL-Weiterleitung und ApiSet-Verbesserungen, die es LoadDLL ermöglichen, DLL-Dateien aus dem Speicher oder von der Festplatte vorzuladen. Das bedeutet, dass diese Dateien von DLLs und EXEs importiert werden und nicht von LoadLibrary(). Infolgedessen kann der Angreifer seine eigene Kopie von DLLs laden und EDR-Hooks umgehen.
Lesen Sie den gesamten Artikel hier.
Taktik 2: Interaktionen mit entferntem Speicher
Die zweite Taktik zeigt, wie ein Rahmen für Interaktionen mit reflektiv geladenen Modulen implementiert werden kann. Dazu werden MemoryAPI für den Zugriff auf Daten, BufferAPI für die Pufferung lokaler Objekte im entfernten Speicher und ModuleAPIs für die Darstellung von Funktionen bei der Ausführung von Code auf dem entfernten Client verwendet.
Ein solches Framework kann verwendet werden, um DLLs reflektiv in den Speicher eines entfernten Hosts zu laden, Objekte zuzuweisen und dann Funktionen innerhalb der DLL aufzurufen. Dies ermöglicht die Verwendung einer lokalen Reflective DLL-Technik auf mehreren Hosts gleichzeitig.
Lesen Sie den gesamten Artikel hier.
Taktik 3: API-Forschung
Die dritte Taktik hilft bei der Überwindung von Netzwerk-Latenzproblemen bei der Interaktion mit nativen DLL-Modulen, indem eine „Skriptsprache“ für diese Interaktionen geschaffen wird. Diese Sprache, die wir DevalScript genannt haben, basiert auf den folgenden Prämissen:
- DevalScript ist eine leichtgewichtige Skriptsprache, die auf einfachen Ideen basiert:
- Operation == Befehl == Funktion(*args) => Klammern
- Passen Sie einige eingebaute Operationen mit verschiedenen Klammern für eine einfache Sprache an
- Grundlegende eingebaute Operationen: xxargs, xswitch, getvariable, … => komplexe Logik
- Die Double-Evaluation-Primitive ermöglichen es, einfache Befehle in ein Skript umzuwandeln, indem Ergebnisse von Befehlen mit Argumenten anderer Befehle verknüpft werden.
- Die Grammatik der Sprache ist in local/cnc/compile.py definiert.
Lesen Sie den gesamten Artikel hier.
Auswirkungen
Reflektierendes Laden ermöglicht die Ausführung von Nutzdaten auf entfernten Hosts, ohne von XDR-Systemen entdeckt zu werden. Dies hat die folgenden Vorteile:
- Unauffälligkeit – Eine reflektiv geladene Nutzlast bleibt in einem separaten, legitimen Prozess im Speicher. Dadurch ist sie im Vergleich zu einer regulären Nutzlast, die mit forensischen Mitteln identifiziert werden kann, viel schwerer zu erkennen. Die reflektiv geladene Nutzlast überlebt auch einen Neustart nicht und kann vom Angreifer im System deaktiviert werden, wodurch ihre Spuren beseitigt werden, was ihre Untersuchung ebenfalls erschwert.
- Flexible Nutzlast – Eine reflektierende Nutzlast kann für verschiedene Zwecke verwendet werden, z. B. zum Beamen. Eine generische Nutzlast hingegen erfordert das Hinzufügen von Operationen zur Ausführung in der Shell. Dies macht es einfacher, eine breite Palette von Aktionen auszuführen.
- Effizienz – Die reflektierende Nutzlast wird aus dem Speicher ausgeführt, wodurch sie für den Angreifer schneller und für den Verteidiger schwieriger zu entdecken ist.
Entschärfung
Es wird empfohlen, dass Sicherheitsexperten die folgenden Schritte befolgen:
- Isolieren/Segmentieren wertvoller Ressourcen – Schützen Sie Ihre Kronjuwelen, indem Sie sie im Netzwerk so abtrennen, dass sie nicht leicht zugänglich sind.
- Privilegien – Benutzer mit geringen Privilegien – Führen Sie das Prinzip der geringsten Privilegien ein, um das Risiko einer Privilegienausweitung zu verringern und es Angreifern zu erschweren, sich seitlich in Ihrem Netzwerk zu bewegen.
- Schulung der Mitarbeiter / Phishing – Sorgen Sie dafür, dass die Mitarbeiter über die Risiken von Phishing informiert sind und wissen, wie sie Phishing-Angriffe erkennen können. Achten Sie darauf, dass Sie sie in den neuesten Technologien schulen. Zum Beispiel, wie generative KI Phishing-Inhalte verändert hat.
Ihr Kontakt zu uns:
Matan Katz, Regional Development
Hier direkt einen Termin buchen:
https://pentera.oramalthea.com/c/MatanKatz
Oliver Meroni, Regional Sales Manager Switzerland & Austria, Pentera
Hanspeter Karl, Area Vice President DACH, Pentera