Keksec & Tsunami-Ryuk
June 10, 2021
Cloud Security Researcher – Lacework Labs
Schlüsselerkentnisse
- Keksec nutzt jetzt eine neue Tsunami-DDoS-Malware mit dem Namen „Ryuk“ (nicht die Ransomware-Familie)
- Die Gruppe hat ihren DGA-Algorithmus aktualisiert, der von der Python-Malware Necro verwendet wird
- Ein Inventar der Malware-Verteilungsinfrastruktur von Keksec wird bereitgestellt
- Neue Personendaten sind enthalten
Keksec, alias Necro oder Freakout, ist ein erfolgreicher Akteur, der mit dem Ziel von Crypto-Mining und DDos-Abläufen die Cloud-Infrastruktur ins Visier nimmt. Die Gruppe hat es vor kurzem wieder in die Nachrichten geschafft, indem sie ihre Infrastruktur und Fähigkeiten mit neuen Exploits und Verbreitungstechniken erweitert hat. Dieser Blog wirft einen umfassenden Blick auf die Intrusion-Infrastruktur von Keksec und enthält bisher unveröffentlichte Inhalte wie die Verwendung einer neuen Tsunami-Variante namens Ryuk, einen neuen DGA-Algorithmus und neue Personendaten.
Necro – DGA
Necro ist der Name für die Python-IRC-Malware und das Botnet von Keksec, wobei die neueste Version von Talos dokumentiert wird. Die Malware zeichnet sich durch ihre einzigartige Verschleierung aus, die eine Kombination aus zlib-Datenkomprimierung und einem Multibyte-XOR-Schlüssel nutzt. Im März 2021 veröffentlichte Lacework Labs ein Skript, das auch diese neueste Variante dekodiert.
In der neuesten Version wurden bedeutende Aktualisierungen vorgenommen, um Exploits einzuschließen, die auf Vesta Control Panel, ZeroShell 3.9.0, SCO OpenServer 5.0.7 und vCenter von VMWare (CVE-2021-21972) abzielen. Die Malware versucht nun auch, sich über SSH-Brute-Forcing zu verbreiten. Auch ein neuer DGA-Algorithmus wurde aufgenommen, der der vorherigen Necro-Version sehr ähnlich ist, aber ein paar kleine Änderungen bei den Parametern „see“ und „random range“ aufweist.
DGA component | old | new |
seed | 0x7774DEAD | 0x7228827A |
randrange parameters | range(random.randrange(10,19)))).lower() | range(random.randrange(8,19)))).lower() |
Zwei DGA-Domains wurden bisher beobachtet. Es gibt insgesamt 255 mögliche Domains. Bisher hat Keksec nur die ersten paar Domains verwendet, bevor das DGA-Schema geändert wurde, daher ist es möglich, dass dies auch dieses Mal der Fall sein wird
- ngiwge486ln9daoo.hopto.org
- can6dodp.servepics.com
Dieses Skript kann verwendet werden, um diese neuen DGA-Domains zu generieren.
Malware-Verteilungsinfrastruktur
Die Infrastruktur von Keksec besteht hauptsächlich aus 20 Hosts und ist um URI-Pfadnamen in Download-URLs herum angeordnet. Zu den am häufigsten verwendeten zählen „/Ryuk/“,„/Simps/“ und „/S1eJ3/“. Beispiele:
- http://107.172.156.158/Ryuk/ur0a.x86_64
- http://206.81.26.46/Simps/mipsel
- http://23.95.80.200/SimpsX/m68k
- http://45.144.225.65/S1eJ3/IObeENwjspc
Die folgende Tabelle listet diese Hosts auf, geordnet nach der Anzahl der Malware-Dateien (von 01.01. bis 09.06.2021). Einige Hosts sind für die oben genannten URI-Pfade eindeutig, während sich andere überschneiden.
Host | ASN | country | Hosted malware count | URI Path name(s) |
195.133.40.24 | “SPDNet Telekomunikasyon Hizmetleri Bilgi Teknolojileri Taahhut Sanayi Ve Ticaret A.S.” | Russia | 235 | S1eJ3 & Simps |
45.145.185.83 | 213035:”Des Capital B.V.” | Netherlands | 81 | S1eJ3 |
45.14.224.127 | 62068:”SpectraIP B.V.” | Netherlands | 55 | Ryuk & Simps |
185.224.129.235 | 62068:”SpectraIP B.V.” | Netherlands | 54 | Ryuk & Simps |
185.224.129.224 | 62068:”SpectraIP B.V.” | Netherlands | 40 | Simps |
45.144.225.65 | 35913:”DEDIPATH-LLC” | United States | 39 | S1eJ3 |
23.95.80.200 | 36352:”AS-COLOCROSSING” | United States | 34 | fagggotbaggot, Simps, SimpsX |
45.144.225.96 | 35913:”DEDIPATH-LLC” | United States | 29 | S1eJ3 |
45.153.203.124 | 213035:”Des Capital B.V.” | Netherlands | 18 | S1eJ3 |
206.81.26.46 | 14061:”DIGITALOCEAN-ASN” | Germany | 15 | Simps |
45.14.224.197 | 62068:”SpectraIP B.V.” | Netherlands | 15 | Simps |
185.203.116.7 | 44901:”Belcloud LTD” | Bulgaria | 14 | S1eJ3 |
172.245.36.128 | 36352:”AS-COLOCROSSING” | United States | 13 | S1eJ3 |
b0tz.xyz | NA | NA | 8 | Simps & SimpsX |
107.172.156.158 | 36352:”AS-COLOCROSSING” | United States | 5 | Ryuk |
45.14.224.200 | 62068:”SpectraIP B.V.” | Netherlands | 4 | Simps |
164.90.164.132 | 14061:”DIGITALOCEAN-ASN” | Germany | 3 | S1eJ3 |
134.122.78.91 | 14061:”DIGITALOCEAN-ASN” | Germany | 1 | Simps |
192.236.146.182 | 54290:”HOSTWINDS” | United States | 1 | Ryuk & S1eJ3 |
Der aktivste Host ist weiterhin die IP 195.133.40.43, die hauptsächlich im „S1eJ3“-Teil der Infrastruktur zur Bereitstellung der Tor-basierten Tsunami-Variante von Keksec verwendet wird. Lacework Labs hat diese Malware in einem Blog ausführlich beschrieben – The "Kek Security" Network. Zum Zeitpunkt dieser Analyse verwendete Keksec unter .onion den C2-Host vp3te7pkfczmnnl.onion. Die neuen Exemplare verwenden jedoch den Host dimumdjenyy4jwlc.onion zusammen mit demselben Chiffrierschlüssel, der für die Entschlüsselung verwendet wird:
%q*KC)&F98fsr2to4b3yi_:wB>z=;!k?”EAZ7.D-md<ex5U~h,j|$v6c1ga+p@un
Tsunami-Ryuk
Eine neue Komponente im Malware-Inventar von Keksec ist eine weitere Tsunami-basierte DDoS-Malware mit dem Namen „Ryuk“. Insgesamt wurden 83 Exemplare identifiziert, von denen die ersten im Zeitraum von Mitte Mai bis Mitte Juni auftauchten. Dieser Name ist nicht zu verwechseln mit der Ransomware Ryuk und stellt höchstwahrscheinlich eine Anspielung auf den fiktiven Charakter aus der Manga-Serie „Death Note“ dar. Außerdem gibt es Hinweise darauf, dass die Malware in den SSH-Brute-Forcing-Kampagnen von Necro als Payload verwendet wird. So berichten mehrere Kommentare in VirusTotal, dass die Dateien in SSH-Honeypots beobachtet wurden.
Es gibt verschiedene Varianten von Ryuk, die von der zuvor beschriebenen „Ryuk“-Komponente der Keksec-Infrastruktur gehostet werden. Viele Exemplare sind UPX-verpackt und nutzen außerdem eine einfache Kodierungsmethode, um C2-IPs zu verschleiern, sowie eine Nachricht, die in eine Protokolldatei geschrieben wird. Die kodierte Version ist statisch als folgende Zeichenkette beobachtbar:
Ymnx2Ij{nhj2Nx2Nskjhyji2G~2W~zp2Gtysjy2Nsxyflwfr?Ezw5fdInxhtwi?ZW5F(76>>2W~zp(9;:7
Die entschlüsselte Nachricht offenbart Instagram- und Discord-Konten.
This-Device-Is-Infected-By-Ryuk-Botnet-Instagram:@ur0a_Discord:UR0A#2199-Ryuk#4652
Der Name der für die Dekodierung verantwortlichen Funktion in der Binärdatei lautet „util_encryption“. Das Programm vermindert einfach jedes Zeichen in der Zeichenkette um den Wert 5. Die Untersuchung der Funktion xrefs ergab, dass sie zur Dekodierung des Inhalts der Protokolldatei, C2 und DDoS-Befehlen genutzt wird. Die Suche nach diesem Artefakt in VirusTotal ergab eine Reihe weiterer Tsunami-Varianten mit einem ähnlichen Dekodierungs-Routing gleichen Namens, aber mit einer Verminderung um den Wert 1 statt 5.
![]() |
Abbildung 1. Dekodierprogramm IDS Pro von Tsunami-Ryuk
Das folgende Python-Skript kann für die Dekodierung dieser Ryuk-Konfigurationen sowie für andere Malware mit ähnlichen Methoden verwendet werden.
ryuk_strings = ['Ymnx2Ij{nhj2Nx2Nskjhyji2G~2W~zp2Gtysjy2Nsxyflwfr?Ezw5fdInxhtwi?ZW5F(76>>2W~zp(9;:7','9:3693779367<'] for str_ in ryuk_strings: decoded_ = [] for s in str_: decrement = chr(ord(s) - 5) decoded_.append(decrement) print ''.join(decoded_)Decoding Script for Ryuk configs
There are a few other Ryuk variants, with plaintext versions of the log file contents and c2 IP addresses. This message is consistent with Keksec’s habit of self-attributing malware and infrastructure.
This Device Has Been Infected by Ryuk Botnet Made By ur0a And Keksec Group 🙂
Additionally, the ‘ur0a’ handle is also used for several of the Ryuk payload names. For example:
- ur0a.mipsel
- ur0a.mips
- ur0a.i686
Soziale Medien
Wie TeamTNT ist auch Keksec berüchtigt für Eigenwerbung. Dies wurde in den Artefakten der Ryuk-Malware deutlich, die Social-Media-Informationen für Discord und Instagram auflisten. Während sich das Discord-Konto als Sackgasse herausstellte, ist das Instagram-Konto online.
![]() |
Abbildung 2. Instagram-Konto der Akteure
Das Instagram-Konto „ur0a_“ enthält keine Beiträge, folgt jedoch einigen anderen Konten von Interesse. Eines dieser Konten trägt den Namen „hellabootersonbotnet“. Am 10. Mai wurde auf diesem Konto ein Screenshot des IRC-Kontrollkanals von Necro gepostet. Der Kanal wurde aufgrund der IRC-Nachrichten als Necro identifiziert, insbesondere durch die Artefakte MB RAM total und die [HAX| in den IRC-Nachrichten. Diese sind als Formatierungs-Zeichenketten im Quellcode von Necro zu sehen. Zusätzlich erwähnt das Konto Freakout als Kommentar zu dem Beitrag „Freak out on top“.
![]() |
Abbildung 3. IRC-Bots von Necro – „hellabootersonbotnet“ Instagram
Keksec aktualisiert häufig das Toolset und die Exploits-Suite und wird so zu einer sich weiterentwickelnden Bedrohung. Glücklicherweise erleichtert ihre Angewohnheit, Malware und Infrastruktur selbst zuzuordnen, die Verfolgung. Indikatoren und Tools für diese Aktivität finden Sie auf unserem GitHub. Wenn Sie diesen Blog hilfreich fanden, dann teilen Sie ihn bitte und folgen Sie uns auf LinkedIn und Twitter!