Aus Linux-Magazin 08/2024

Linodas aka DinodasRAT für Linux

© kosobu / 123RF.com

Immer mehr cyberkriminelle Gruppen entdecken Linux für sich und adaptieren ihre bisher für Windows-Systeme ausgelegte Malware. In einer Studie haben Sicherheitsforscher Ransomware-Angriffe auf beide Betriebssysteme verglichen.

Seit 2021 steigt die Zahl der Ransomeware-Attacken auf Linux-Systeme stark an. Analysen von Sicherheitsforschern identifizieren einen Auslöser für die Entwicklung in der Veröffentlichung des Quellcodes der Babuk-Malware. Für Schlagzeilen sorgte im April 2024 eine Zero-Day-Lücke namens Xz-Backdoor in der Xz-Bibliothek. Die Bibliothek kommt unter anderem in der Datenbank PostgreSQL zum Einsatz – wer die Backdoor ausnutzt, hätte damit massiven Schaden hätte anrichten können. Linux rückt also mehr und mehr in den Fokus der Sicherheitsabteilungen, denn sie müssen auf die Bedrohungslage reagieren und ihre Open Source-Strategie hinsichtlich der erforderlichen Cybersecurity-Maßnahmen überdenken.

Seit Beginn des Jahres haben Sicherheitsforscher von Check Point Research (CPR) die Aktivitäten eines chinesischen Cyberspionage-Bedrohungsakteursuntersucht, der sich auf Südostasien, Afrika und Südamerika konzentriert. In seinem Tool-Set befindet die plattformübergreifende Backdoor DinodasRAT [1], auch bekannt als XDealer, die zuvor bei Angriffen des chinesischen Bedrohungsakteurs LuoYu beobachtet wurde.

Der Artikel befasst sich mit der technischen Analyse der Linux-Version (v11) von DinodasRAT, genannt Linodas. Sie scheint ausgereifter zu sein als die Windows-Version und verfügt über eine Reihe speziell auf Linux-Server zugeschnittener Funktionen. Darüber hinaus führt die untersuchte Version ein separates Umgehungsmodul ein, um Spuren von Malware im System zu verbergen. Dabei wird die Ausführung der System-Binärdateien durch Proxys modifiziert.

Die Ursprünge von Dinodas

Mehrere Hinweise deuten darauf hin, dass DinodasRAT ursprünglich auf dem Open-Source-Projekt SimpleRemote [2] basierte. Dahinter steckt ein Fernzugriffstool, das wiederum auf dem Gh0st RAT [3] beruht, aber einige zusätzliche Verbesserungen aufweist. Zu den Ähnlichkeiten zwischen SimpleRemote und einer älteren Version von DinodasRAT gehören das Verwenden derselben Zlib-Bibliothek in Version 1.2.11 sowie Überschneidungen im Code, beispielsweise die nahezu identisch ausfallende Funktion zum Erkennen der Betriebssystemversion (Abbildung 1).

Abbildung 1: Ähnlichkeiten in der Funktion zur Erkennung der Betriebssystemversion zwischen dem Dinodas-Beispiel (links) und dem Open-Source-Code. Quelle: Check Point Software

Abbildung 1: Ähnlichkeiten in der Funktion zur Erkennung der Betriebssystemversion zwischen dem Dinodas-Beispiel (links) und dem Open-Source-Code. Quelle: Check Point Software

Die Entwickler von DinodasRAT verwendeten aber nicht nur Teile des Quellcodes wieder, sondern auch zusätzlichen Open-Source-Code aus einem anderen Respository. Dabei handelt es sich um Funktionen für die Handhabung von INI-Dateien. Das letzte Beispiel dafür, dass Open-Source-Code in die Backdoor eingeflossen ist, ist die von den Entwicklern gewählte Verschlüsselungsmethode. Anstatt ihre eigene Methode zu implementieren, entschieden sie sich für die im QQ-Messenger eingesetzte Verschlüsselung.

Eigenständige Codebasis

Alle Beispiele des plattformübergreifenden DinodasRAT betten eine Zeichenfolge ein, die die interne Version der Backdoor enthält. In den Linux-Samples tauchen einige die Entwicklung der Backdoor widerspiegelnde Strings auf (Tabelle “Strings und die Entwicklung der Backdoor”).

Markierung

erstmals entdeckt

Hashes

Linux_%s_%s_%u_V7

Juli 2021

3d93b8954ed1441516302681674f4989bd0f20232ac2b211f4b601af0fcfc13bbf830191215e0c8db207ea320d8e795990cf6b3e6698932e6e0c9c0588fc9eff

Linux_%s_%s_%u_V10

Januar 2023

15412d1a6b7f79fad45bcd32cf82f9d651d9ccca082f98a0cca3ad5335284e45

Linux_%s_%s_%u_V11

November 2023

6302acdfce30cec5e9167ff7905800a6220c7dda495c0aae1f4594c7263a29b2 ebdf3d3e0867b29e66d8b7570be4e6619c64fae7e1fbd052be387f736c980c8e (eingebettetes Modul)

Die früheste Linux-Version haben die Sicherheitsforscher erstmals im Juli 2021 in freier Umgebung gesichtet. Linodas besitzt zwar dieselbe Logik wie die Windows-Variante, fügt aber ebenso eine Reihe eigener Verhaltensweisen hinzu und zielt speziell auf Linux-Server ab. Die jüngste Linodas-Version (v11) lässt sich auch in der Windows-Variante beobachten, das mit demselben C2-Server »update.microsoft-setting[.]com« kommuniziert (Tabelle “Linux- und Windows-Version im Vergleich”).

Version

Betriebssystem

Hash

Linux_%s_%s_%u_V11

Linux

6302acdfce30cec5e9167ff7905800a6220c7dda495c0aae1f4594c7263a29b2

Win_%s_%s_%u_V10

Windows

57f64f170dfeaa1150493ed3f63ea6f1df3ca71ad1722e12ac0f77744fb1a829

Zwei Proben mit unterschiedlichen internen Versionen legen nahe, dass es zwei verschiedene Entwicklungsteams gab oder zumindest zwei Backdoors in unterschiedlichen Entwicklungsstadien, die mit demselben C2-Server kommunizieren. Die Linux- und Windows-Versionen weisen überlappende Befehls-IDs auf, die nahtlos dieselbe Malware-Funktionalität für verschiedene Betriebssysteme unterstützen. Die Cyberkriminellen installieren das Implantat auf Linux-Servern, um sich im Netzwerk weiter zu etablieren. Gefunden haben die Sicherheitsforscher Malware-Dateien, die sich mit den Namen ntfsys als System- oder Treiberdatei im Zusammenhang mit NTFS ausgeben.

Sobald die Backdoor ausgeführt wird, prüft sie, ob sie zum ersten Mal läuft, indem sie zwei Argumente abfragt: den Buchstaben d und die Prozess-ID des aufrufenden Daemons. Wenn sie die Argumente nicht findet, ruft sie die Daemon-Funktion auf und stellt die Persistenz im System her. Anschließend startet sich die Backdoor erneut selbst: Sie holt sich die Prozess-ID sowie den Selbstausführungspfad und führt den Befehl »[SELF_PATH] d [SELF_PID]« über die Funktion »system« aus.

Persistenz-Methoden

Der Persistenzprozess fällt relativ umfangreich aus und umfasst mehrere Ubuntu-Versionen und Red-Hat-Distributionen. Zunächst gilt es, die aktuelle Betriebssystemversion zu ermitteln, indem die Dateien »/proc/version« und »etc/lsb-release« gelesen und die Ausgabe analysiert wird. Danach lässt sich auf der Grundlage der gesammelten Daten die Persistenz mit einer der folgenden Methoden erreichen.

Methode 1 (Ubuntu) – »rc.local« über »systemd« aktiviert: Die Malware sieht zunächst nach, ob die Datei »/lib/systemd/system/rc.local.service« nicht existiert, und schreibt den Code aus Listing 1 in die Datei.

Listing 1

rc.local über systemd aktiviert

[Unit]
Description=/etc/rc.local Compatibility
ConditionFilelsExecutable=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart/=etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes

Daraufhin erstellt sie den nachstehenden Symlink.

/lib/systemd/system/rc.local.service --> /etc/systemd/system/

Im nächsten Schritt ermittelt die Malware, ob es die Datei »/etc/rc.local« gibt, und ergänzt bei Vorhandensein die folgende Zeichenkette.

#!/bin/bash
[SELF_FILE_PATH] exit 0

Anschließend macht sie die Datei »/etc/rc.local« mithilfe des Befehls »chmod 777« ausführbar und evaluiert, ob die Persistenz korrekt in die Datei geschrieben wurde. Schließlich ändert die Schadsoftware die INI-Felder in der Datei »/lib/systemd/system/rc.local.service« (Listing 2).

Listing 2

INI-Felder ändern

[Service]
RemainAfterExit=no
[Install]
WantedBy=multi-user.target Alias=rc-local.service

Methode 2 (Red Hat) – »init.d«-Skript: Die Backdoor ruft den Befehl auf, dessen Ausgabe Chkconfig analysiert, und versucht, ihn auszuführen. Wenn der Befehl gefunden und korrekt ausgeführt wird, fügt sie ihn der Umgebungsvariablen »PATH« hinzu und fährt mit der eigentlichen Persistenz fort. Die Malware prüft, ob die Datei »/etc/init.d/[SELF_FILE_NAME]« nicht existiert, und schreibt danach den Code aus Listing 3 hinein.

Listing 3

Datei /etc/init.d/[SELF_FILE_NAME] prüfen und modifizieren

#!/bin/sh
### BEGIN INIT INFO
# Provides:          [SELF_FILE_NAME]
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: [SELF_FILE_NAME] service
# Description:       [SELF_FILE_NAME] service daemon
### END INIT INFO
[SELF_FULL_ATH] restart

Wenn die Datei nicht erstellt wurde, schreibt es dieselben Daten in die Datei »/etc/ch.sh« und führt das folgende Kommando aus.

mv /etc/ch.sh /etc/init.d/[SELF_FILE_NAME]

Anschließend führt die Schadsoftware den Befehl »chmod 777« für die erstellte Datei aus und überprüft die Persistenz mithilfe des nächsten Aufrufs.

chkconfig --list | grep [SELF_FILE_NAME]

Wenn das Ergebnis nicht »6:« enthält, kommen die beiden folgenden Befehle zum Einsatz.

chkconfig --add [SELF_FLE_NAME] chkconfig zentao [SELF_FLE_NAME]

Methode 3 (Red Hat) – »rc.local«: Die Persistenz erfolgt über die Datei »/etc/rc.d/rc.local«. Wenn die Datei existiert, prüft die Backdoor, ob sich Selbstpfad im Inhalt findet – wenn nicht, fügt sie sich der Datei mit der Zeichenfolge »\n[SELF_PATH]\n« hinzu.

Kern-Logik

Nachdem die Malware mit zwei Argumenten ordnungsgemäß ausgeführt wurde, geht sie zur eigentlichen Logik über. Zunächst arbeitet sie eine Reihe von Überprüfungen ab, darunter die Root-Rechte, den Pfad/Ordner und die Prozess-ID des aufrufenden Daemons, und speichert alle in globalen Variablen. Dann ändert die Backdoor den Zeitstempel ihrer Datei.

touch
 -d \"2010-09-08:*12:23:02\" [SELF_FILE_PATH].

Nun wird eine auf der hartkodierten Zeichenfolge »/etc/.netsc.conf« basierende Konfigurationsdatei gelesen. Bei den Konfigurationsdateien für alle Beispiele handelt es sich üblicherweise um versteckte Dateien. Aus der Konfigurationsdatei versucht die Malware, das Feld »imei« unter dem Abschnitt »para« zu lesen. Das Feld steht für die für den infizierten Rechner generierte Bot-ID. Fehlt es in der Konfigurationsdatei, wird eine eindeutige Rechner-ID auf der Grundlage von Rechnerparametern in fünf Schritten erzeugt.

Zu Beginn geht es ans Ermitteln der MAC-Adresse des Rechners: Die Schadsoftware nutzt dazu den Befehl »ifconfig« oder »ip« und extrahiert die MAC-Adresse aus der Ausgabe, die von der jeweiligen Distribution abhängt. Daraufhin ruft die Malware das Kommando »dmidecode« auf, um das SMIBIOS des Systems zu erhalten. Nachdem sie die MAC-Adresse und die Ausgabe von »dmidecode« kombiniert hat, führt sie den Befehl »md5sum« aus. Schließlich erzeugt die Backdoor im vierten und fünften Schritt eine Zufallszahl und einen Zeitstempel auf Grundlage der aktuellen Uhrzeit. Sämtliche Felder sowie ein Beispiel dazu zeigt Listing 4. Nach der Generierung wird die Bot-ID in der Konfigurationsdatei gespeichert, und der Zeitstempel der Konfigurationsdatei wird ebenfalls geändert, ähnlich wie bei der ausführbaren Datei.

Listing 4

Eindeutige Rechner-ID auf Basis von Rechnerparametern

Linux_[TIMESTAMP]_[MD5SUM]_[RANDOM NUMBER]_V11
Linux_20240310_11cb06d0bf454c3708a3658c2601ea16_40459_V11

Danach führt die Backdoor eine grundlegende Systemaufzählung durch, um die Distribution, die genaue Betriebssystemversion und die Systemarchitektur zu ermitteln. All diese Werte werden in globalen Variablen gespeichert und später verwendet, wenn die Backdoor das C2 zum ersten Mal kontaktiert. Die hartkodierte C2-Adresse wird geparst, in einer globalen Struktur gespeichert, und die Malware liest zwei weitere Konfigurationsfelder, »mode« und »checkroot«, aus dem Bereich »para«. Das Feld »mode« gibt die Art der zu verwendenden C2-Kommunikation an: TCP oder UDP. Das Feld »checkroot« hingegen bestimmt, ob die Backdoor angemeldete Benutzer überwachen soll. Nach der anfänglichen Konfiguration generiert die Backdoor mehrere Threads, die zur Überwachung und Bereinigung dienen. Danach initiiert sie die Verbindung zum C2-Server.

Überwachen und Aufräumen

Die Backdoor erstellt fünf Threads, die mit der Systemüberwachung, dem Herunterladen von Hilfsmodulen und dem Aufräumen alter Reverse-Shell-Verbindungen beauftragt sind.

Thread #1 übernimmt die Überwachung des eingeloggten Benutzers. Wenn das Feld »mode« in der Konfiguration oder die globale Variable für »mode« auf »1« gesetzt ist, überwacht dieser Thread eingeloggte Benutzer mit dem Befehl »who«. Er analysiert dessen Ausgabe und schließt die C2-Verbindung, wenn die angemeldete IP nicht eine lokale IP oder die C2-IP ist.

Thread #2 verantwortet die Überwachung des C2-Verbindungsstatus. Jedes Mal, wenn eine gültige Anfrage an das C2 gestellt wird, wird das Zeitfeld in der globalen C2-Verbindungsstruktur aktualisiert. Wenn seit der letzten Anfrage an das C2 eine halbe Stunde vergangen ist, schließt der Thread die Verbindung zum C2.

Thread #3 kümmert sich um das Herunterladen und Einrichten des Filtermoduls. Der Thread prüft zunächst, ob das Modul nicht bereits durch die Verwendung einer Variablen heruntergeladen wurde. Trifft das nicht zu, führt der Thread erneut einige Schritte aus. Zu Beginn prüft er, ob die Datei »[SELF_PATH].so6« existiert, und berechnet einen Md5-Hash ihres Inhalts. Daraufhin sendet er eine verschlüsselte Anfrage an das C2, in der er den Md5-Hash eines auf dem C2-Server verfügbaren Moduls anfordert, und vergleicht den empfangenen Md5-Hash mit dem vorhandenen.

Unterscheidet sich der Hash davon, stellt der Thread eine weitere Anfrage an den C2 und speichert die neu erhaltene Datei unter demselben Namen. Im vorletzten Schritt liest er die Daten aus der Datei »/usr/lib/libsysattr.so«, die wahrscheinlich in einem früheren Stadium der Infektion abgelegt wurde. Diese Datei sollte eine Reihe von Werten enthalten, die durch Pipe-Zeichen »|« getrennt sind, und umfasst eine Reihe von Anweisungen für zu ersetzende ausführbare Dateien. Nun sucht der Thread im System nach jeder in der Anweisungsdatei gelisteten Datei und sichert sie unter Namen im Format »[DATEI_NAME].a«.

Zum Schluss ersetzt er die Originaldateien durch das neu erhaltene So6-Filtermodul und macht sie ausführbar. All diese Schritte ermöglichen es den Bedrohungsakteuren, bestimmte ausführbare Systemdateien zu verpacken.

Thread #4 überwacht und protokolliert angemeldete Benutzer. Wenn einer von ihnen auf dem Linux-Rechner angemeldet ist und seine IPv4 nicht einer lokalen IPV4 oder einer der C2s entspricht, werden seine Details protokolliert und an den C2-Server gesendet.

Thread #5 sorgt für die Bereinigung alter Reverse-Shell-Sitzungen. Zunächst überwacht der Thread Reverse-Shell-Sitzungen. Sobald sich eine Reverse-Shell-Sitzung findet, die fast eine Stunde nicht aktiv war, entfernt er die Sitzung.

C2-Kommunikation

Bevor die C2-Kommunikation beginnt, werden zwei globale Strukturen überprüft: Die eine enthält den Konfigurationswert, der angibt, ob bei der Verbindung mit dem C2 TCP oder UDP zum Einsatz kommen soll; die andere gibt an, ob die C2-Kommunikation unterbrochen werden soll, wenn angemeldete Benutzer vorhanden sind. Wenn eine dieser Prüfungen fehlschlägt, nimmt die Malware die Kommunikation mit dem C2 nicht auf. Wenn die Prüfungen erfolgreich sind, analysiert die Backdoor die C2-Adresse und löst bei Bedarf eine C2-Domain in IPv4 auf.

Als Nächstes richtet die Schadsoftware je nach Konfiguration einen Socket im TCP- oder UDP-Modus ein und versucht, eine Verbindung mit dem C2 herzustellen. Wenn die Verbindung erfolgreich ist, startet die Malware einen Thread zum Parsen von C2-Befehlen. Nachdem diese erste Verbindung zum C2-Server aufgebaut und der C2-Befehlsthread erstellt wurde, führt die Backdoor eine Endlosschleife aus, die für das Senden eines Heartbeats an den C2-Server zuständig ist. Der Heartbeat enthält die folgenden Werte, die kombiniert und durch »\t« getrennt werden: Informationen zur Verteilung, die Systemarchitektur, den String »root«, den konstanten Wert »0xC«, die UDP-Paketlänge 800 und einen eigenen Pfad. Wenn die Anfrage an den C2 fehlgeschlagen ist, wird die Verbindung zum C2 wiederhergestellt, der Heartbeat-String erzeugt und erneut gesendet.

Unterstützte C2-Befehle

Ähnlich wie die Windows-Backdoor unterstützt auch die Linux-Backdoor eine breite Palette von Funktionen. In der Tabelle “Unterstützte Funktionen” sind sie alle aufgeführt. Zusätzlich zeigt die Tabelle, ob sie in der Windows-Version der Backdoor vorhanden sind.

ID

Beschreibung

Parameter

in der Windows-Version vorhanden

0x02

Dateien und Verzeichnisse unter einem bestimmten Ordner auflisten

Name des Ordners

ja

0x03

Auflisten von Dateien und Verzeichnissen in einem bestimmten Ordner

Liste der Dateien oder Verzeichnisse, die durch »&&« getrennt sind

ja

0x05

Dateien an den C2 senden

Anforderungs-ID, Dateiliste getrennt durch »&&«

ja

0x06

Beenden des Befehls “Dateien senden”

ja

0x08

Herunterladen einer Datei vom C2 und Ausführung (wenn ein Flag aktiviert ist)

Flag ausführen, Dateiname, Dateidaten, alle getrennt durch »/t«

ja

0x09

Beenden des Befehls “Dateien herunterladen”

ja

0x0E

C2-URL aktualisieren

Liste der C2-URLs, getrennt durch »/t«

ja

0x0F

angemeldete Benutzer anzeigen lassen

ja

0x11

Auflisten laufender Prozesse

ja

0x12

Prozess beenden

zu beendende Prozess-ID

ja

0x13

ausgeführte Dienste auflisten

ja

0x14

Dienst starten/stoppen

Dienstname, Aktionstyp, getrennt durch »/t«; Aktionstypen: 1 – Service starten, 0 – Dienst beenden, 2 – Dienst beenden und löschen

ja

0x18

Prozess ausführen und Zurücksenden der Antwort

auszuführender Prozesspfad

ja

0x19

Datei ausführbar machen und ausführen

Empfangen mehrerer Dateien, die ausgeführt werden sollen, getrennt durch »/t«

ja

0x1A

Starten/Stoppen/Abrufen des Status für den HTTP-Proxy

Integer-Wert

nein

0x1B

umgekehrter Shell-Start

ja

0x1C

Neustart der Shell rückgängig machen

nein

0x1D

Schließen der Shell rückgängig machen

nein

0x1E

in die Reverse Shell schreiben

Binärwerte geteilt durch 0x010x02

ja

0x27

Datei umbenennen, kopieren, verschieben

Aktionstyp, Dateipfad, neuer Pfad

ja

0x28

»ok« an den C2 senden

ja

0x2B

Ändern des Proxy-Verbindungstyps

Integer-Wert

ja

0x2C

Proxy-Typ festlegen

Integer-Wert

ja

0x2D

Ändern des Dateiübertragungsmodus

Integer, Integer-Wert

ja

0x2E

selbstvollständige Deinstallation, Entfernen der Persistenz, Beenden des übergeordneten Daemons und Beenden

ja

0x31

Aktualisieren eines globalen ganzzahligen Werts, der als UDP-Paketlänge verwendet wird

Integer-Wert

ja

0x32

Lesen einer Datei und Zurückgeben des Inhalts

Dateipfad, max. zu lesende Bytes

nein

0x33

Schreiben von Daten in eine Datei

Dateipfad, Bytes, die in eine hexadezimale Zeichenfolge geschrieben werden sollen

nein

0x34

Sammeln von Benutzeraktivitäten über verschiedene Dateien wie »/var/run/utmp«, »var/log/wtmp«, »var/log/lastlog«

nein

0x35

Analysieren und Senden der Datei »/usr/lib/libsysattr.a«

nein

0x36

Daten analysieren und in die Datei »/usr/lib/libsysattr.a« schreiben

durch »/t« getrennte Felder

nein

Das Filtermodul

Bei Linodas v11 ist der Thread #3 für das Herunterladen eines zusätzlichen Moduls verantwortlich, das alle angegebenen Binärdateien im System ersetzt. Keine der vorherigen Versionen unterstützt diese Funktion. Das Filtermodul (Abbildung 2), das durch Ausführung von »ntfsys« (v11) von dem vom Akteur kontrollierten C&C-Server bezogen wurde, ist als »ntfsys.so6« gespeichert.

Abbildung 2: Dateierkennungen für das Filtermodul, als es im November 2023 erstmals auftauchte.

Abbildung 2: Dateierkennungen für das Filtermodul, als es im November 2023 erstmals auftauchte.

Dem Modul kommt die Aufgabe zu, die Ausführung der Binärdateien zu steuern und ihre Ausgabe zu kontrollieren (Abbildung 3).

Abbildung 3: Diagramm der Ausführung einer Systembinärdatei, die vom Filtermodul umhüllt wird, das seine Ausgabe in Echtzeit ändert. Quelle: Check Point Software

Abbildung 3: Diagramm der Ausführung einer Systembinärdatei, die vom Filtermodul umhüllt wird, das seine Ausgabe in Echtzeit ändert. Quelle: Check Point Software

Das Modul wird jedes Mal gestartet, wenn das System versucht, die ersetzte Binärdatei zu verwenden, mit oder ohne Parameter. Sobald es ausgeführt wird, prüft das Modul, ob sich die Konfigurationsdatei in »/usr/lib/libsysattr.a« findet. Diese separate Konfigurationsdatei wird nicht zusammen mit dem Modul heruntergeladen. Stattdessen platzieren die Bedrohungsakteure sie mithilfe der Linodas-Reverse-Shell auf dem Server.

Aus dem Abschnitt »para« der Konfigurationsdatei lädt das Modul die Felder »ip« und »name«. Es kombiniert sämtliche empfangenen Parameter, trennt sie durch Leerzeichen und sieht nach, ob die ursprüngliche Binärdatei mit dem Namen »[SELF_PATH].a« existiert. Wenn nicht, gibt es die Bash-Shell aus und beendet sich.

Ist die Datei dagegen vorhanden, führt das Modul sie mit den erhaltenen Argumenten aus und hängt die Zeichenkette »2>&1« an. Letztere führt die Fehlerausgabe mit der Standardausgabe zusammen, sodass sich beide gemeinsam manipulieren oder betrachten lassen.

Während das Modul das Unterprogramm ausführt, liest es Teile der Ausgabe und teilt sie zeilenweise auf. Jede Zeile durchläuft einen Filterungsprozess, bei dem die Zeile außer Acht bleibt, die einen der Werte für »ip« oder »name« aus der Konfiguration enthält. Wenn die Zeile die Filterung besteht, wird sie gedruckt.

Die Bedrohungsakteure setzen dieses Modul wahrscheinlich als Rootkit ein, um beliebige Werte wie IP, Benutzername, Prozessname oder andere Artefakte aus verschiedenen Binärprogrammen zum Sammeln von Informationen wie Who, Netstat, Ps und so weiter zu filtern. Auf diese Weise können sie Linodas vor den Überwachungsbemühungen verbergen.

Fazit

Die Linux-Version von DinodasRAT taucht im Zusammenhang mit chinesischen APT-Bedrohungsakteuren auf und findet seit mindestens 2021 immer wieder Verwendung. Während es zahlreiche Ähnlichkeiten mit der Windows-Version gibt, weist die Linux-Malware auf einen separaten und unabhängigen Entwicklungszweig hin. Er führt Zusatzmodule mit separaten Konfigurationsdateien und zusätzliche C2-Befehle ein, die sich auf die Einrichtung und Kontrolle von Reverse-Shells, das Sammeln von Benutzeraktivitäten aus den Protokollen und die Manipulation lokaler Dateiinhalte konzentrieren. (csi)

Der Autor

Thomas Boele ist ein erfahrener Tech-Experte und anerkannter Referent. Er hat mehr als 20 Jahre Erfahrung bei der Ausarbeitung von Go-to-Market-Strategien für globale IT-Unternehmen und Start-ups durch die Entwicklung und den Aufbau von Pre-Sales-Organisationen in wachstumsstarken Umgebungen mit ergebnisorientierter, unterstützender Arbeitskultur. Bevor er als Regional Director, Sales Engineering CER/DACH, zu Check Point Software kam, war er für Unternehmen wie Cisco, 3Com, NetApp, Riverbed, HPE SimpliVity, Cohesity und Twilio tätig.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben