Ransomware-Autoren experimentieren ständig mit der Entwicklung von Payloads in verschiedenen Dimensionen. Im Laufe der Implementierungen von Ransomware haben wir die Entwicklung von einer einfachen Bildschirmsperre zu einem Mehrkomponentenmodell für die Dateiverschlüsselung beobachtet, von einem einfachen Ansatz zu einem hochentwickelten. Die Ransomware als Werkzeug hat sich in der Wildnis entwickelt und eines davon wurde im Quick Heal-Labor empfangen. Diese Probe wird identifiziert als LockerGoga und es ist einzigartig, da es als Tool fungiert, das verschiedene Optionen zur Durchführung der Verschlüsselung bietet.
Wie jedes Standard-Kommandozeilentool zeigt LockerGoga Ransomware Hilfeinformationen zur Referenz an. Bei Ausführung mit dem Parameter -h werden Optionen wie „-v“ für die Druckversion von LockerGoga und „-m“ (E-Mail-ID als Argument) angezeigt, um die E-Mail-Adresse des Angreifers für die Zahlung anzugeben, falls das Opfer verschlüsselte Dateien entschlüsseln möchte. Dieselbe E-Mail-Adresse wird in der Lösegeldforderung genannt, um den Preis des Entschlüsselers zu erfragen.

LockerGoga verwendet die Boost-Bibliothek zum Parsen von Befehlszeilenargumenten.

Die letzte Option im Befehlszeilentool „-p“ ermöglicht die Auswahl des Prozesses, in den Schadcode eingeschleust werden soll. Wenn kein Prozessname angegeben wird, wird der Code standardmäßig in „winlogon.exe“ eingeschleust.
Das erhaltene Beispiel enthält vier ausführbare Komponenten, wie z. B.
- encrypt32.dll
- encrypt64.dll
- {random_name}.exe (32 Bit)
- {random_name}.exe (64 Bit)
Bei der Ausführung legt die Malware die DLL-Komponente gemäß der oben genannten Systemarchitektur am Speicherort %AppData%/Local/Temp ab
Anschließend wird der Shell-Code und der öffentliche RSA-Schlüssel (1024 Bit) in den Prozess „winlogon.exe“ oder in den als Argument angegebenen Prozess eingefügt. Der eingefügte Shell-Code wird verwendet, um die abgelegte encrypt**.dll mithilfe von ldrloaddll zu laden.
Die encrypt**.dll verfügt über die Exportfunktion „encryptStart“. Diese Funktion enthält Code zum Auflisten aller Laufwerke und Ordner, um eine Liste der darin enthaltenen Dateien zu erstellen. Die gesamte Dateiliste wird in der Datei C:\cl.log gespeichert.

Für jede einzelne in C:\cl.log aufgeführte Datei wird eine ausführbare Datei mit {random name}.exe in %AppData%/Local/Temp oder C:\Windows\Temp abgelegt, abhängig von der 64- oder 32-Bit-Architektur des Systems, und diese {random_name}.exe wird in einer Schleife mit -k{public key} {file_path(ie zu verschlüsselnde Datei)} als Befehlszeilenargument aufgerufen.
Das Besondere an LockerGoga Ransomware ist, dass für jede einzelne Datei ein neuer Prozess erstellt wird, der die Datei verschlüsselt und den Prozess beendet. Auf diese Weise kann es Anti-Ransomware-ProduktWährend die Verschlüsselung stattfindet, verbraucht sie die meisten CPU-Ressourcen (fast bis zu 90 %).

Nach Abschluss der Verschlüsselung jeder Datei wird der Dateiname in C:\cl.log geschrieben.
Verschlüsselungsprozess:
Es verwendet zwei Verschlüsselungsalgorithmen: AES-128 Bit für die Verschlüsselung von Dateiinhalten und RSA-1024 Bit zum Verschlüsseln des AES-Schlüssels, der für die Verschlüsselung von Dateiinhalten verwendet wird.
Generierung des AES-Schlüssels:
Zunächst wurde die API „CryptGenRandom“ verwendet, um einen Zufallsstartwert von 32 (20h) Bytes zu generieren. Anschließend wurden weitere 32 (20h) Bytes aus dem Ressourcenabschnitt verwendet, um einen Schlüsselstapel von 40h Bytes zu erstellen, der zum Generieren des AES-Schlüssels verwendet wurde.
Neben der Boost-Bibliothek implementiert LockerGoga die Crypto++-Bibliothek für den Verschlüsselungsprozess, was das Umkehren der Probe sehr schwierig macht.


Die Implementierung der Crypto++-Bibliothek ermöglicht den neuen AES-Befehlssatz (AES-NI), der 2009 von Intel eingeführt wurde.
AESKEYGENASSIST und AESENC-Anweisungen werden verwendet, um die AES-Verschlüsselung zu implementieren.
AESKEYGENASSIST wird für die Rundenschlüsselerweiterung verwendet und AESENC wird verwendet, um eine Rundenverschlüsselung von AES durchzuführen.


Nach allen oben genannten Vorgängen werden 32-Byte-Daten generiert, von denen 16 Bytes als Schlüssel und die anderen 16 Bytes als Initialisierungsvektor (IV) verwendet werden.

Malware ändert die Dateierweiterung vor der Verschlüsselung in .locked.

![]()

Der bei der Verschlüsselung verwendete öffentliche Schlüssel liegt im PEM-Format vor

Konvertieren Sie sie in das unten gezeigte Microsoft Blob-Format.


Zusammen mit Key (10h), IV (10h) und 8h werden die als Dateigröße verwendeten Bytes (also die zu verschlüsselnde Datei) mit RSA-1024 Bit mit „MGF1 (SHA-1)“ (also Maskengenerierungsfunktion für das OAEP-Auffüllschema) verschlüsselt und an das Ende der Datei angehängt.

Anschließend verschlüsselt es den Dateiinhalt mit AES-Schlüssel und IV im CTR-Modus mit einer Schlüssellänge von 128 Bit.
Fazit:
LockerGoga hat einen einzigartigen und seltenen Mechanismus zum Verschlüsseln von Dateien gezeigt, indem ein Master- und mehrere Slave-Prozesse erstellt wurden.
Hauptmerkmale:
Verwenden Sie die Boost-Bibliothek zur Durchführung komplexer mathematischer Berechnungen.
Anstatt die Microsoft Crypto API zur Verschlüsselung zu verwenden, wurde die Crypto++-Bibliothek (Boost Software License) implementiert.
IoCs:
1E8A6AABF4ADF3AE1890A4C8A2CFF276 – LockerGoga
91976DBD489FEAE2D8719545C8DE304A- encrypt32.dll
174E3D9C7B0380DD7576187C715C4681-encrypt64.dll
E9E6EBC6A0D5183FC8E66472B3419F1E-{random_name}.exe-64 bit
A52F26575556D3C4ECCD3B51265CB4E6 – {random_name}.exe-32 bit
Fachexperten:
Goutam Tripathie, Rahul Sharma, Manisha Prajapati | Quick Heal Security Labs



