Outlaw Linux Malware: Hartnäckig, unausgereift und überraschend effektiv

Outlaw ist eine persistente Linux-Malware, die einfache Brute-Force- und Mining-Taktiken nutzt, um ein langlebiges Botnet aufrechtzuerhalten.

33 min readMalware-Analyse
Outlaw Linux Malware: Hartnäckig, unausgereift und überraschend effektiv

Vorwort

OUTLAW ist ein persistentes, aber unausgereiftes, sich automatisch verbreitendes Coinminer-Paket, das in den letzten Jahren in mehreren Versionen beobachtet wurde [1], [2], [3], [4]. Trotz des Mangels an Stealth und fortschrittlichen Umgehungstechniken bleibt es aktiv und effektiv, indem es einfache, aber wirkungsvolle Taktiken wie SSH-Brute-Forcing, SSH-Schlüssel- und Cron-basierte Persistenz sowie manuell modifizierte Commodity-Miner und IRC-Kanäle nutzt. Diese Persistenz zeigt, wie Botnet-Betreiber eine weitreichende Wirkung erzielen können, ohne sich auf ausgeklügelte Techniken zu verlassen.

Um tiefere Einblicke in das Verhalten und die Betriebsmuster von OUTLAW zu erhalten, haben wir einen Honeypot eingesetzt, der die Angreifer anlocken und in Aktion beobachten soll. Indem wir sorgfältig eine Umgebung entwickelten, die ein anfälliges System nachahmte, konnten wir die Angreifer dazu verleiten, mit unserem Server zu interagieren. Diese Interaktion offenbarte automatisierte und manuelle Aktionen, bei denen die Bediener Befehle direkt eingaben, Änderungen im laufenden Betrieb vornahmen und sich sogar bei der Eingabe von Befehlen verhörten – klare Indikatoren für die Beteiligung des Menschen. Ein aufgenommenes GIF zeigt diese Momente und gibt einen seltenen Einblick in ihren Entscheidungsprozess in Echtzeit.

Durch die Analyse von OUTLAW gewinnen wir neue Einblicke in die von seinen Betreibern verwendeten Werkzeuge und ihre sich im Laufe der Zeit entwickelnden Strategien. Diese Malware bietet eine wertvolle Möglichkeit, die Prinzipien der Erkennungstechnik anzuwenden, da sich ihre Angriffskette über fast das gesamte MITRE ATT&CK-Framework erstreckt. Die Untersuchung des Infektionsprozesses ermöglicht es uns, effektive Nachweisstrategien zu entwickeln, die sich seine vorhersehbaren und sich wiederholenden Verhaltensweisen zunutze machen.

Dieser Bericht bietet eine vollständige Analyse der Angriffskette, einschließlich detaillierter Erkennungsregeln und Hunting-Abfragen. Durch die Aufschlüsselung der Komponenten von OUTLAW zeigen wir, wie selbst rudimentäre Malware in modernen Umgebungen langlebig bleiben kann und wie Verteidiger ihre Einfachheit nutzen können, um die Erkennung und Reaktion zu verbessern.

Wichtigste Erkenntnisse

  • Persistent, aber unausgereift: OUTLAW bleibt aktiv, obwohl grundlegende Techniken wie SSH-Brute-Forceing, SSH-Schlüsselmanipulation und cron-basierte Persistenz verwendet werden.
  • Standard-Tools: Die Malware setzt modifizierte XMRig -Miner ein, nutzt IRC für C2 und enthält öffentlich zugängliche Skripte für Persistenz und Umgehung der Verteidigung.
  • Umfangreiche Angriffsfläche: Die Infektionskette von OUTLAW erstreckt sich über fast das gesamte MITRE ATT&CK-Framework und bietet viele Möglichkeiten zur Erkennung und Suche.
  • Wurmähnliche Verbreitung: OUTLAW nutzt seine kompromittierten Hosts, um weitere SSH-Brute-Force-Angriffe auf ihre lokalen Subnetze zu starten und das Botnet schnell zu erweitern.

OUTLAW Übersicht

OUTLAW folgt einem mehrstufigen Infektionsprozess, der mit dem Herunterladen und Ausführen der Nutzlast, dem Aufbau von Persistenz und der Erweiterung des Botnetzes durch SSH-Brute-Force-Angriffe beginnt. Die Ausführungskette wird im Folgenden angezeigt:

1. Erstinfektion und Einsatz

  • Der Angriff beginnt, wenn tddwrt7s.sh das dota3.tar.gz Paket von einem C2-Server herunterlädt.
  • Das extrahierte initall.sh Skript wird ausgeführt und die Infektionskette in Gang gesetzt.

2. Kontrolle und Beharrlichkeit erlangen

  • Die Malware sichert sich die Dominanz, indem sie konkurrierende Brute-Forcer und Miner tötet.
  • Anschließend wird Folgendes bereitgestellt:
    • Modifiziertes XMRIG für Krypto-Mining (Verbindung zu einem Mining-Pool).
    • STEALTH SHELLBOT für die Fernsteuerung über IRC C2.
    • BLITZ, um SSH-Brute-Force-Angriffe durchzuführen.

3. Vermehrung und Expansion

  • Das Brute-Force-Modul ruft Ziellisten von einem SSH C2-Server ab und versucht SSH-Brute-Force-Angriffe auf neuen Rechnern.
  • Erfolgreich kompromittierte Systeme werden infiziert und der Zyklus wiederholt sich.

Diese automatisierte Infektionsschleife ermöglicht es OUTLAW, mit minimalem Aufwand für Angreifer aktiv und profitabel zu bleiben. Werfen wir einen genaueren Blick auf die gesamte Angriffskette.

OUTLAW-Ausführungskette

OUTLAW deckt effektiv eine breite Palette von Taktiken und Techniken im MITRE ATT&CK-Framework ab. In diesem Abschnitt wird das Verhalten dargestellt, um einen Überblick über die Infektionskette und die Infektionsmethoden zu erhalten.

Erster Zugriff: Blitz

OUTLAW verschafft sich den ersten Zugriff durch opportunistisches SSH-Brute-Forceing, das auf Systeme mit schwachen oder standardmäßigen Anmeldeinformationen abzielt. Die Malware verwendet ihre blitz Komponente, die auch unter anderen Namen wie kthreadaddbekannt ist, um umfangreiche Scans durchzuführen und Versuche zum Erraten von Passwörtern durchzuführen. Es nutzt Listen von Ziel-IPs und Anmeldeinformationen, die von seinen C2-Servern abgerufen werden.

OUTLAW verhält sich auch wie ein Wurm, der sich automatisch auf jedem System installiert, das er erfolgreich kompromittiert. Dieser Selbstverbreitungsmechanismus ermöglicht eine schnelle Ausbreitung in Netzwerken und verwandelt jedes neu infizierte Gerät in einen weiteren Knoten für weitere Brute-Force- und Infektionsversuche.

Wir werden uns später in diesem Artikel genauer ansehen, wie OUTLAW diese Angriffe durchführt und sich verbreitet.

Ausführung: tddwrt7s.sh

Die ersten Infektionen von OUTLAW scheinen von einem einfachen Dropper-Skript zu stammen: tddwrt7s.sh. Dieses Shell-Skript prüft, ob eine Installation vorhanden ist. Wenn die Malware bereits vorhanden und entpackt ist, führt sie das initall-Skript aus und startet die Infektionskette. Andernfalls wird versucht, das Paket aus einer Liste der bereitgestellten Stagingserver herunterzuladen. Zur Veranschaulichung ist unten ein gekürzter Ausschnitt der Pipette dargestellt:

Das extrahierte dota3.tar.gz Paket extrahiert seinen Inhalt in einen ausgeblendeten Ordner mit dem Namen .rsyncund enthält die folgenden Einträge:

 ├── a
 │   ├── a
 │   ├── init0
 │   ├── kswapd0
 │   ├── kswapd01
 │   ├── run
 │   ├── socat
 │   └── stop
 ├── b
 │   ├── a
 │   ├── run
 │   └── stop
 ├── c
 │   ├── blitz
 │   ├── blitz32
 │   ├── blitz64
 │   ├── go
 │   ├── run
 │   ├── start
 │   ├── stop
 │   └── v
 ├── init
 ├── init2
 └── initall

Lassen Sie uns die Ausführungsketten nacheinander dekonstruieren.

Haupt-Initialisierungsskript: initall

Die drei init Skripts steuern den gesamten Ausführungsablauf und die Bereitstellung der Schadsoftware. Beginnend mit dem initall -Skript bestimmt der Hauptinitialisierer, welcher Ausführungspfad verwendet werden soll. Es prüft die Systemumgebung und entscheidet anhand von Dateiberechtigungen und verfügbaren Verzeichnissen, ob init oder init2 verwendet werden soll.

Diese init Skripte verwenden alle eine variablenbasierte Verschleierung der Zeichenfolgenverkettung, bei der Befehle in kleine Variablenfragmente aufgeteilt werden, die dynamisch verkettet und ausgeführt werden, was die statische Analyse erschwert. Das Skript initall sieht z. B. wie folgt aus:

Indem wir jedoch den eval in einen echoändern, können wir die Ausgabe ohne Aufwand erhalten:

Dieses Skript führt standardmäßig konsistent initaus. Dies ist der primäre Ausführungspfad, der die Malware im versteckten Verzeichnis ~/.configrc6installiert. Der Fallbackausführungspfad ist init2, der verwendet wird, wenn ~/.configrc6 nicht zugänglich ist. Der Hauptunterschied besteht darin, dass dieser Pfad alle Komponenten im aktuellen Arbeitsverzeichnis hält. Wenn wir das gleiche Entschleierungsprinzip wie zuvor anwenden, erhalten wir die folgenden beiden Skripte:

Das erste Skript (init) versteckt seine Komponenten im versteckten Verzeichnis ~/.configrc6, während das zweite Skript (init2) direkt aus dem Arbeitsverzeichnis ausgeführt wird. Trotz dieses Unterschieds bleibt der Ausführungsablauf derselbe, wobei die Binärdatei mit dem Namen a in den Verzeichnissen a/ und b/ als Hintergrundprozesse gestartet und die Persistenz eingerichtet wird. In beiden Skripten installiert die Malware Cron-Jobs, die ihre Binärdateien in regelmäßigen Abständen und bei Systemneustarts ausführen:

5 6 * * 0   ~/.configrc6/a/upd
@reboot     ~/.configrc6/a/upd
5 8 * * 0   ~/.configrc6/b/sync
@reboot     ~/.configrc6/b/sync
0 0 */3 * * ~/.configrc6/c/aptitude

Obwohl die Skripte die a Binärdatei in den Verzeichnissen a/ und b/ fast gleichzeitig ausführen, folgen wir zuerst dem Ausführungsablauf des a/ Verzeichnisses.

Unterprogramm Ausführung eines Verzeichnisses/: XMRIG

Das erste Skript, das ausgeführt wird, ist a, das alle vorhandenen Cronjobs mit crontab -r entfernt und dann das aktuelle Arbeitsverzeichnis in einer Variablen speichert. Anschließend wird ein Shell-Skript mit dem Namen upd erstellt, das überprüft, ob ein (in bash.pidgespeicherter Prozess ) noch ausgeführt wird. Wenn der Prozess nicht ausgeführt wird, führt er ./run als Hintergrundprozess aus, um sicherzustellen, dass die Malware kontinuierlich neu gestartet wird, wenn sie beendet wird.

Darüber hinaus sehen wir einige kommentierte Befehle, die darauf hinweisen, dass andere Versionen dieser Malware unter Namen wie rsync, go, kswapd0, blitz, und redtailexistieren könnten.

Weiter unten im Skript wird eine Funktion erstellt, die prüft, ob /sys/module/msr/parameters/allow_writes existiert und sie auf "on" setzt, um das Schreiben in modellspezifische Register (MSRs) zu ermöglichen. Wenn die Datei nicht vorhanden ist, werden MSR-Schreibvorgänge über den Befehl modprobe msr allow_writes=on aktiviert.

Als Nächstes identifiziert die Funktion die aktive CPU, indem sie /proc/cpuinfo überprüft und bestimmte MSR-Registerwerte anwendet, um die Leistung zu optimieren.

Schließlich optimiert die Funktion die Speicherauslastung, indem sie hugepages für alle CPU-Kerne aktiviert, wodurch die Effizienz des Speicherzugriffs erhöht wird. Er berechnet die Anzahl der benötigten hugepages basierend auf den verfügbaren Prozessoren (nproc) und legt diese in den /sys/devices/system/node/node*/hugepages/ Verzeichnissen fest.

Die Funktion optimize_func() wurde nicht vom Bedrohungsakteur erstellt. Der Bedrohungsakteur verwendete ein Open-Source-Skript aus dem XMRig -Repository, insbesondere das randomx_boost.sh-Skript , um seine Infektionskette zu unterstützen.

Abhängig von den Berechtigungen des Benutzers wird entweder die gesamte Optimierungsfunktion ausgeführt oder versucht, die Anzahl der hugepages durch sysctlfestzulegen:

Alle Schritte, die in dieser Kette durchgeführt werden, zeigen offensichtliche Anzeichen für die Optimierung des Kryptowährungs-Mining-Systems. Schließlich erteilt das Skript Ausführungsberechtigungen für die upd Datei und "777"-Berechtigungen für alle Dateien in seinem Ordner und führt updaus.

Wie wir bereits in der Kette gesehen haben, prüft die upd -Datei, ob der in bash.pid gespeicherte Prozess noch ausgeführt wird, und wenn dies nicht der Fall ist, führt sie das run Skript aus:

Das Ausführungsskript startet das stop -Skript, bei dem es sich um ein typisches Skript handelt, das die Abwehrmechanismen aller bekannten Miner-Konfigurationen und aller bekannten Miner-Prozesse basierend auf dem Namen/der Prozess-ID oder dem Netzwerkverkehr beendet. Eine gekürzte Version dieses Skripts ist unten dargestellt:

Interessanterweise gibt es ein zweites prozessbeendendes Skript namens init0 , ein Open-Source-Skript zum Töten von Kryptowährungs-Minern in einer Linux-Umgebung. Dieses Skript wird nicht ausgeführt, da der Ausführungsablauf für dieses Skript im a Skript auskommentiert wurde.

Nachdem das stop Skript erfolgreich ausgeführt wurde, startet das run Skript die kswapd01 und kswapd0 Binärdateien im Hintergrund über nohup.

kswapd01

Die Binärdatei kswap01 spielt eine entscheidende Rolle bei der Gewährleistung einer dauerhaften Kommunikation innerhalb der Infrastruktur der Malware. Seine Hauptaufgabe besteht darin, einen kontinuierlichen socat Prozess zu überwachen und aufrechtzuerhalten, der für die Kommunikation mit den C2-Servern des Angreifers unerlässlich ist.

Bei der Ausführung prüft kswap01 , ob auf dem infizierten Computer socat Prozesse ausgeführt werden. Wenn keine aktive Verbindung gefunden wird, werden alle laufenden socat Prozesse beendet und eine alternative IP-Adresse aus einer vordefinierten Liste ausgewählt. Die Binärdatei stellt dann eine neue Verbindung her, indem sie einen neuen socat Prozess startet, um den lokalen Computer zu überwachen und den Datenverkehr an einen Remote-Server weiterzuleiten, in der Regel über Port 4444. Dadurch wird sichergestellt, dass die Malware die Kontrolle über das infizierte System behält und weiterhin Befehle vom Angreifer erhalten kann.

Es ist jedoch wichtig zu beachten, dass nicht jede Version des beobachteten OUTLAW-Malware-Pakets die Binärdatei socat enthält. In diesen Fällen wird die von socat bereitgestellte Funktionalität entweder auf andere Weise repliziert oder einfach weggelassen, wobei alternative Methoden zur Aufrechterhaltung der Persistenz und Kommunikation verwendet werden.

Durch diese Überprüfungen und Modifikationen trägt kswap01 dazu bei, die Persistenz der C2-Verbindung aufrechtzuerhalten, wodurch es für Verteidiger schwieriger wird, den Kommunikationskanal zwischen dem Angreifer und dem kompromittierten System zu unterbrechen.

kswapd0

Die Datei mit dem Namen kswapd0 ist eine böswillig modifizierte Kopie des legitimen XMRig Kryptowährungs-Miners (insbesondere Version 6.22.1).

Zwei wichtige Änderungen definieren das Verhalten der Malware:

1. Befehle der Start-Shell

  • Die Malware entfernt den ~/.ssh -Ordner des Opfers und erstellt ihn neu, fügt einen vom Angreifer kontrollierten öffentlichen SSH-Schlüssel ein und wendet erneut restriktive Berechtigungen (chattr +ia) an, um Änderungen zu verhindern. Dadurch wird persistenter SSH-Zugriff gewährt.
  • Es entfernt oder sperrt auch vorhandene XMRig Konfigurationsdateien (z. B. ~/.xmrig.json, ~/.config/xmrig.json), um sicherzustellen, dass die eingebetteten Miner-Einstellungen des Angreifers intakt bleiben.

2. Eingebettete Miner-Konfiguration

  • Die Binärdatei wird mit einer internen Mining-Konfiguration kompiliert, so dass XMRIG ohne eine externe Konfigurationsdatei ausgeführt werden kann.
  • Der Mining-Datenverkehr wird über Klartext-Ports (:80, :4444), SSL (:442) und gelegentlich TOR-Adressen an mehrere Monero-Pools weitergeleitet. Beachten Sie, dass die hier 442 Portierung kein Tippfehler ist.
  • Die Konfiguration optimiert die Leistung durch:
    • Ausführen des Miners im Hintergrund
    • Aktivieren großer Seiten für RandomX
    • Festlegen der Spendenstufe auf Null
    • Maximierung der CPU-Thread-Auslastung

Durch das Aussperren von Administratoren, das Verhindern von Konfigurationsänderungen und das Einschleusen eines vom Angreifer kontrollierten SSH-Schlüssels dient kswapd0 als heimlicher Persistenzmechanismus – der kontinuierliches Monero-Mining und unbefugten Fernzugriff ermöglicht, während es sich als legitimer Systemprozess tarnt.

Unterprogramm Ausführung des b/-Verzeichnisses: STEALTH SHELLBOT

Wie wir bereits beschrieben haben, wurde die a Binärdatei im b/ Verzeichnis auch über die init Skripte ausgeführt.

Dieses Skript startet ein weiteres stop Skript mit dem gleichen Zweck, den wir zuvor beschrieben haben: Beenden Sie alle bekannten fehlerhaften Prozesse. Anschließend wird ein Skript mit dem Namen syncerstellt, das ausschließlich dazu dient, das run Skript auszuführen. Auf dieses Skript wird in dem Cronjob verwiesen, den wir zuvor beschrieben haben. Das run Skript enthält drei base64-codierte Blobs, die an perlweitergeleitet werden. Ein Beispiel für ein gekürztes Skript ist unten dargestellt:

Bei der Base64-Decodierung werden verschleierte perl Skripte identifiziert. Diese Skripte nutzen ein öffentliches Perl-Obfuscator-Dienstprogramm , um ihren Inhalt zu verschleiern, wodurch sie schwieriger zu analysieren sind:

Glücklicherweise hat der Autor die Standardkommentare in den verschleierten Skripten belassen. Mit dem öffentlich zugänglichen Deobfuscator können wir das Skript mit dem folgenden Befehl entschleiern:

perl decode-stunnix-5.17.1.pl < obfuscated_run.pl > deobfuscated_run.pl

Danach können wir den entschleierten Inhalt anzeigen:

Dies sind nur die ersten paar Zeilen des Drehbuchs, um das zu veranschaulichen. Diese Entschleierungstechnik kann auch für die anderen verschleierten Perl-Skripte verwendet werden, die von OUTLAW verwendet werden. Wir werden uns diese Skripte gleich genauer ansehen.

Das Skript endet mit der Installation eines eigenen öffentlichen SSH-Schlüssels für den persistenten Zugriff, dem Festlegen restriktiver Berechtigungen und dem Festlegen des Verzeichnisses, um eine Änderung durch chattrzu verhindern:

STEALTH SHELLBOT-Skripte

Die STEALTH SHELLBOT-Skripte, die in OUTLAW verwendet werden, sind keine benutzerdefinierten, sondern öffentlich zugängliche IRC-Bot-Skripte, die oft aus alten GitHub-Repositories und Untergrundforen stammen. Diese Skripte gibt es seit über einem Jahrzehnt und wurden ursprünglich für die Remote-Verwaltung, Automatisierung und Botnet-Verwaltung entwickelt. Seitdem wurden sie jedoch von Malware-Autoren für böswillige Aktivitäten umfunktioniert.

SHELLBOT-Skripte fungieren als IRC-basierte Hintertüren, die es Angreifern ermöglichen, infizierte Rechner über vordefinierte Befehle, die über einen IRC-Kanal gesendet werden, fernzusteuern. Sobald sie mit dem IRC-Server des Angreifers verbunden sind, können diese Bots:

  • Ausführen beliebiger Shell-Befehle
  • Zusätzliche Payloads herunterladen und ausführen
  • Starten von DDoS-Angriffen (in älteren Varianten)
  • Stehlen Sie Anmeldeinformationen oder exfiltrieren Sie Systeminformationen
  • Verwalten Sie Krypto-Miner oder andere Malware-Komponenten

OUTLAW integriert diese Legacy-SHELLBOT-Skripte als sekundären Persistenzmechanismus, der sicherstellt, dass Angreifer auch dann noch aus der Ferne Fuß fassen können, wenn die Brute-Force-Module unterbrochen werden. Der Bot verbindet sich mit einem vom Angreifer kontrollierten IRC C2, wo er auf weitere Befehle wartet und so die On-Demand-Ausführung bösartiger Aktionen ermöglicht.

Diese Skripte sind zwar nicht neu, aber ihre fortgesetzte Verwendung zeigt, wie sich Angreifer auf öffentlich verfügbare Tools verlassen, anstatt neue Malware von Grund auf neu zu entwickeln.

Unterprogramm Ausführung des c/-Verzeichnisses: Kunde Bruteforcer

Als Teil der dritten und letzten Unterroutine wird ein benutzerdefiniertes Bruteforce-Tool bereitgestellt. Diese Kette beginnt, ähnlich wie die vorherigen Unterprogramme, mit den Skripten init und init2 . Diese Skripts rufen beide das start Skript auf, das den folgenden Inhalt enthält:

Dieses Skript speichert das aktuelle Arbeitsverzeichnis, stellt alle Berechtigungen (777) für alle Dateien im aktuellen Verzeichnis bereit und erstellt ein Skript mit dem Namen aptitude (das auch vom zuvor eingerichteten Cronjob aufgerufen wird), um das run Skript auszuführen. Nach dem Erstellen von aptitudeerhält es Ausführungsberechtigungen und wird ausgeführt.

Das run -Skript wird verwendet, um Informationen zur CPU-Architektur zu sammeln und CPU-Kerne zu zählen, um das Ausführungsverhalten zu bestimmen, wie unten gezeigt:

Wenn das System x86_64 ist, prüft es, ob die CPU weniger als 7 Kerne hat, und führt eine zufällige Verzögerung ein, bevor ./go im Hintergrund ausgeführt wird. Wenn 7 oder mehr Kerne erkannt werden, wird die Ausführung übersprungen oder geändert (wobei eine zuvor verwendete Binärdatei jetzt auskommentiert golan ). Der Bedrohungsakteur hat möglicherweise eine Golang-Binärdatei getestet oder damit gearbeitet, die die Anzahl der in einem System vorhandenen Kerne voll ausnutzen kann, aber das ist nur eine Vermutung.

In den meisten Szenarien wird der Ausführungsablauf in das Bash-Skript mit dem Namen goverschoben:

Das Skript ermittelt die CPU-Architektur und weist entsprechend eine Thread-Anzahl zu:

  • ARM-basierte Systeme → 75 Threads
  • i686 (32-Bit-x86)-→ 325 Gewinde
  • Alle anderen (Standard) → 475 Threads

Anschließend tritt er in eine Endlosschleife ein und führt die folgenden Aktionen aus:

  1. Erstellt und bereinigt temporäre Dateien (v, p, ip, xtr*, a.*, b.*).
  2. Schreibt hartcodierte Werte (257.287.563.234 und sdaferthqhr34312asdfa) in Dateien c und d.
  3. Wartet eine zufällige Verzögerung (1-30 Sekunden), bevor blitzgestartet wird.
  4. Führt blitz 3 Stunden lang mit den angegebenen Parametern aus (-t $threads schlägt eine Multithread-Verarbeitung vor).
  5. Führt eine Bereinigung nach der Ausführung durch, wobei temporäre Dateien und Protokolldateien entfernt werden, bevor der Zyklus wiederholt wird.

BLITZKRIEG

OUTLAW ist ein sich selbst vermehrender Wurm, der sich seitlich durch SSH-Brute-Force-Angriffe mit BLITZ, seinem speziell entwickelten Brute-Forcer, verbreitet. BLITZ wurde für aggressive, automatisierte Angriffe auf Anmeldeinformationen entwickelt und scannt systematisch nach Systemen mit schwachen oder standardmäßigen SSH-Anmeldeinformationen und kompromittiert diese, sodass die Malware mit minimalem Eingriff von Angreifern Fuß fassen kann.

BLITZ-Ausführungsprozess

Nach der Ausführung folgt BLITZ einer strukturierten Angriffssequenz:

  1. Abrufen von IP-Zielen und Anmeldeinformationen
    • BLITZ kontaktiert einen SSH C2-Server, um eine Liste von Ziel-IPs und Anmeldeinformationspaaren abzurufen.
  2. Brute-Force-Authentifizierung und Systemprofilerstellung
    • Mithilfe von Multithreaded SSH Brute-Forcing versucht BLITZ, sich mit gestohlenen Anmeldeinformationen zu authentifizieren.
    • Sobald Sie Zugriff erhalten haben, gilt Folgendes:
      • Ändert das Kennwort des Benutzers für den dauerhaften Zugriff.
      • Führt Systemaufklärungsbefehle aus und sammelt Folgendes:
        • Benutzerrechte
        • Details zur CPU
        • Informationen zum SSH-Banner
        • Version des Betriebssystems
      • Exfiltriert die gesammelten Daten auf den C2-Server.
  3. Subnetz-Scanning und laterale Bewegung
    • Die Malware scannt das lokale Subnetz neu kompromittierter Systeme und identifiziert zusätzliche über SSH zugängliche Rechner, die angegriffen werden können.
  4. Selbstreplikation und Malware-Bereitstellung
    • Anstatt von einem externen C2 herunterzuladen, überträgt BLITZ das dota3.tar.gz Malware-Paket direkt vom infizierenden Host auf das neue Opfer, wodurch die Persistenz gestärkt und die Abhängigkeit von externer Infrastruktur minimiert wird.

Durch die Kombination von automatisierten Brute-Force-Angriffen, Systemprofilerstellung, Subnetz-Scans und direkter Malware-Übertragung maximiert BLITZ die Infektionseffizienz und gewährleistet gleichzeitig eine kontinuierliche Netzwerkerweiterung.

Binäre Analyse & C2-Kommunikation

Abgesehen von Brute-Force-Operationen zeigt die Analyse, dass BLITZ seine Aufgaben durch Interaktion mit System-Shell-Befehlen und einer eingebetteten SSH-Bibliothek ausführt. Sobald eine Verbindung zu einem kompromittierten System hergestellt ist, fragt es den C2-Server nach aktualisierten Zielen ab und leitet Authentifizierungsdaten weiter.

Zusätzlich enthält OUTLAW einen fest codierten SSH-Schlüssel für die C2-Authentifizierung, der mit dem Passwort "pegasus" entsperrt werden muss. Nach erfolgreicher Authentifizierung protokolliert Blitz die Angriffsdetails in einer "v"-Datei, die wie folgt strukturiert ist:

Dieses Protokoll enthält:

  • Ursprünglicher Benutzername und Passwort, die bei dem Angriff verwendet wurden.
  • Die IP-Adresse des Opfers und das neue Passwort, das von der Malware festgelegt wurde.
  • SSH-Port und Betriebssystemdetails, einschließlich CPU-Spezifikationen.

Sobald BLITZ seinen Scan-Zyklus abgeschlossen hat, wird die "v"-Datei auf einen SSH C2-Server exfiltriert, wodurch Angreifer eine ständig aktualisierte Liste der infizierten Systeme erhalten.

Nach der Kompromittierung

Um das Verhalten des Angreifers nach der Kompromittierung zu analysieren, haben wir bewusst einen Honeypot eingerichtet und seine Anmeldedaten proaktiv auf denselben SSH-C2-Server hochgeladen, der auch vom Angreifer verwendet wird. Dadurch wurde der Angreifer effektiv in unsere kontrollierte Umgebung eingeladen, so dass wir seine nachfolgenden Aktionen genau überwachen konnten.

Einige Tage, nachdem BLITZ erfolgreich einen Brute-Force-Angriff durchgeführt und ein neues Passwort auf dem Honeypot-System festgelegt hatte, beobachteten wir eine Remote-Anmeldung mit diesen Anmeldeinformationen. Der Login stammt von 212.234.225[.]29. Der Angreifer führte sofort eine grundlegende Aufklärung durch, indem er den Befehl w ausführte, um zu überprüfen, wer angemeldet war, und dann ps ausführte, um zu sehen, welche Prozesse ausgeführt wurden. Während der Eingabe von Befehlen machten sie einen kleinen Tippfehler und beendeten die Eingabeaufforderung mit einem schnellen Strg+C, was zu diesem Zeitpunkt auf eine manuelle Interaktion und nicht auf ein automatisiertes Skript hindeutete. Als nächstes fügte der Angreifer eine Reihe von Befehlen ein, um eine neue Kopie dota3.tar.gz über wgetherunterzuladen, entpackte sie und führte das neu abgerufene Skript aus.

Diese gesamte Aktivitätskette kann über die Sitzungsansicht angezeigt werden, ein Untersuchungstool, mit dem Sie Linux-Prozessdaten untersuchen können, die in einer baumartigen Struktur gemäß dem logischen Linux-Ereignismodell organisiert sind, wobei die Prozesse nach Abstammung und Ausführungszeit organisiert sind. Es zeigt Ereignisse in einem gut lesbaren Format an, das vom Terminal inspiriert ist. Dies macht es zu einem leistungsstarken Tool zum Überwachen und Untersuchen von Sitzungsaktivitäten in Ihrer Linux-Infrastruktur und zum Verständnis des Benutzer- und Dienstverhaltens.

Die oben gezeigte Angriffskette spiegelt die ursprüngliche Infektionsmethode wider, was darauf hindeutet, dass der Angreifer entweder Komponenten aktualisiert oder den Host erneut infiziert hat, um die Persistenz aufrechtzuerhalten. Kurz nachdem er überprüft hatte, ob die aktualisierte Nutzlast ausgeführt wurde, trennte sich der Angreifer vom Host und hinterließ eine Umgebung, die für fortgesetztes SSH-Brute-Forcing, Kryptowährungs-Mining und Fernsteuerung über IRC vorbereitet war.

Diese kurze Anmeldung dient als Erinnerung daran, dass selbst einfache Kampagnen Taschen mit interaktiven Angreiferaktivitäten enthalten können – eine Art manuelle "Qualitätsprüfung" – was die Bedeutung einer rechtzeitigen Erkennung und schnellen Eindämmung unterstreicht.

Erkennung von OUTLAW durch MITRE ATT&CK

OUTLAW ist eine Linux-Malware, die sich auf SSH-Brute-Force-Angriffe, Kryptowährungs-Mining und wurmähnliche Verbreitung stützt, um Systeme zu infizieren und die Kontrolle über sie zu behalten. Obwohl es nicht sehr ausgefeilt ist, deckt es ein breites Spektrum von MITRE ATT&CK-Techniken ab, was es zu einem effektiven Fall für die Detektionstechnik macht.

In diesem Abschnitt wird die Angriffskette von OUTLAW auf MITRE ATT&CK abgebildet, wobei Elastic SIEM- und Endpunktregeln sowie Abfragen zur Bedrohungssuche hervorgehoben werden, die die Aktivität in verschiedenen Phasen identifizieren können.

OUTLAW folgt einem strukturierten Infektionsablauf:

  • Initial Access – SSH-Brute-Force gegen schwache Anmeldeinformationen.
  • Ausführung – Führt bösartige Skripte aus, um mehrere Stadien der Malware-Infektion auszulösen.
  • Persistenz – Installiert Cron-Jobs und ändert SSH-Schlüssel.
  • Defense Evasion – Versteckt sich in versteckten Verzeichnissen, ändert Dateiberechtigungen, verwendet Packtechniken, Befehlscodierung und verschleiert Skripte.
  • Zugriff auf Anmeldeinformationen – Ändert Anmeldeinformationen und fügt öffentliche SSH-Schlüssel ein.
  • Ermittlung : Listet Benutzer-, System- und Hardwaredetails auf.
  • Lateral Movement – Verbreitet sich über interne SSH-Brute-Force- und Malware-Übertragung.
  • Sammlung und Exfiltration – Sammelt und exfiltriert Systemdaten auf den C2.
  • Command and Control – Verwendet socat und STEALTH SHELLBOT für die C2-Kommunikation.
  • Auswirkung – Startet XMRIG, um Kryptowährung zu schürfen, und nutzt den infizierten Host als Brute-Force-Knoten.

In den folgenden Abschnitten werden die Erkennungsstrategien für jede Technik detailliert beschrieben, die den Verteidigern helfen, die Infektionen von OUTLAW effektiv zu identifizieren und einzudämmen.

TA001: Erstzugriff

OUTLAW verschafft sich den ersten Zugriff durch opportunistisches SSH-Brute-Forceing, das auf Systeme mit schwachen oder standardmäßigen Anmeldeinformationen abzielt. Elastische, vorgefertigte Erkennungsregeln können diese Methode des Erstzugriffs erfolgreich erkennen. Dazu gehören:

Darüber hinaus gibt es mehrere Regeln, die auf Authentifizierungsprotokollen basieren, um verdächtige SSH-Authentifizierungen zu erkennen:

Neben der Abhängigkeit von Erkennungen ist es wichtig, die Bedrohungssuche in Ihren Workflow zu integrieren. Elastic Security bietet mehrere Hunting-Abfragen mit ES|QL und OSQuery, die in unserem Repository für Erkennungsregeln öffentlich verfügbar sind, insbesondere im Unterverzeichnis Linux Hunting. Die folgenden beiden Hunts können beispielsweise bei der Identifizierung verschiedener Phasen des Angriffs hilfreich sein:

TA002: Ausführung

Nach dem ersten Zugriff führt OUTLAW eine Reihe von Skripten und Binärdateien aus, um die Kontrolle herzustellen. Beim Herunterladen und Entpacken stellen wir Folgendes fest:

Das STEALTH SHELLBOT-Skript wird erkannt durch:

Darüber hinaus führt die Malware mehrere verdächtige Systembefehle aus und löst Folgendes aus:

TA003: Persistenz

Diese Kombination aus cron-basierter Ausführung und SSH-Schlüsselmanipulation ermöglicht es OUTLAW, auf kompromittierten Systemen dauerhaft Fuß zu fassen. Beide Persistenztechniken werden in unserer Publikation "Linux Detection Engineering - A primer on persistence mechanisms" ausführlich untersucht. Wir können diese Techniken durch die folgenden SIEM- und Endpunktregeln erkennen:

Darüber hinaus können wir nach diesen Techniken durch die folgenden ES|QL- und OSQuery-Jagden:

TA005: Umgehung der Verteidigung

OUTLAW verwendet mehrere Techniken zur Umgehung der Verteidigung, um nicht entdeckt zu werden. Eine der primären Methoden ist die Base64-Decodierung, die durch die folgenden vordefinierten Regeln erkannt wird:

Darüber hinaus sind die Binärdateien der Malware mit UPX gefüllt, wodurch ihre Größe reduziert und ihre Signatur geändert wird, um der herkömmlichen Malware-Erkennung zu entgehen. Sobald die Malware im Speicher entpackt wird, wird dies durch unsere allgemeinen Malware-Erkennungen erkannt.

Im weiteren Verlauf der Ausführungskette erstellt die Malware mehrere versteckte Dateien und Verzeichnisse und modifiziert sie mit chattr:

Wir können die Erkennung durch die folgende Suchanfrage weiter verbessern:

TA006: Zugriff auf Anmeldeinformationen

OUTLAW erhält einen dauerhaften Zugriff auf ein kompromittiertes System, indem es Anmeldeinformationen manipuliert. Nach erfolgreicher SSH-Brute-Force-Authentifizierung ersetzt die Malware die vorhandene SSH-authorized_keys-Datei durch eine neue Version, die einen bösartigen öffentlichen SSH-Schlüssel enthält, und gewährt so dauerhaften Zugriff. Dies wird durch die folgenden Signale erkannt:

Die Malware ändert dann die Benutzeranmeldeinformationen für das authentifizierte Konto, indem sie mit dem Dienstprogramm passwd ein neues Kennwort eingibt:

TA007: Entdeckung

OUTLAW sammelt nach erfolgreicher Infektion Systeminformationen, um ein Profil der kompromittierten Umgebung zu erstellen. Die Malware führt verschiedene Befehle aus, um Details über die CPU, die Benutzerrechte, das Betriebssystem, die Speicherauslastung und die verfügbaren Binärdateien des Systems zu sammeln. Dieser Erkundungsschritt hilft dem Angreifer, die Fähigkeiten des Systems zu bewerten und zu bestimmen, wie der kompromittierte Computer am besten genutzt werden kann. Diese werden alle durch mehrere Bausteinregeln erkannt, die in unserem rules_building_block Verzeichnis aufgeführt sind. Im Folgenden finden Sie eine kurze Liste der wichtigsten, die durch OUTLAW ausgelöst wurden:

Die Standardeinstellungen der Benutzeroberfläche enthalten aufgrund ihres relativ hohen Rauschpegels keine Bausteinregeln. Diese Regeln können jedoch aktiviert werden, um die Identifizierung potenzieller Bedrohungen zu unterstützen.

TA008: Seitliche Bewegung

OUTLAW-Malware verbreitet sich über ein kompromittiertes Netzwerk, indem sie interne SSH-Brute-Force-Angriffe durchführt. Wir können dieses Verhalten durch die folgenden ES|QL-Regeln:

Sobald ein System erfolgreich mit einem Brute-Force-Angriff versehen wurde, wird das Malware-Paket, dota3.tar.gz, vom infizierten Host auf dem neuen Ziel bereitgestellt. Das lokale Subnetz wird dann nach zusätzlichen Zielen durchsucht, um die weitere Ausbreitung der Malware sicherzustellen.

Elastische, vorgefertigte Erkennungsregeln können diese Lateral-Movement-Versuche identifizieren:

Darüber hinaus werden beim Kopieren der OUTLAW-Malware auf einen Remote-Host Warnungen zur Malware-Prävention ausgelöst.

TA009: Sammlung & TA010: Exfiltration

OUTLAW sammelt grundlegende Systeminformationen, Anmeldeinformationen und SSH-Details von kompromittierten Computern, hauptsächlich um infizierte Hosts zu verfolgen und weitere Angriffe zu erleichtern. Diese Daten werden in einer einfachen Textdatei gespeichert, bevor sie auf einen C2-Server hochgeladen werden. Da diese Erfassungsaktivität auf das Sammeln von Systemdetails und deren Schreiben in eine Datei beschränkt ist, ist sie für sich genommen nicht von Natur aus verdächtig.

Eine Exfiltration erfolgt, wenn OUTLAW eine ausgehende SSH-Verbindung über einen sftp-Server initiiert, um die gesammelten Informationen an einen vordefinierten C2-Server zu übertragen. Während dies normalen SSH-Aktivitäten ähneln kann, können wir die verdächtige Ausführung von Dateiübertragungsprogrammen über ES|QL:

TA011: Führung und Kontrolle

OUTLAW hält die Kommunikation mit seiner C2-Infrastruktur über mehrere Kanäle aufrecht, die es Angreifern ermöglichen, Befehle zu erteilen, Daten zu exfiltrieren und infizierte Systeme zu verwalten. Wir können mehrere der von der Malware verwendeten Dienstprogramme anhand der folgenden Regeln erkennen:

Dieselben Hunting-Abfragen, die für die Erkennung der ersten Zugriffsversuche der Malware relevant waren, können auch für die Jagd nach dieser C2-Aktivität verwendet werden. Darüber hinaus können die folgenden Suchabfragen verwendet werden:

TA040: Auswirkungen

OUTLAW wirkt sich auf infizierte Systeme aus, indem es CPU-Ressourcen für das Mining von Kryptowährungen verbraucht und SSH-Brute-Force-Angriffe durchführt, um sich zu verbreiten. Vor dem Start der modifizierten XMRIG-Mining-Software werden mehrere CPU- und Speicheroptimierungen versucht, einschließlich der Aktivierung des MSR-Schreibzugriffs und des Setzens von Kernel-Parametern wie hugepages. Diese Änderungen können durch die folgenden Regeln erkannt werden:

Da OUTLAW versucht, den MSR-Schreibzugriff über modprobe zu aktivieren, aber nicht über die erforderlichen Berechtigungen verfügt, werden Kernel-Treiber-bezogene Regeln ausgelöst:

Diese Regeln überwachen direkt init_module() und finit_module() Systemaufrufe über Auditd. Weitere Informationen zum Einrichten der Auditd Manager-Integration zum Erfassen von Treiberereignissen und vielem mehr finden Sie in der Veröffentlichung Linux Detection Engineering with Auditd .

Gleichzeitig werden SSH-Brute-Force-Versuche vom infizierten Host aus gestartet, die Folgendes auslösen:

Während der Ausführung führt OUTLAW Kill-Skripte aus, um konkurrierende Malware oder übrig gebliebene Prozesse früherer Infektionen zu beenden. Dieses Verhalten löst Folgendes aus:

Indikatoren für Kompromittierung (IOCs)

Den kompletten Satz an Indikatoren finden Sie als Bundle auf Github.

Yara-Unterschriften

rule Linux_Hacktool_Outlaw_cf069e73 {
    meta:
        author = "Elastic Security"
        description = "OUTLAW SSH bruteforce component fom the Dota3 package"
        reference_sample = "c3efbd6b5e512e36123f7b24da9d83f11fffaf3023d5677d37731ebaa959dd27"
      
    strings:
        $ssh_key_1 = "MIIJrTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQI8vKBZRGKsHoCAggA"
        $ssh_key_2 = "MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAECBBBC3juWsJ7DsDd2wH2XI+vUBIIJ"
        $ssh_key_3 = "UCQ2viiVV8pk3QSUOiwionAoe4j4cBP3Ly4TQmpbLge9zRfYEUVe4LmlytlidI7H"
        $ssh_key_4 = "O+bWbjqkvRXT9g/SELQofRrjw/W2ZqXuWUjhuI9Ruq0qYKxCgG2DR3AcqlmOv54g"
        $path_1 = "/home/eax/up"
        $path_2 = "/var/tmp/dota"
        $path_3 = "/dev/shm/ip"
        $path_4 = "/dev/shm/p"
        $path_5 = "/var/tmp/.systemcache"
        $cmd_1 = "cat /proc/cpuinfo | grep name | head -n 1 | awk '{print $4,$5,$6,$7,$8,$9;}'"
        $cmd_2 = "cd ~; chattr -ia .ssh; lockr -ia .ssh"
        $cmd_3 = "sort -R b | awk '{ if ( NF == 2 ) print } '> p || cat b | awk '{ if ( NF == 2 ) print } '> p; sort -R a"
        $cmd_4 = "rm -rf /var/tmp/dota*"
        $cmd_5 = "rm -rf a b c d p ip ab.tar.gz"
    condition:
        (all of ($ssh_key*)) or (3 of ($path*) and 3 of ($cmd*))
}

Übersicht über SIEM- und Endpunktregeln von MITRE ATT&CK Tactic

Technik-IDBeschreibung
TA001: ErstzugriffPotentieller externer Linux SSH Brute-Force-Angriff erkannt
Potentiell erfolgreicher SSH-Brute-Force-Angriff
Erfolgreiche SSH-Authentifizierung mit ungewöhnlichem öffentlichem SSH-Schlüssel
Erfolgreiche SSH-Authentifizierung von einem ungewöhnlichen Benutzer
Erfolgreiche SSH-Authentifizierung von ungewöhnlicher IP-Adresse
TA002: AusführungFile Downloaded from Suspicious Source by Web Server
Linux.Trojan.Pornoasset
Skript, das über einen ungewöhnlichen übergeordneten Prozess ausgeführt wird
Verdächtige Systembefehle, die von einer bisher unbekannten ausführbaren Datei ausgeführt werden
TA003: PersistenzCron Job Created or Modified
Änderung der Datei für autorisierte SSH-Schlüssel
Mögliche Persistenz durch Dateiänderung
TA005: Umgehung der VerteidigungBase64-dekodierte Nutzlast, die an den Interpreter weitergeleitet wird
Ungewöhnliche Base64-Codierungs-/Decodierungsaktivität
TA006: Zugriff auf AnmeldeinformationenÄnderung der Datei für autorisierte SSH-Schlüssel
Löschen von Dateien mit autorisierten SSH-Schlüsseln
Änderung der Anmeldeinformationen für Linux-Benutzerkonten
TA007: EntdeckungErkennung von Linux-Systeminformationen
TA008: Seitliche BewegungPotenzielle Port-Scan-Aktivität von einem kompromittierten Host
TA009 & TA010: Sammlung & ExfiltrationUngewöhnliches Dateiübertragungsprogramm gestartet
TA011: Führung und KontrolleSocat Reverse Shell- oder Listener-Aktivität
TA040: AuswirkungenVerdächtige Aktivität von Kernel-Funktionen

Fazit

OUTLAW ist ein Beispiel dafür, wie selbst einfache Malware in modernen Umgebungen bestehen und effektiv skaliert werden kann. Trotz des Mangels an fortschrittlichen Umgehungstechniken ermöglicht die Kombination aus SSH-Brute-Force-Angriffen, Selbstreplikation und modularen Komponenten die Aufrechterhaltung eines lang laufenden Botnets. OUTLAW gewährleistet eine kontinuierliche Expansion mit minimalen Eingriffen von Angreifern, indem es kompromittierte Hosts nutzt, um Infektionen weiter zu verbreiten.

Unser Honeypot-Experiment bot einen seltenen Einblick in das Verhalten des Angreifers in der realen Welt und bestätigte, dass zwar ein Großteil der Abläufe von OUTLAW automatisiert ist, es aber Momente direkter menschlicher Interaktion gibt. Die Fähigkeit, manuelle Befehle, Aufklärungsversuche und sogar einfache Tippfehler zu beobachten, unterstreicht einen oft übersehenen Aspekt der Botnet-Wartung – die bedienergesteuerte Qualitätskontrolle. Diese Erkenntnisse unterstreichen den Bedarf an Erkennungsstrategien, die nicht nur automatisierte Angriffe, sondern auch manuelle Aktivitäten nach der Kompromittierung berücksichtigen.

Durch das Verständnis, wie OUTLAW Infektionen funktioniert, verbreitet und monetarisiert, können Verteidiger robuste Erkennungsstrategien entwickeln, um die Auswirkungen abzuschwächen. Dieser Bericht bietet umsetzbare SIEM-Regeln, Abfragen zur Bedrohungssuche und forensische Einblicke, die es Sicherheitsteams ermöglichen, ähnlichen sich entwickelnden Bedrohungen immer einen Schritt voraus zu sein.

Referenzen

[1] CounterCraft, DOTA3-Malware immer wieder

[2] Juniper Networks, DOTA3: Ist Ihr Internet-of-Things-Gerät Schwarzarbeit?

[3] SANS ISC, Hygiene Hygiene

[4] Darktrace, Outlaw Returns: Aufdeckung wiederkehrender Funktionen und neuer Taktiken