Entmystifizierung von Ransomware-Techniken mit .NET-Assemblies: Ein mehrstufiger Angriff
Im ersten Teil dieser Serie haben wir uns Beispiele für Programmierfunktionen angesehen, die von Ransomware in ihren bösartigen Techniken verwendet werden können. Im zweiten Teil haben wir dann auch die Grundlagen des .Net-Software-Frameworks von Microsoft und der zugehörigen Assemblys von EXE und DLL untersucht, um zu verstehen, wie diese Funktionen ermöglicht werden.
In diesem letzten Teil werden wir alles, was bisher besprochen wurde, in einer Reihe von gestuften Payloads kombinieren, um die Grundlagen eines mehrstufigen Payload-Angriffs zu demonstrieren.
Nutzlast und Angriffseinrichtung
Wir beginnen damit, die Nutzlasten darzulegen, die für den Angriff verwendet werden. Alle vorherigen Fähigkeiten, einschließlich neuer, werden berücksichtigt, um die gestuften Nutzlasten zu erstellen. Dies soll insgesamt zeigen, wie die verschiedenen Taktiken und Techniken, die wir bisher gesehen haben, wie es typischerweise bei Ransomware der Fall ist, zusammengeführt werden können.
Wir werden die folgenden Nutzlasten verwenden:
- Erste EXE-Anwendung: Stager-Nutzlast
- Haupt-Ransomware-Payload EXE: Stage-1-Payload
- 2. Haupt-Ransomware-DLL: Stufe-2-Nutzlast
Die Verwendung mehrerer Payloads zum Ausführen unterschiedlicher Aufgaben in diesem Angriffsbeispiel stellt einen mehrstufigen Angriff dar. Im Rückblick auf die vorherige Serie über Malware-Payloads und Beacons wurden im zweiten Teil die Arten von bösartigen Payloads ausführlicher behandelt. Dort habe ich den Unterschied zwischen einem Stager und einem gestaffelten Nutzlasttyp erklärt. Zusammenfassend lässt sich sagen, dass ein Stager eine oft kleinere anfängliche ausführbare Anwendung ist, die als Downloader, Dropper und/oder Nutzlast für eine leistungsfähigere und oft größere Hauptnutzlastdatei fungieren kann, die als Bühne bezeichnet wird. Der Zweck der Stager-Payload besteht darin, die Hauptphase einzurichten. In diesem Angriffsbeispiel haben die verschiedenen Payloads bei Verwendung des Payload-Stagings wie oben beschrieben die verschiedenen Aufgaben wie folgt:
Die Stager-EXE-Payload führt folgende Schritte aus:
- Umgehungstechniken
- Lädt zwei 'Text'-Dateien auf die Festplatte herunter. Bei diesen Dateien handelt es sich tatsächlich um eine EXE-Datei und eine DLL.
- Starten Sie die 2. EXE-Datei
- Der Stager verlässt dann die Bühne
- Die laufende 2. EXE-Datei (Stufe-1) lädt die DLL (Stufe-2)
Stage-1 EXE- und Stage-2 DLL-Payloads führen dann die folgenden bösartigen Ransomware-Aktionen aus:
- Umgehungstechniken
- Entdeckung
- Manipulation von Prozessen
- Aufzählung von Laufwerken und Dateien
- Verschlüsselung von Dateien
Stager: Ausführbare Datei der anfänglichen Nutzlast (EXE)
Der Angriff beginnt mit unserer anfänglichen Nutzlast, dem Stager, der an den Computer des Opfers geliefert wird. Oft geschieht dies über Social-Engineering-Techniken wie Phishing. Sobald die erste Nutzlast zugestellt und ausgeführt wurde, beginnt sie mit der Ausführung der bösartigen Anweisungen.
Umgehung
Es wird zunächst eine bestimmte Zeit gewartet, ohne Aktionen auszuführen. Dabei handelt es sich um eine Umgehungstechnik, die entwickelt wurde, um die Bedrohungsanalyse virtueller Maschinen zu überdauern. Danach wird eine bekannte ausführbare Datei aus dem Internet heruntergeladen, z. B. eine Notepad-App. Dies ist ein Köder und eine weitere Umgehungstaktik, um nicht entdeckt zu werden.

Andere Techniken können die Überprüfung auf Mausklicks oder die Überprüfung von Dokumentverzeichnissen auf Beweise für Dateien umfassen, die mit der normalen Nutzung eines Computersystems verbunden sind, im Gegensatz zu einer virtuellen Sandbox-Maschine, die für die Bedrohungsanalyse verwendet wird.
Downloader, Dropper und Loader
Sobald diese anfänglichen Ausweichaktionen ausgeführt wurden, führt die (anfängliche) Stager-Payload erneut eine dritte Ruhezustandsaktion aus. Es wird erneut für eine bestimmte Zeit gewartet, bevor es mit dem nächsten Satz von Anweisungen fortfährt, nämlich dem Herunterladen der Stage-Nutzlastdateien. Diese Dateien werden vom Angreifer remote gehostet, wie unten gezeigt.

Der Stager fährt dann fort, zwei Textdateien "notepadlog0120231224.txt" herunterzuladen und "notepadlog0120231513.txt". Diese nächste Phase wird im folgenden Beispiel in rotem Text angezeigt.
Beachten Sie, dass die Download-Links für die Nutzlastdateien tatsächlich mit der Base64-Codierung verschleiert werden, die als vierte Technik im ersten Teil dieser Reihe besprochen wurde.

Die anfängliche Nutzlast konvertiert die base64 intern im laufenden Betrieb in die ursprünglichen Download-Links.
Bei den beiden heruntergeladenen Textdateien handelt es sich eigentlich um eine ausführbare Datei (EXE) bzw. eine Dynamic Link Library (DLL), die als Textdateien getarnt sind. Dies sind die Payloads der Phasen 1 und 2 für dieses Beispiel für einen mehrstufigen Ransomware-Angriff. Nach erfolgreichem Download werden diese Dateien in ihren ursprünglichen Typ umbenannt.

Die Stager-Payload startet dann die ausführbare Payload der Stufe 1, um den eigentlichen Ransomware-Angriff zu starten. Der Stager hat nun seinen Zweck erfüllt und wird beendet, sobald die Stufe-1-Nutzlast in den Arbeitsspeicher geladen und ausgeführt wird. Wie in der ersten Technik im ersten Teil dieser Serie erläutert, ist diese Nutzlast der Anfangsphase der Downloader und Dropper für die EXE-Nutzlast der Stufe 1 und der DLL-Nutzlast der Stufe 2 und der Ladevorgang nur für die Nutzlast der Stufe 1. Die DLL-Payload wird von der jetzt ausgeführten Stage-1-EXE-Payload als Stage-2-Payload geladen, daher handelt es sich um einen mehrstufigen Payload-Angriff.
Phase-1-ausführbare Datei (EXE)
Sobald die Ausführung an die Phase-1-Ausführbare Datei übergeben wurde, schläft sie zunächst für eine festgelegte Zeitspanne, wie unten gezeigt.

Anschließend wird die Stager-Payload-Datei "payload_initial_stager.exe" aus dem Dateisystem gelöscht, um alle Beweise zu entfernen. Im folgenden Beispiel wurde die Datei gelöscht und befindet sich nicht mehr im Verzeichnis.

Die Nutzlast der Stufe 1 ist nun bereit, ihre Aktionen auszuführen, um den Rest des Angriffs fortzusetzen.
Entdeckung
Als nächstes führt es einige Erkennungstechniken auf dem infizierten System durch. Diese Erkennungstechniken ermöglichen es einem Bedrohungsakteur, ein wenig mehr über das infizierte System zu erfahren. Die Erkennung hilft dem Bedrohungsbetreiber, bestimmte wichtige betriebliche Sicherheitsüberlegungen anzustellen, um den Gesamterfolg des Angriffs zu gewährleisten. In diesem Beispiel führt die Payload der Stufe 1 eine Überprüfung der Prozessliste durch. Einige Prozesse, die von Interesse sein könnten, sind Endpoint Detection and Response (EDR), Antiviren- (AV) oder VM-Prozesse. Diese helfen dabei, die Wahrscheinlichkeit zu verstehen, mit der die Nutzlast erkannt wird.

Basierend auf den Ergebnissen der Ermittlungsinformationen kann ein Bedrohungsakteur einige wichtige betriebliche Sicherheitsentscheidungen treffen. Wenn beispielsweise ein bekannter EDR-Prozess auf dem System gefunden wird oder die Payload Prozesse der virtuellen Maschine erkennt, kann die Payload angewiesen werden, den Vorgang zu beenden, um eine Erkennung zu vermeiden.

Alternativ kann der Bedrohungsakteur entscheiden, zusätzliche Umgehungstechniken einzusetzen, um den EDR zu umgehen, oder sogar versuchen, andere Mittel zu verwenden, um den EDR-Prozess vollständig zu beenden.
Discovery hilft auch dabei, den Wert des kompromittierten Systems zu bestimmen. Handelt es sich zum Beispiel um einen Produktionsdatenbankserver oder ein Zahlungssystem mit wertvollen Kundendaten? Je kritischer das System für ein Unternehmen ist, desto wahrscheinlicher ist es, dass ein Lösegeld dafür gezahlt wird.
Prozessmanipulation: Living-off-the-Land (LotL) Binärdateien
Ein weiterer nützlicher Informationssatz sind systembezogene Informationen wie Betriebssystem, Sprachstandort sowie installierte oder fehlende Hotfixes und Updates. Diese Art von Informationen kann helfen, weitere Angriffe wie Schwachstellen-Exploits zu planen.
Unter der Annahme, dass der EDR-Prozess nicht gefunden wurde, wird die Nutzlast fortgesetzt, da der Bedrohungsakteur möglicherweise sicher ist, mit anderen Nutzlasten umzugehen. Nach der Überprüfung der Prozessinformationen verwendet die ausführbare Nutzlast der Stufe 1 eine Living-off-the-Land-Technik und startet eine separate Windows-Eingabeaufforderung, wie im folgenden Beispiel gezeigt.

Nachdem die Eingabeaufforderung gestartet wurde, übergibt die Nutzlast einige Windows-Befehle, damit sie ausgeführt werden kann. Dieser Befehl generiert Systeminformationen wie Systemtyp, Prozessorinformationen, Verfügbarkeit und Hotfixes. Ein Schnappschuss der Ausgabe ist im untenstehenden Beispiel in rotem Text dargestellt.

Stage-2 dynamische Linkbibliothek (DLL)
Wie in den vorherigen Artikeln erläutert, enthält eine DLL-Datei Computercode, der nicht allein ausgeführt werden kann. In unserem Beispiel verwendet die Stage-1-EXE also auch Code in der Stage-2-DLL, um den Rest des Angriffszyklus abzuschließen.
Level-1 EXE Ladestufe-2 DLL-Nutzlast
Nachdem die EXE-Payload der Stufe 1 ihre Aktionen abgeschlossen hat, fährt sie mit dem Laden der DLL-Nutzlast der Stufe 2 fort. Die DLL-Payload enthält den Code, der für die letzten Phasen des Angriffs verwendet wird, d. h. um nach Laufwerken auf dem System zu suchen und dann ausgewählte Dateien auf diesen Laufwerken zu verschlüsseln.

Der DLL-Code führt zunächst eine Festplattenprüfung durch, um die Festplatten auf dem infizierten System zu finden, und listet nützliche Informationen zu jedem einzelnen auf. Von der obigen Darstellung sind besonders interessante Informationen über die Laufwerke im System, die bereit sind, im Vergleich zu denen, die es nicht sind. Dies hilft, die Dateien auf den richtigen Laufwerken für die Verschlüsselung zu steuern und Fehler zu vermeiden, indem versucht wird, auf Laufwerken zu arbeiten, die schreibgeschützt sind oder nicht zugänglich sind.
Verschlüsselung
Zu diesem Zeitpunkt ist die Verschlüsselung für das Lösegeld nun bereit. Der Verschlüsselungscode in der DLL der Stufe 2 sucht zunächst nach einer Liste von Textdateien im Verzeichnis. Dies liegt daran, dass wir in dieser letzten Demonstration nur Textdateien verschlüsseln werden. Die Payload zeigt dann alle gefundenen Textdateien an.

Die erkannten Dateien werden dann von der Nutzlast verschlüsselt. Die Dateierweiterungen werden ebenfalls in ".encrypted" geändert, um die verschlüsselten Textdateien anzuzeigen.

Unten sehen wir auch die Vorher-Nachher-Bilder des Verzeichnisses, in dem sich die Textdateien befinden, und zeigen die Änderungen nach der Verschlüsselung.

Schließlich kommt die Lösegeldforderung: Diese macht den Benutzer in der Regel darauf aufmerksam, dass seine Dateien verschlüsselt wurden. Es weist sie auch an, wie sie das Lösegeld zahlen und den Entschlüsselungsschlüssel zum Entschlüsseln der Dateien erhalten können. In vielen Fällen garantiert die Zahlung des Lösegelds nicht automatisch den Zugriff auf den Entschlüsselungsschlüssel.

Beachten Sie, dass wir in unserem Beispiel den gesamten Verschlüsselungscode in eine DLL-Datei gelegt haben, die zu unserer Nutzlast für Stufe 2 wurde. Dies liegt hauptsächlich daran, dass, wie in den vorherigen Artikeln besprochen, eine DLL eine Bibliotheksdatei ist, was bedeutet, dass sie wiederverwendet werden kann. Wenn wir uns zum Beispiel als Angreifer entscheiden, eine völlig andere EXE-Nutzlast der Stufe 1 zu verwenden, müssen wir vielleicht wegen neuer Evasion-Verbesserungen in Zukunft den Verschlüsselungsteil unseres Nutzlastcodes nicht neu schreiben, um diese neue Angriffskampagne abzuschließen. Wir können unsere neue Nutzlast einfach mit der bestehenden Stage-2-DLL-Datei koppeln und die neue EXE die DLL-Datei laden lassen, um Dateien zu verschlüsseln.
Minderung gegen Ransomware
Letztendlich wird Ransomware drei Hauptgrenzen der Infektion, der Ausführung und der Persistenz nutzen.
Diese können grob kategorisiert werden als:
- Dateisystem
- Registrierung
- Gedächtnis
- Netzwerk (remote und lokal – laterale Bewegung)
Verteidiger müssen daher die richtigen Toolsets aufbauen und sie auf die richtige Weise nutzen, um eine effektive Sicherheitsminderung zu gewährleisten. Im dritten Teil der vorherigen Serie über Malware-Payloads und Beacons gibt es einen detaillierteren Überblick über die Defense-in-Depth-Abwehr, die auf der Philosophie der Annahme von Sicherheitsverletzungen und Cyber-Resilienz aufbaut.
In dieser dreiteiligen Serie wurde gezeigt, wie die verschiedenen Taktiken und Techniken, die von Malware und insbesondere Ransomware verwendet werden, zustande kommen können. Durch das Verständnis dieser verschiedenen Taktiken und Techniken können Verteidiger ihre bestehenden Cyber-Richtlinien und -Abwehrmaßnahmen besser bewerten, um wirksame Gegenmaßnahmen zu ergreifen.
Möchten Sie mehr darüber erfahren, wie Sie Ihr Unternehmen vor Ransomware und Sicherheitsverletzungen schützen können? Kontaktieren Sie uns noch heute.



