SOC Prime Bias: Kritisch

27 May 2026 15:26 UTC

Von der Netzwerkgrenze zur Unternehmenskompromittierung: Mehrstufige Linux-Einbruch über F5 und Confluence

Author Photo
SOC Prime Team linkedin icon Folgen
Von der Netzwerkgrenze zur Unternehmenskompromittierung: Mehrstufige Linux-Einbruch über F5 und Confluence
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Ein Bedrohungsakteur verschaffte sich zunächst Zugang über einen exponierten F5 BIG-IP-Load-Balancer, schwenkte dann auf einen internen Linux-Server um und kompromittierte später eine interne Atlassian Confluence-Instanz, indem er eine bekannte Schwachstelle ausnutzte. Von dort aus führte der Angreifer umfangreiche Erkundungen durch, stahl Anmeldedaten und startete Kerberos- und NTLM-Relay-Angriffe gegen Windows-Domänenressourcen. Die Operation basierte auf einer Mischung aus Open-Source-Tools und benutzerdefinierten Skripten für Scanning, laterale Bewegung und Datenexfiltration.

Untersuchung

Microsoft Defender Security Research verfolgte die Eindringung vom kompromittierten BIG-IP-Gerät zum internen Linux-Host, wo Ermittler ein benutzerdefiniertes Scanning-Tool fanden, das von einer bösartigen IP-Adresse heruntergeladen wurde. Die Analyse dokumentierte auch den Einsatz von Dienstprogrammen wie Nmap, gowitness und Responder während des Angriffs. Forscher entdeckten weiterhin den Diebstahl von Anmeldeinformationen aus Confluence-Konfigurationsdateien, gefolgt von Relay-Angriffen auf den Domänencontroller und andere Windows-Ressourcen.

Minderung

Organisationen sollten internetseitige Randgeräte als Tier-0-Assets behandeln, striktes Patch-Management und Lebenszyklusmanagement für veraltete oder nicht unterstützte Geräte anwenden und die Exposition von Managementschnittstellen begrenzen. Interne Webanwendungen sollten gehärtet und umgehend gegen bekannte Schwachstellen aktualisiert werden. Stärkere Authentifizierungskontrollen, einschließlich der Deaktivierung von NTLM, wo immer möglich, und der Durchsetzung der SMB-Signatur, können helfen, die Auswirkungen von relay-basierten Angriffen zu verringern.

Reaktion

Verteidiger sollten bei ungewöhnlichen SSH-Anmeldungen von unerwarteten IP-Adressen Alarm schlagen, unbefugte Dateiübertragungen und die Ausführung bekannter Scanning-Utilities überwachen und verdächtige ELF-Binärdateien blockieren. Sicherheitsteams sollten auch möglicherweise exponierte Anmeldedaten rotieren, das Prinzip des geringsten Privilegs für Dienstkonten durchsetzen und die Integrität der Confluence- und Active Directory-Konfigurationen überprüfen.

"graph TB %% Class definitions classDef action fill:#99ccff classDef technique fill:#c2e0ff classDef tool fill:#e6e6e6 classDef credential fill:#ffdd99 %% Schritt 1 u2013 Nutzen Sie öffentlich zugängliche Anwendungen aus step1_exploit["<b>Technik</b> – <b>T1190 Nutzen Sie öffentlich zugängliche Anwendungen aus</b><br/><b>Beschreibung</b>: Der Gegner nutzt eine Schwachstelle in einem Internet-exponierten Dienst aus, um anfänglichen Zugang zu erlangen."] class step1_exploit technique %% Tool u2013 Anfälliges F5 BIGu2011IP tool_f5["<b>Tool</b> – <b>Name</b>: F5 BIGu2011IP Load Balancer (anfällig)<br/><b>CVE</b>: CVEu20112025u201153521"] class tool_f5 tool %% Schritt 2 u2013 Exploitation of Remote Services step2_remote["<b>Technik</b> – <b>T1210 Exploitation of Remote Services</b><br/><b>Beschreibung</b>: Verwenden Sie die gleiche Schwachstelle, um Code auf dem Zielsystem auszuführen und sich lateral zu bewegen."] class step2_remote technique %% Schritt 3 u2013 SSH Remote Services step3_ssh["<b>Technik</b> – <b>T1021.004 SSH</b><br/><b>Beschreibung</b>: Authentifizieren Sie sich per SSH mit einem privilegierten Konto auf einem internen Linux-Host."] class step3_ssh technique %% Schritt 4 u2013 Remote Service Session Hijacking step4_hijack["<b>Technik</b> – <b>T1563.001 Remote Service Session Hijacking</b><br/><b>Beschreibung</b>: Halten Sie eine interaktive SSH-Sitzung für die Befehlsausführung aufrecht."] class step4_hijack technique %% Schritt 5 u2013 Aktives Scanning (IP-Blöcke) step5_ipscan["<b>Technik</b> – <b>T1595.001 Scanning IP Blocks</b><br/><b>Beschreibung</b>: Führen Sie Nmap-Skripte aus, um aktive Hosts und offene Ports über interne Subnetze hinweg zu entdecken."] class step5_ipscan technique %% Tool u2013 Nmap tool_nmap["<b>Tool</b> – <b>Name</b>: Nmap<br/><b>Zweck</b>: Netzwerkerkennung und Port-Scanning"] class tool_nmap tool %% Schritt 6 u2013 Aktives Scanning (Schwachstelle) step6_vulnscan["<b>Technik</b> – <b>T1595.002 Schwachstellensuche</b><br/><b>Beschreibung</b>: Verwenden Sie einen benutzerdefinierten Scanner und gowitness, um anfällige interne Anwendungen wie Confluence zu lokalisieren."] class step6_vulnscan technique %% Tool u2013 gowitness tool_gowitness["<b>Tool</b> – <b>Name</b>: gowitness<br/><b>Zweck</b>: Screenshots von Webdiensten zur Aufzählung erfassen"] class tool_gowitness tool %% Schritt 7 u2013 Systemnetzwerkkonfigurationsentdeckung step7_netconfig["<b>Technik</b> – <b>T1016 Systemnetzwerkkonfigurationsentdeckung</b><br/><b>Beschreibung</b>: Erfassen Sie Netzwerk-Konfigurationsdetails, um die Umgebung zu kartieren."] class step7_netconfig technique %% Schritt 8 u2013 Datei- und Verzeichnissuche step8_filedisc["<b>Technik</b> – <b>T1083 Datei- und Verzeichnissuche</b><br/><b>Beschreibung</b>: Dateien auf dem kompromittierten Linux-Host und dem Confluence-Server auflisten (z.B. server.xml, confluence.cfg.xml)."] class step8_filedisc technique %% Schritt 9 u2013 Unzureichend gesicherte Anmeldeinformationen step9_creds["<b>Technik</b> – <b>T1552 Unzureichend gesicherte Anmeldeinformationen</b><br/><b>Beschreibung</b>: Extrahieren Sie Dienstkonto-Anmeldeinformationen aus Konfigurationsdateien."] class step9_creds technique %% Anmeldedaten-Knoten cred_service["<b>Anmeldedaten</b> – Geerntete Dienstkonto-Anmeldedaten"] class cred_service credential %% Schritt 10 u2013 Gültige Konten step10_valid["<b>Technik</b> – <b>T1078 Gültige Konten</b><br/><b>Beschreibung</b>: Verwenden Sie geerntete Confluence-Anmeldeinformationen erneut, um auf Active-Directory-Dienste zu authentifizieren."] class step10_valid technique %% Schritt 11 u2013 Laterale Bewegung über Remote-Dienste step11_lateral["<b>Technik</b> – <b>T1021 Remote-Dienste</b><br/><b>Beschreibung</b>: Versuchen Sie eine NTLM-basierte laterale Bewegung mit Aufzählungs- und Dateifreigabetools."] class step11_lateral technique %% Tools u2013 enum4linux, netexec, smbclient tool_enum4linux["<b>Tool</b> – <b>Name</b>: enum4linux<br/><b>Zweck</b>: Windows-Aufzählungsdaten sammeln"] class tool_enum4linux tool tool_netexec["<b>Tool</b> – <b>Name</b>: netexec<br/><b>Zweck</b>: Befehle über SMB ausführen"] class tool_netexec tool tool_smbclient["<b>Tool</b> – <b>Name</b>: smbclient<br/><b>Zweck</b>: SMB-Freigaben zugreifen"] class tool_smbclient tool %% Schritt 12 u2013 Pass the Ticket (Kerberos/NTLM-Relay) step12_passticket["<b>Technik</b> – <b>T1550.003 Pass the Ticket</b><br/><b>Beschreibung</b>: Führen Sie Kerberos- und NTLM-Relay-Angriffe (z.B. PetitPotam) gegen Domänencontroller durch."] class step12_passticket technique %% Tool u2013 PetitPotam tool_petitpotam["<b>Tool</b> – <b>Name</b>: PetitPotam<br/><b>Zweck</b>: NTLM-Relay über Microsoft RPC"] class tool_petitpotam tool %% Schritt 13 u2013 Kerberos-Tickets stehlen oder fälschen step13_kerb["<b>Technik</b> – <b>T1558 Kerberos-Tickets stehlen oder fälschen</b><br/><b>Beschreibung</b>: Privilegierte Kerberos-Tickets erhalten, um AD weiter zu kompromittieren."] class step13_kerb technique %% Schritt 14 u2013 Hijack Execution Flow (Dateiberechtigungen) step14_perm["<b>Technik</b> – <b>T1574.005 Hijack Execution Flow: Schwäche der ausführbaren Installationsdateiberechtigungen</b><br/><b>Beschreibung</b>: Fügen Sie ausführbare Berechtigungen für bösartige ELF-Binärdateien hinzu, bevor sie ausgeführt werden."] class step14_perm technique %% Schritt 15 u2013 Web-Shell bereitstellen step15_webshell["<b>Technik</b> – <b>T1505.003 Serversoftware-Komponente: Web Shell</b><br/><b>Beschreibung</b>: Bereitstellen einer Web-Shell auf dem Confluence-Server für Persistenz."] class step15_webshell technique %% Schritt 16 u2013 Anwendungsschicht-Protokolle (Dateiübertragung & Web) step16_transfer["<b>Technik</b> – <b>T1071.002 Anwendungsschicht-Protokoll: Dateiübertragungsprotokolle</b> & <b>T1071.001 Web-Protokolle</b><br/><b>Beschreibung</b>: Übertragen von Tools und Payloads über FTP und HTTP."] class step16_transfer technique %% Schritt 17 u2013 Exfiltration über alternatives Protokoll step17_exfil["<b>Technik</b> – <b>T1048 Exfiltration über alternatives Protokoll</b><br/><b>Beschreibung</b>: Exfiltrieren von Daten und Werkzeugen mit nicht standardmäßigen Anwendungsprotokollen."] class step17_exfil technique %% Verbindungen step1_exploit –>|exploits| tool_f5 step1_exploit –>|leads_to| step2_remote step2_remote –>|uses| step3_ssh step3_ssh –>|maintains| step4_hijack step4_hijack –>|enables| step5_ipscan step5_ipscan –>|uses| tool_nmap step5_ipscan –>|leads_to| step6_vulnscan step6_vulnscan –>|uses| tool_gowitness step6_vulnscan –>|leads_to| step7_netconfig step7_netconfig –>|leads_to| step8_filedisc step8_filedisc –>|leads_to| step9_creds step9_creds –>|produces| cred_service step9_creds –>|leads_to| step10_valid step10_valid –>|uses| cred_service step10_valid –>|enables| step11_lateral step11_lateral –>|uses| tool_enum4linux step11_lateral –>|uses| tool_netexec step11_lateral –>|uses| tool_smbclient step11_lateral –>|leads_to| step12_passticket step12_passticket –>|uses| tool_petitpotam step12_passticket –>|leads_to| step13_kerb step13_kerb –>|leads_to| step14_perm step14_perm –>|leads_to| step15_webshell step15_webshell –>|enables| step16_transfer step16_transfer –>|enables| step17_exfil %% Klassenzuweisungen class step1_exploit,step2_remote,step3_ssh,step4_hijack,step5_ipscan,step6_vulnscan,step7_netconfig,step8_filedisc,step9_creds,step10_valid,step11_lateral,step12_passticket,step13_kerb,step14_perm,step15_webshell,step16_transfer,step17_exfil action class tool_f5,tool_nmap,tool_gowitness,tool_enum4linux,tool_netexec,tool_smbclient,tool_petitpotam tool class cred_service credential "

Angriffsfluss

Erkennungen

Ausführung der Simulation

Voraussetzung: Die Telemetrie- & Basislinienvorprüfung muss bestanden sein.

Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die die Erkennungsregel auslösen soll. Die Befehle und die Erzählung MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird. Abstrakte oder nicht verwandte Beispiele führen zu Fehldiagnosen.

  • Angriffs-Narrativ & Befehle:

    1. Phase 1 – Privilegierter SSH-Zugriff von F5 BIG-IP

      • Ein Gegner hat Anmeldedaten für den privilegierten Account erhalten privilegierter_account auf einem F5 BIG-IP-Gerät.
      • Unter Verwendung des Verwaltungs-SSH-Dienstes des Geräts öffnet der Angreifer eine Sitzung zum Ziel-Linux-Host und injiziert die Umgebungsvariable HOSTNAME=F5_BIG-IP_device um die Regel’s SourceHostName Abgleich zu erfüllen.
    2. Phase 2 – Netzwerk-Erkundung (nmap)

      • Innerhalb der SSH-Sitzung führt der Angreifer nmap gegen das interne Subnetz aus, um aktive Hosts und Dienste zu kartieren.
    3. Phase 3 – Webdienst-Erkundung (gowitness)

      • Nach Identifizierung von Webservern ruft der Angreifer gowitness auf, um Screenshots von HTTP/HTTPS-Endpunkten zu erfassen.
    4. Umgehungs-Vermeidung (Regel-spezifisch)

      • Keine Verwendung von Python’s ftplib; daher wird die Ausschluss-ftp Klausel nicht ausgelöst.
  • Regressions-Testskript:

    #!/usr/bin/env bash
    #
    # Mehrstufige Intrusions-Simulation – löst die Sigma-Regel aus.
    # Voraussetzung: Der ausführende Benutzer muss über Sudo-Rechte verfügen, um HOSTNAME für die Sitzung festzulegen.
    #
    
    set -euo pipefail
    
    # -------------------------------------------------
    # Phase 1 - Simuliere privilegierte SSH-Anmeldung von F5
    # -------------------------------------------------
    export HOSTNAME="F5_BIG-IP_device"
    export LOGNAME="privilegierter_account"
    export USER="privilegierter_account"
    
    echo "[*] Simuliere privilegierte SSH-Sitzung von ${HOSTNAME} als ${USER}"
    
    # -------------------------------------------------
    # Phase 2 - Führe nmap (Netzwerkerkennung) aus
    # -------------------------------------------------
    echo "[*] Führe nmap-Scan auf internem Subnetz 10.0.0.0/24 aus"
    nmap -sn 10.0.0.0/24
    
    # -------------------------------------------------
    # Phase 3 - Führe gowitness (Webdienst-Aufzählung) aus
    # -------------------------------------------------
    echo "[*] Führe gowitness gegen entdeckte Webhosts aus"
    # Annahme: gowitness ist installiert und im $PATH
    gowitness file -f /tmp/discovered_web_hosts.txt
    
    echo "[+] Simulation abgeschlossen – erwarteter Alarm sollte generiert werden."
  • Aufräum-Befehle:

    #!/usr/bin/env bash
    #
    # Aufräumarbeiten für die mehrstufige Intrusions-Simulation
    #
    
    set -euo pipefail
    
    # Entfernen Sie temporäre Dateien, die von gowitness erstellt wurden
    rm -f /tmp/discovered_web_hosts.txt
    
    # Setzen Sie die in der Simulation verwendeten Umgebungsvariablen zurück
    unset HOSTNAME LOGNAME USER
    
    echo "[*] Aufräumarbeiten abgeschlossen."