Wie funktioniert Ryuk Ransomware, die Unternehmen angreift?



Ryuk ist eine der bekanntesten Ransomware-Optionen der letzten Jahre. Seit seinem ersten Erscheinen im Sommer 2018 hat er eine beeindruckende Liste von Opfern zusammengestellt , insbesondere im Geschäftsumfeld, das das Hauptziel seiner Angriffe ist.

1. Allgemeine Information


Dieses Dokument enthält eine Analyse der Ryuk-Ransomware-Option sowie des Bootloaders, der für das Herunterladen der Malware auf das System verantwortlich ist.

Ryuk Ransomware erschien erstmals im Sommer 2018. Einer der Unterschiede zwischen Ryuk und anderer Ransomware besteht darin, dass Unternehmensumgebungen angegriffen werden sollen.

Mitte 2019 griffen Cyber-Kriminalitätsgruppen mit Hilfe dieses Kryptors eine große Anzahl spanischer Unternehmen an.


Feige.


Abbildung
1: Auszug aus El Confidencial zum Ryuk-Ransomware-Angriff [1] 2: Auszug aus El País über einen Angriff von Ryuk Ransomware [2] In
diesem Jahr griff Ryuk eine große Anzahl von Unternehmen in verschiedenen Ländern an. Wie Sie in den folgenden Zahlen sehen können, haben Deutschland, China, Algerien und Indien am meisten gelitten.

Wenn man die Anzahl der Cyber-Angriffe vergleicht, kann man sehen, dass Millionen von Benutzern von Ryuk betroffen waren und die riesige Datenmenge kompromittiert wurde, was zu ernsthaften wirtschaftlichen Schäden führte.


Feige. 3: Illustration von Ryuks globaler Aktivität.


Feige. 4: 16 am stärksten betroffenen Ländern von Ryuk


Abb. 5: Anzahl der von Ryuk-Ransomware angegriffenen Benutzer (in Millionen)

Nach dem üblichen Funktionsprinzip solcher Bedrohungen zeigt diese Ransomware dem Opfer nach Abschluss der Verschlüsselung eine Lösegeldbenachrichtigung an, die in Bitcoins an die angegebene Adresse gezahlt werden muss, um den Zugriff auf verschlüsselte Dateien wiederherzustellen.

Diese Malware hat sich seit ihrem ersten Auftreten geändert.
Eine in diesem Dokument analysierte Variante dieser Bedrohung wurde bei einem Versuch entdeckt, im Januar 2020 einen Angriff zu starten.

Aufgrund ihrer Komplexität wird diese Malware häufig organisierten Cyberkriminellen zugeschrieben, die auch als APT-Gruppen bezeichnet werden.

Ein Teil des Ryuk-Codes hat eine bemerkenswerte Ähnlichkeit mit dem Code und der Struktur eines anderen bekannten Hermes-Kryptographen, mit dem sie eine Reihe identischer Funktionen haben. Aus diesem Grund war Ryuk ursprünglich mit der nordkoreanischen Gruppe Lazarus verbunden, die zu dieser Zeit im Verdacht stand, hinter der Hermes-Ransomware zu stehen.

Anschließend stellte Falcon X von CrowdStrike fest, dass Ryuk tatsächlich von WIZARD SPIDER erstellt wurde [4].

Es gibt einige Beweise, die diese Annahme stützen. Erstens wurde diese Ransomware auf der Exploit.in-Website beworben, die ein bekannter russischer Malware-Markt ist und zuvor mit einigen russischen APT-Gruppen in Verbindung gebracht wurde.
Diese Tatsache schließt die Theorie aus, dass Ryuk von der Lazarus APT-Gruppe entwickelt werden könnte Dies entspricht nicht der Art und Weise, wie sich die Gruppe verhält.

Darüber hinaus wurde Ryuk als Verschlüsseler angepriesen, der auf russischen, ukrainischen und belarussischen Systemen nicht funktioniert. Dieses Verhalten wird durch die in einigen Versionen von Ryuk gefundene Funktion bestimmt, bei der die Sprache des Systems überprüft wird, in dem dieser Verschlüsseler ausgeführt wird, und der Betrieb beendet wird, wenn das System Russisch, Ukrainisch oder Weißrussisch hat. Schließlich wurden bei einer Expertenanalyse einer Maschine, die von der WIZARD SPIDER-Gruppe gehackt wurde, mehrere „Artefakte“ entdeckt, die angeblich bei der Entwicklung von Ryuk als Variante des Hermes-Kryptors verwendet wurden

Andererseits schlugen die Experten Gabriela Nicolao und Luciano Martins vor, dass der Kryptograf möglicherweise vom CryptoTech APT-Team entwickelt wurde [5].
Dies folgt aus der Tatsache, dass diese Gruppe einige Monate vor dem Erscheinen von Ryuk Informationen im Forum derselben Website veröffentlichte, auf der sie eine neue Version der Hermes-Ransomware entwickelt hatte.

Mehrere Forumbenutzer haben sich gefragt, ob CryptoTech Ryuk wirklich erstellt hat. Danach verteidigte sich diese Gruppe und gab an, Beweise dafür zu haben, dass sie 100% dieses Verschlüsselers entwickelt hatte.

2. Eigenschaften


Wir beginnen mit dem Bootloader, dessen Aufgabe es ist, das System zu identifizieren, in dem er sich befindet, damit Sie die „richtige“ Version des Ryuk-Verschlüsselers ausführen können.
Der Bootloader-Hash lautet wie folgt:

MD5 A73130B0E379A989CBA3D695A157A495
SHA256 EF231EE1A2481B7E627921468E79BB4369CCFAEB19A575748DD2B664ABC4F469

Eine der Funktionen dieses Bootloaders enthält keine Daten. Die Ersteller dieser Malware haben keine Informationen darin aufgenommen.

Manchmal enthalten sie fehlerhafte Daten, um den Benutzer glauben zu lassen, dass er angeblich eine legitime Anwendung startet. Wie wir später sehen werden, halten es die Angreifer jedoch nicht für erforderlich, Metadaten zu verwenden, falls die Infektion keine Interaktion mit dem Benutzer beinhaltet (wie dies bei diesem Verschlüsseler der Fall ist).


Feige. 6:

Beispiel- Metadaten Das Beispiel wurde im 32-Bit-Format kompiliert, sodass es sowohl auf 32-Bit- als auch auf 64-Bit-Systemen ausgeführt werden kann.

3. Penetrationsvektor


Das Beispiel, mit dem Ryuk heruntergeladen und gestartet wird, wurde über eine Remoteverbindung in unser System eingegeben, und die Zugriffsparameter wurden dank eines vorläufigen RDP-Angriffs ermittelt.


Feige. 7: Angriffsregistrierung Ein

Angreifer konnte sich remote bei einem System anmelden. Danach erstellte er eine ausführbare Datei mit unserem Beispiel.
Diese ausführbare Datei wurde vor dem Start von einer Antivirenlösung blockiert.


Feige. 8: Blockieren der Probe



Abb. 9: Beispielsperre

Wenn eine schädliche Datei blockiert wurde, versuchte der Angreifer, eine verschlüsselte Version der ausführbaren Datei herunterzuladen, die ebenfalls blockiert wurde.


Feige. 10: Eine Reihe von Beispielen, die ein Angreifer ausführen wollte.

Schließlich versuchte er, eine andere schädliche Datei über eine verschlüsselte Konsole herunterzuladen
PowerShell, um den Virenschutz zu umgehen. Er wurde aber auch blockiert.


Feige. 11: PowerShell mit dem blockierten schädlichen Inhalt


Abb. 12: PowerShell mit blockierten schädlichen Inhalten

4. Bootloader


Wenn es ausgeführt wird, schreibt es die ReadMe-Datei in den für Ryuk typischen Ordner % temp% . Diese Datei - eine Lösegeldforderung mit einer Protonmail-Domain für die E-Mail-Adresse, die in dieser Malware-Familie häufig vorkommt: msifelabem1981@protonmail.com




Abb. 13: Einlösungsanforderung

Während der Ausführung des Bootloaders können Sie sehen, dass mehrere ausführbare Dateien mit zufälligen Namen gestartet werden. Sie werden in einem versteckten PUBLIC- Ordner gespeichert. Wenn die Option „Versteckte Dateien und Ordner anzeigen“ im Betriebssystem nicht aktiv ist , bleiben sie ausgeblendet. Darüber hinaus sind diese Dateien 64-Bit im Gegensatz zur übergeordneten Datei, die 32-Bit ist.




Feige. 14: Vom Beispiel gestartete ausführbare Dateien

Wie Sie in der obigen Abbildung sehen können, startet Ryuk icacls.exe, mit der alle ACLs (Access Control List) geändert werden, um den Zugriff zu gewährleisten und Flags zu ändern.

Es erhält unter allen Benutzern vollen Zugriff auf alle Dateien auf dem Gerät (/ T), unabhängig von Fehlern (/ C) und ohne Meldungen (/ Q).


Feige. Abbildung 15: Ausführungsoptionen für icacls.exe, die vom Beispiel gestartet wurden.

Es ist wichtig zu beachten, dass Ryuk überprüft, welche Windows-Version ausgeführt wird. Zu diesem Zweck wird
die Version mit GetVersionExW überprüft, wobei der Wert des Flags lpVersionInformation überprüft wirdZeigt an, ob die aktuelle Version von Windows später als Windows XP ist .





Je nachdem, ob Sie eine spätere Version als Windows XP ausführen, schreibt der Bootloader in den lokalen Benutzerordner - in diesem Fall in den Ordner % Public% .


Feige. 17: Überprüfen der Betriebssystemversion Die

aufgezeichnete Datei ist Ryuk. Dann startet es es und übergibt seine eigene Adresse als Parameter.


Feige. 18: Ausführen von Ryuk über ShellExecute

Als erstes ruft Ryuk die Eingabeparameter ab. Dieses Mal gibt es zwei Eingabeparameter (die ausführbare Datei selbst und die Dropper-Adresse), mit denen ihre eigenen Spuren entfernt werden.




Feige. 19: Erstellen eines Prozesses

Sie können auch sehen, dass er sich selbst löscht, sobald er seine ausführbaren Dateien gestartet hat, und somit keine Spur seiner Anwesenheit in dem Ordner hinterlässt, in dem er ausgeführt wurde.


Feige. 20: Löschen von Dateien

5. RYUK


5.1 Präsenz
Ryuk versucht wie andere Malware, so lange wie möglich auf dem System zu bleiben. Wie oben gezeigt, besteht eine Möglichkeit, dieses Ziel zu erreichen, darin, ausführbare Dateien heimlich zu erstellen und auszuführen. Zu diesem Zweck wird am häufigsten der Registrierungsschlüssel CurrentVersion \ Run geändert .
In diesem Fall können Sie sehen, dass zu diesem Zweck die erste ausführbare Datei VWjRF.exe
(der Dateiname wird zufällig generiert) cmd.exe startet .




Feige. 21: Ausführen der Datei VWjRF.exe

Anschließend wird ein RUN- Befehl mit dem Namen " svchos " eingegeben"Wenn Sie also die Registrierungsschlüssel jederzeit überprüfen möchten, können Sie diese Änderung aufgrund der Ähnlichkeit dieses Namens mit svchost leicht nicht bemerken. Dank dieses Schlüssels stellt Ryuk sicher, dass er im System vorhanden ist. Wenn das System noch nicht infiziert ist Wenn Sie das System neu starten, versucht die ausführbare Datei es erneut.


Abb. 22: Das Beispiel stellt sicher, dass der Registrierungsschlüssel vorhanden ist.

Wir können auch sehen, dass diese ausführbare Datei die beiden Dienste stoppt:
" audioendpointbuilder ", der, wie der Name schon sagt, mit dem System übereinstimmt Audio,


Abbildung 23: Beispiel stoppt den System-Audio-

und Samss-DienstDies ist ein Kontoverwaltungsdienst. Das Stoppen dieser beiden Dienste ist ein Merkmal von Ryuk. In diesem Fall versucht der Verschlüsseler, wenn das System mit dem SIEM-System verbunden ist, das Senden von Warnungen an SIEM zu beenden . Somit verteidigt er seine nächsten Schritte, da einige SAM-Dienste ihre Arbeit nach der Ausführung von Ryuk nicht korrekt starten können.


Feige. 24: Das Beispiel stoppt den Samss-Dienst.

5.2 Berechtigungen

Im Allgemeinen beginnt Ryuk mit einer horizontalen Bewegung innerhalb des Netzwerks oder wird von einem anderen Schadprogramm wie Emotet oder Trickbot gestartet , das im Falle einer Eskalation von Berechtigungen diese erhöhten Rechte an den Verschlüsseler überträgt.

Als Auftakt zum Implementierungsprozess sehen wir im Voraus, dass der ImpersonateSelf- Prozess ausgeführt wird . Dies bedeutet, dass der Sicherheitsinhalt des Zugriffstokens in den Stream übertragen wird, wo er sofort mit GetCurrentThread empfangen wird .


Feige. 25: ImpersonateSelf aufrufen

Dann sehen wir, dass das Zugriffstoken dem Stream zugeordnet wird. Wir sehen auch, dass eines der Flags DesiredAccess ist , mit dem der Zugriff des Streams gesteuert werden kann. In diesem Fall muss der Wert, den edx erhält, TOKEN_ALL_ACESS oder TOKEN_WRITE sein .




Feige. 26: Erstellen eines Stream-Tokens

Dann wird es verwendetSeDebugPrivilege ruft auf, um Debug-Debugging-Rechte für den Stream zu erhalten. Durch Angabe von PROCESS_ALL_ACCESS kann auf jeden erforderlichen Prozess zugegriffen werden. Da der Verschlüsseler bereits über einen vorbereiteten Stream verfügt, bleibt nur noch die letzte Stufe zu erreichen.


Feige. 27: Aufrufen von SeDebugPrivilege und die Funktion des Eskalierens von Rechten

Einerseits verfügen wir über LookupPrivilegeValueW, das uns die erforderlichen Informationen zu den Berechtigungen liefert, die wir erhöhen möchten.


Feige. 28: Informationen über Berechtigungen für deren Eskalation anfordern

Auf der anderen Seite verfügen wir über AdjustTokenPrivileges , mit denen wir die erforderlichen Rechte für unseren Stream erhalten können. In diesem Fall ist NewState das wichtigste .deren Flag Berechtigungen gewährt.




Feige. Abbildung 29: Festlegen von Rechten für das Token

5.3 Bereitstellung

In diesem Abschnitt wird gezeigt, wie das Beispiel den zuvor in diesem Bericht erwähnten Bereitstellungsprozess ausführt.

Das Hauptziel des Implementierungsprozesses sowie der Eskalation besteht darin, Zugriff auf Schattenkopien zu erhalten . Dazu muss er mit dem Stream arbeiten, dessen Rechte höher sind als die des lokalen Benutzers. Sobald er solche höheren Rechte erhält, löscht er die Kopien und nimmt Änderungen an anderen Prozessen vor, um die Rückkehr zu einem früheren Wiederherstellungspunkt im Betriebssystem zu verhindern.

Wie bei dieser Art von Malware üblich, wird CreateToolHelp32Snapshot verwendet , um die Implementierung abzuschließenDaher wird eine Momentaufnahme der aktuell ausgeführten Prozesse erstellt und versucht, mit OpenProcess auf diese Prozesse zuzugreifen . Sobald er Zugriff auf den Prozess erhält, öffnet er auch ein Token mit seinen Informationen, um Prozessparameter abzurufen.


Feige.

Abbildung 30: Empfangen von Prozessen von einem Computer Mit CreateToolhelp32Snapshot können wir dynamisch sehen, wie eine Liste der ausgeführten Prozesse in der Routine 140002D9C empfangen wird. Nachdem er sie erhalten hat, geht er die Liste durch und versucht, Prozesse nacheinander mit OpenProcess zu öffnen, bis er dies tun kann. In diesem Fall war der erste Prozess, den er öffnen konnte, "taskhost.exe" .


Feige. 31: Dynamische Ausführung einer Prozedur, um einen Prozess zu erhalten

Wir können sehen, dass er anschließend das Token des Prozesses liest, also OpenProcessToken mit der " 20008 "


Abb. 32: Lesen von Prozess-Token-Informationen

Es wird auch überprüft, ob der Prozess, in den es eingebettet wird, nicht csrss.exe , explorer.exe, lsaas.exe ist oder über eine Reihe von NT- Berechtigungen verfügt .


Feige. Abbildung 33: Ausgeschlossene Prozesse.

Wir können dynamisch sehen, wie zuerst anhand der Prozesstokeninformationen in 140002D9C überprüft wird , ob das Konto, dessen Rechte zur Ausführung des Prozesses verwendet werden, ein NT AUTHORITY- Konto ist .


Feige. 34: Überprüfen der NT-AUTORITÄT

Später wird außerhalb der Prozedur überprüft, ob es sich nicht um csrss.exe, explorer.exe oder lsaas.exe handelt .


Feige. 35: Überprüfen der NT-BEHÖRDE

Nachdem er eine Momentaufnahme der Prozesse erstellt, die Prozesse geöffnet und überprüft hat, dass keiner von ihnen ausgeschlossen ist, ist er bereit, die Prozesse aufzuschreiben, die im Speicher implementiert werden sollen.

Dazu reserviert er zunächst eine Region im Speicher ( VirtualAllocEx ), schreibt in diese ( WriteProcessmemory ) und erstellt einen Stream ( CreateRemoteThread ). Um mit diesen Funktionen zu arbeiten, verwendet er die PIDs der ausgewählten Prozesse, die er zuvor mit CreateToolhelp32Snapshot erhalten hat .


Feige. 36: Code einbetten

Hier können wir dynamisch beobachten, wie die Prozess-PID zum Aufrufen der VirtualAllocEx- Funktion verwendet wird .


Feige. Abbildung 37: Aufrufen der VirtualAllocEx

5.4-Verschlüsselung
In diesem Abschnitt wird ein Teil dieses Beispiels im Zusammenhang mit der Verschlüsselung beschrieben. In der folgenden Abbildung sehen Sie zwei Routinen mit den Namen " LoadLibrary_EncodeString " und " Encode_Func ", die für die Durchführung des Verschlüsselungsvorgangs verantwortlich sind.


Feige. 38: Verschlüsselungsverfahren

Zuerst können wir sehen, wie eine Zeichenfolge geladen wird, die später verwendet wird, um alles zu entschlüsseln, was benötigt wird: Importe, DLLs, Befehle, Dateien und CSPs.


Feige. 39: Deobfuscationskette

Die folgende Abbildung zeigt den ersten Import, den es im R4-Register LoadLibrary deobfusciert . Dies wird später verwendet, um die erforderlichen DLLs zu laden. Wir können auch eine andere Zeile in Register R12 sehen, die zusammen mit der vorherigen Zeile zur Durchführung der Deobfuscation verwendet wird.


Feige. 40: Dynamische Deobfuscation.

Er lädt weiterhin Befehle, die er später ausführen wird, um Sicherungen, Wiederherstellungspunkte und sichere Startmodi zu deaktivieren.


Feige. 41: Herunterladen von Befehlen

Anschließend wird der Speicherort geladen, an dem 3 Dateien abgelegt werden: Windows.bat, run.sct und start.bat .








Feige. 42: Dateispeicherorte

Diese 3 Dateien werden verwendet, um die Berechtigungen zu überprüfen, über die jeder Speicherort verfügt. Wenn die erforderlichen Berechtigungen nicht verfügbar sind, stoppt Ryuk die Ausführung.

Es werden weiterhin Zeilen geladen, die drei Dateien entsprechen. Die erste Datei , DECRYPT_INFORMATION.html , enthält die Informationen, die zum Wiederherstellen von Dateien erforderlich sind. Der zweite, PUBLIC , enthält den öffentlichen RSA-Schlüssel.


Feige. 43: String DECRYPT INFORMATION.html

Drittens enthält UNIQUE_ID_DO_NOT_REMOVE den verschlüsselten Schlüssel, der in der nächsten Routine zur Durchführung der Verschlüsselung verwendet wird.


Feige. 44: EINZIGARTIGE ID NICHT ENTFERNEN Zeichenfolge

Schließlich werden die erforderlichen Bibliotheken zusammen mit den erforderlichen Importen und CSP ( Microsoft Enhanced RSA) geladenund AES Cryptographic Provider ).


Feige. 45: Herunterladen von Bibliotheken

Nachdem die gesamte Deobfuscation abgeschlossen ist, werden die für die Verschlüsselung erforderlichen Aktionen ausgeführt: Über alle logischen Laufwerke iterieren, die in der vorherigen Unterroutine geladenen Aktionen ausführen, die Präsenz im System verstärken, die RyukReadMe.html-Datei löschen, verschlüsseln, iterieren alle Netzlaufwerke, die auf erkannte Geräte umschalten und deren Verschlüsselung.
Alles beginnt mit dem Herunterladen von " cmd.exe " und dem Schreiben des öffentlichen RSA-Schlüssels.


Feige. 46: Vorbereiten der Verschlüsselung

Anschließend werden alle logischen Laufwerke mit GetLogicalDrives abgerufen und alle Sicherungen, Wiederherstellungspunkte und sicheren Startmodi deaktiviert.


Feige. 47: Deaktivieren von Wiederherstellungstools

Danach verstärkt er seine Präsenz im System, wie wir oben gesehen haben, und schreibt die erste RyukReadMe.html- Datei in TEMP .


Feige.

Abbildung 48: Veröffentlichen einer Rückkaufbenachrichtigung In der folgenden Abbildung sehen Sie, wie eine Datei erstellt, der Inhalt heruntergeladen und geschrieben wird:


Abbildung. Abbildung 49: Herunterladen und Aufzeichnen des Inhalts einer Datei.

Um auf allen Geräten dieselben Aktionen ausführen zu können, wird
" icacls.exe " verwendet, wie oben gezeigt.


Feige. 50: Verwenden von icalcls.exe

Schließlich werden Dateien mit Ausnahme der Dateien "* .exe", "* .dll", Systemdateien und anderer Speicherorte verschlüsselt, die als verschlüsselte weiße Liste angegeben sind. Hierzu werden Importe verwendet: CryptAcquireContextW (wobei die Verwendung von AES und RSA angegeben ist), CryptDeriveKey, CryptGenKey , CryptDestroyKey usw. Es wird auch versucht, die Wirkung auf erkannte Netzwerkgeräte mithilfe von WNetEnumResourceW zu erweitern und diese dann zu verschlüsseln.


Feige. 51: Systemdateiverschlüsselung

6. Importe und verwandte Flags


In der folgenden Tabelle sind die wichtigsten Importe und Flags aufgeführt, die von der Stichprobe verwendet werden:



7. IOC




Verweise
  • users \ Public \ run.sct
  • Startmenü \ Programme \ Startup \ start.bat AppData \ Roaming \ Microsoft \ Windows \ Start
  • Menü \ ProgrammeStartup \ start.bat




Technischer Bericht der Ryuk Ransomware, zusammengestellt von PandaLabs-Experten für Antivirenlabors.

8. Referenzen


1. "Everis y Prisa Radio leidet unter schwerwiegenden ciberataque que secuestra sus sistemas." Https: // www. elconfidencial.com/tecnologia/2019-11-04/ everis-la-ser-ciberataque-ransomware-15_2312019 /, Publicada el 04/11/2019.

2. „Un virus de origen ruso ataca a importantes empresas españolas.“ Https: //elpais.com/ tecnologia / 2019/11/04 / actualidad / 1572897654_ 251312.html, Publicada el 04/11/2019.

3. „VB2019-Papier: Shinigamis Rache: der lange Schwanz der Ryuk-Malware.“ Https://securelist.com/ Geschichte-des-Jahres-2019-Städte-unter-Ransomware-Belagerung / 95456 /, Publicada el 11 /

12/2019 4. „Großwildjagd mit Ryuk: Eine weitere lukrative Ransomware.“ Https: // www. Crowdstrike.com/blog/big-game-hunting-with-ryuk-another-lucrative-targeted-ransomware/, Publicada el 01/10/2019.

5. "VB2019-Papier: Shinigamis Rache: der lange Schwanz der Ryuk-Malware." Https: // www. virusbulletin.com/virusbulletin/2019/10/ vb2019-paper-shinigamis-rache-long-tail-r

All Articles