C2-Umgehungstechniken: Verstehen von verformbaren C2-Profilen

April 26, 2021
Joshua St. Hilaire
Director of Security Research
C2-Umgehungstechniken: Verstehen von verformbaren C2-Profilen

Dies ist der zweite Teil unserer Serie über Command and Control (C2) Evasion Technique, in der ich über anpassungsfähige C2-Profile spreche. Sehen Sie sich meinen ersten Blog in dem ich eine als JA3-Signatur-Randomisierung bekannte Methode untersucht habe.

Verformbare C2-Profile sind weit verbreitet und werden von Cobalt Strikeeinem beliebten Framework, das von Pen-Testern und Advanced Persistent Threat (APT)-Gruppen verwendet wird. Es ist erwähnenswert, dass Malleable-Profile zwar den Nutzern von Cobalt Strike vertraut sind, ihre Verwendung aber auch in anderen C2-Frameworks Einzug gehalten hat. Zum Zeitpunkt der Erstellung dieses Artikels werden verformbare Profile auch in Empire C2 in der Version 3.4 verwendet. Was diese Entwicklung noch interessanter macht, ist die Tatsache, dass das Empire-Team vor kurzem eine Partnerschaft mit Kali Linux, einer beliebten Pen-Testing-Distribution, angekündigt hat, was die Verbreitung der Verwendung von anpassbaren Profilen noch verstärken wird.

Verformbare Profile zum Ausweichen

Anpassbare Profile für C2 ermöglichen es dem Akteur, nicht nur die Erkennung durch netzwerkbasierte Erkennungstools zu umgehen, sondern auch endpoint Sicherheitsprodukte. Der Grad der "Formbarkeit" ermöglicht es den Betreibern von Cobalt Strike nicht nur, die Form und das Timing von C2-Signalen vollständig anzupassen, sondern gibt ihnen darüber hinaus die Möglichkeit, Funktionen im Zielgebiet wie Prozessinjektion und speicherinterne Verschleierungsmethoden anzupassen. Die betriebliche Sicherheit ist immer ein Problem, wenn Agenten in einer Zielumgebung eingesetzt werden. Daher ist die Überwachung der Netzwerksicherheit immer eine Überlegung wert, wenn es um die Aufrechterhaltung der Unauffälligkeit bei der Befehls- und Kontrollfunktion geht. Angenommen, Angreifer installieren Agenten auf kompromittierten Rechnern in Ihrem Netzwerk und der von diesen Agenten bei der Verbindung mit dem C2-Server erzeugte Datenverkehr verwendet dieselben oder ähnliche Benutzer-Agenten, URIs oder andere Artefakte, die leicht zu erkennen sind. Das Risiko, dass diese Aktivitäten entdeckt werden, wäre außerordentlich hoch, wenn sie aufgrund ihrer wiederholten Verwendung im Voraus bekannt wären. Daher muss der Datenverkehr so umgewandelt oder gestaltet werden, dass er sich entweder in den "normalen" erwarteten Datenverkehr einfügt oder bei jedem Durchlauf einfach neue Werte verwendet werden. Beide Ansätze wären nützlich, um einer Entdeckung zu entgehen. Eine weitere Motivation für den Einsatz von anpassbaren Profilen ist der Wunsch, gegen bekannte Bedrohungen zu testen. Wenn ich einen Agenten und einen C2-Server so einrichten kann, dass sie genau so aussehen, wie malware über die Leitung oder auf einem Ziel endpoint , kann ich sehen, ob mein Netzwerkerkennungsstack oder die Sicherheitsüberwachung von endpoint in der Lage ist, die Aktivität zu erkennen.

Hier kommt die Formbarkeit ins Spiel. Es lohnt sich, auf einige der Optionen einzugehen, die dem Betreiber zur Anpassung von C2 zur Verfügung stehen. Außerdem werden wir in der Zusammenfassung darüber sprechen, wie diese die Erkennung erschweren, insbesondere bei signaturbasierten Erkennungsstrategien. Ich werde die Zusammenfassung der Funktionen nach Netzwerk und endpoint trennen. Die vorgestellten Optionen sind keineswegs als erschöpfende Liste zu betrachten.

Umgehung durch Anpassung

Unabhängig vom Netzwerkprotokoll, z. B. HyperText Transfer Protocol (HTTP) oder HTTPS, kommunizieren Agenten mit Servern auf eine bestimmte Weise. Bei der Verwendung von HTTP gibt es viele Teile einer HTTP-Konversation, die von Verteidigungsmaßnahmen auf der Netzwerkebene untersucht werden können. Zum Beispiel können Strings innerhalb eines HTTP-Headers, die eindeutig genug sind, von Verteidigern verwendet werden, um Verbindungen auf der Leitung zu erkennen. Dinge wie eindeutige Benutzer-Agenten, benutzerdefinierte Akzeptanzzeichenfolgen und eindeutige Pfadwerte können untersucht werden. Einstellungen können auch verwendet werden, um Header-Elemente auf der Serverseite zu ändern.

Mit manipulierbaren Profilen kann man einfach die Werte eines legitimen Programms, z. B. im HTTP-Header, spiegeln, um die Verbindung mit gutartigen Verbindungen, wie z. B. dem Microsoft Windows Update Agent, identisch erscheinen zu lassen. Der Screenshot unten zeigt eine Wireshark-Rekonstruktion einer HTTP-Sitzung mit einem Cobalt Strike Windows Update Malleable Profile.

Abbildung 1: Cobalt Strike Flexibles Profil von Windows Update

Es ist erwähnenswert, dass es Datenumwandlungen gibt, um Daten vor der Übertragung zu kodieren. Es mag nicht offensichtlich sein, aber der Uniform Resource Identifier (URI), der der HTTP-GET-Anfrage im obigen Screenshot folgt, wird vor der Übertragung mit Base 64 kodiert und dann auf der Serverseite dekodiert. Die folgende Liste enthält die in Cobalt Strike verfügbaren Datentransformationen.

Tabelle 1: Cobalt Strike Datenumwandlungen

Darüber hinaus können auch mehrere Transformationen miteinander kombiniert werden. So können z. B. base64 und mask für zusätzliche OPSEC übereinander gelegt werden.

Auch in Fällen, in denen HTTPS verwendet wird, können Werte wie SSL-Zertifikate (Secure Sockets Layer) manipuliert werden. Das folgende SSL-Zertifikat wird von den bereits erwähnten Windows-Update-Profilen verwendet:

Neben der Feinsteuerung der Art und Weise, wie die Verbindungen über die Leitung erscheinen, können auch die Zeitwerte, die bestimmen, wann sich der Client mit dem C2-Server verbindet, über anpassbare Profile manipuliert werden. Werte wie Jitter und Delay ermöglichen es Angreifern, das Zeitintervall zwischen C2-Verbindungen zu ändern.

Endpoint Formbare

Malleable wird nicht nur verwendet, wenn der Agent Daten über das Netzwerk sendet, sondern auch bei der Steuerung der speicherinternen Eigenschaften, der Art und Weise, wie er sich in Prozesse einschleust, sowie bei Aufgaben nach der Ausnutzung. Dies ist nützlich, um endpoint detection and response (EDR) und Antivirus-Erkennung zu umgehen. Das folgende Beispiel zeigt einige Optionen für das Verhalten des Agenten auf dem Zielsystem endpoint , die in anpassbaren Profilen festgelegt werden können.

Abbildung 2: Beispiel für endpoint bezogene formbare Optionen in Cobalt Strike havex profile.

Unter dem Stage-Block können Sie steuern, wie der Agent in den Speicher geladen wird. Es können Dinge wie Name, Kompilierzeit, Speicherberechtigungen, Verschleierung und Loader-Typ angegeben werden. Analysten, die nach bösartigem Code suchen, der in einen Prozess geladen wurde, überprüfen oft zuerst die Speichersegmente und suchen nach Segmenten, die mit RWX-Berechtigung in verdächtige Speichersegmente geladen wurden.

Unter den Prozessinjektionsoptionen können Sie den injizierten Inhalt gestalten. Sie können Daten mithilfe von Transformationsoptionen auffüllen und die Zuweisungsmethode sowie die Berechtigungen festlegen. Schließlich können Sie auch Post-Exploitation-Aufgaben steuern, indem Sie verschiedene Pipe-Namen auswählen, Smart Injection verwenden und Spawn-Positionen festlegen. Dies eignet sich hervorragend zur Umgehung und zum Testen von EDR-Lösungen. Eine ausführlichere Übersicht finden Sie im Online-Handbuch zu Cobalt Strikes.

Herausforderungen für Verteidiger

Die Möglichkeit, die C2-Kommunikation und das Staging-Verhalten so detailliert zu steuern, macht die Verteidigung und Erkennung mit Signaturen zu einer schwierigen Aufgabe. Ein weiterer Punkt, der hervorgehoben werden sollte, ist die Tatsache, dass Cobalt Strike zwar schon seit einiger Zeit eine Veränderbarkeit zulässt, andere beliebte C2-Frameworks wie Empire C2 jedoch ebenfalls veränderbare Profile verwenden. Dies und die Tatsache, dass diese Profile in jüngster Zeit vermehrt bei Angriffen von APT und ransomware macht die Aufgabe für die Verteidiger immer komplexer.

Netzwerk- und endpoint -Abwehrtechnologien müssen entweder über schnell aktualisierte Signaturen verfügen oder andere Ermittlungsmethoden zur Aufdeckung von Kommando- und Kontrollvorgängen anwenden, die nicht auf wiederholten Mustern in den Daten oder sogar auf zeitlichen Abläufen beruhen, die mit Beaconing-Aktivitäten übereinstimmen.

Häufig gestellte Fragen

Was sind verformbare C2-Profile und wie werden sie in Cobalt Strike verwendet?

Mit den anpassbaren C2-Profilen (Command and Control) in Cobalt Strike können Betreiber das Verhalten und das Erscheinungsbild ihres C2-Verkehrs individuell gestalten. Diese Anpassung hilft, die Erkennung durch netzwerkbasierte und endpoint Sicherheitstools zu umgehen. Die Betreiber können HTTP-Header, Benutzer-Agenten, URIs und sogar das Timing von C2-Baken ändern, um den Datenverkehr mit dem normalen Netzwerkverkehr zu vermischen oder legitime Software-Kommunikation zu imitieren, wie z. B. die des Windows Update Agent.

Warum sind anpassungsfähige C2-Profile für Angreifer von Vorteil?

Veränderbare C2-Profile sind für Angreifer von Vorteil, da sie die Erkennung durch Sicherheitstools umgehen können. Indem sie den Datenverkehr so anpassen, dass er normal erscheint oder legitimen Datenverkehr imitiert, können Angreifer die Auslösung von Sicherheitswarnungen vermeiden. Darüber hinaus ermöglichen diese Profile das Testen von Sicherheitsmaßnahmen, indem sie bekannte malware Verhaltensweisen simulieren und die Wirksamkeit von Erkennungsmechanismen bewerten.

Wie verbessern verformbare Profile die operative Sicherheit bei Penetrationstests oder Angriffen?

Veränderbare Profile erhöhen die Betriebssicherheit, indem sie es den Verteidigern erschweren, bösartigen C2-Datenverkehr zu erkennen und zu blockieren. Indem sie den Datenverkehr so anpassen, dass er wie legitime Software-Kommunikation aussieht, oder indem sie die Datenverkehrsmuster variieren, können Angreifer ihre Tarnung aufrechterhalten und das Risiko einer Entdeckung verringern. Dies ist besonders wichtig bei der Installation und Verwaltung von Agenten auf kompromittierten Rechnern in einem Zielnetzwerk.

Wie wirken sich die verformbaren Profile auf die Sicherheit von endpoint aus?

Auf Endgeräten können Malleable-Profile In-Memory-Merkmale, Prozessinjektionsmethoden und Post-Exploitation-Aufgaben steuern. Diese Funktionen helfen dabei, endpoint Erkennungs- und Reaktionstools (EDR) und Antivirensoftware zu umgehen, indem sie die Art und Weise, wie der bösartige Code geladen wird und sich im Speicher verhält, anpassen, wodurch er mit herkömmlichen Methoden schwerer zu erkennen ist.

Wie erschwert die Verwendung von verformbaren Profilen die Erkennung von Beaconing-Aktivitäten?

Verformbare Profile erschweren die Erkennung von Beaconing-Aktivitäten, da Angreifer die Zeitintervalle (Jitter und Verzögerung) zwischen C2-Kommunikationen zufällig festlegen können. Diese Randomisierung erschwert es Netzwerkverteidigungstools, regelmäßige Beaconing-Muster zu erkennen, die häufig zur Erkennung kompromittierter Systeme, die mit einem C2-Server kommunizieren, verwendet werden.

Wie verbreiten sich die verformbaren C2-Profile in anderen Rahmenwerken?

Veränderbare C2-Profile, die ursprünglich von Cobalt Strike eingeführt wurden, werden inzwischen auch von anderen C2-Frameworks wie Empire C2 übernommen, das diese Funktion ab Version 3.4 enthält. Diese Ausweitung ist zum Teil auf die Partnerschaft von Empire mit Kali Linux zurückzuführen, wodurch die Verbreitung und Nutzung von anpassbaren Profilen unter Penetrationstestern und cybercriminels gleichermaßen zunimmt.

Welche spezifischen Elemente des C2-Verkehrs können mit Malleable-Profilen angepasst werden?

Mithilfe von Malleable-Profilen können Betreiber verschiedene Elemente des C2-Datenverkehrs anpassen, darunter HTTP-Header (z. B. Benutzer-Agenten, Accept-Strings), URIs, SSL-Zertifikate und Zeitwerte (z. B. Jitter und Verzögerung). Diese Anpassungen tragen dazu bei, dass der bösartige Datenverkehr entweder mit dem normalen Datenverkehr verschmilzt oder bei jeder Operation einzigartig erscheint, was die Entdeckung erschwert.

Welche Herausforderungen stellen sich den Verteidigern durch verformbare Profile?

Veränderbare Profile stellen die Verteidiger vor große Herausforderungen, da sie die Erkennung von bösartigem Datenverkehr erschweren. Herkömmliche signaturbasierte Erkennungsmethoden werden weniger effektiv, da der angepasste Datenverkehr nicht mit bekannten bösartigen Mustern übereinstimmt. Verteidiger müssen sich auf anspruchsvollere und adaptive Erkennungstechniken wie verhaltensbasierte Analyse und Anomalieerkennung verlassen, um verdächtige Aktivitäten zu identifizieren.

Wie wirken sich die verformbaren Profile auf die Sicherheit von endpoint aus?

Unter Cobalt Strike können die Betreiber verschiedene Aspekte des Verhaltens von endpoint anpassen, darunter die Speicherberechtigungen des geladenen Codes, die Methode der Prozessinjektion, das Auffüllen von Daten, Zuweisungsmethoden und Aufgaben nach der Ausnutzung wie Smart Injection und die Angabe von Spawn-Positionen. Diese Optionen erschweren es den Sicherheitstools, bösartige Aktivitäten anhand allgemeiner Indikatoren zu erkennen.

Warum ist es für Security Operations Centers (SOCs) so wichtig, über eine robuste Plattform zur Erkennung von und Reaktion auf Bedrohungen zu verfügen, wenn sie mit veränderlichen Profilen umgehen?

Angesichts der fortschrittlichen Umgehungstechniken, die durch veränderbare Profile ermöglicht werden, ist es für SOCs von entscheidender Bedeutung, über eine robuste Plattform zur Erkennung von und Reaktion auf Bedrohungen zu verfügen. Eine solche Plattform kann Echtzeitanalysen, verhaltensbasierte Erkennung und fortschrittliche Anomalieerkennung bieten, um ausgefeilte Bedrohungen zu identifizieren und auf sie zu reagieren, die sich herkömmlichen signaturbasierten Methoden entziehen. Dies verbessert die allgemeine Sicherheitslage und ermöglicht rechtzeitige und wirksame Reaktionen auf potenzielle Eindringlinge.