VOID#GEIST Malware
Onderzoekers op het gebied van cyberbeveiliging hebben een geavanceerde, meerfasige malwarecampagne ontdekt die gebruikmaakt van batchscripts om versleutelde Remote Access Trojan (RAT)-payloads te verspreiden. De campagne, geïdentificeerd als VOID#GEIST, zet verschillende RAT-families in, waaronder XWorm, AsyncRAT en Xeno RAT.
De aanvalsketen maakt gebruik van een versleuteld batchscript dat een reeks acties initieert die ontworpen zijn om detectie te omzeilen. Deze acties omvatten het starten van een extra batchscript, het opzetten van een legitieme ingebedde Python-runtimeomgeving en het decoderen van versleutelde shellcode-payloads. De shellcode wordt direct in het geheugen uitgevoerd nadat deze is geïnjecteerd in afzonderlijke instanties van het Windows-proces explorer.exe met behulp van een techniek die bekend staat als Early Bird Asynchronous Procedure Call (APC)-injectie.
Inhoudsopgave
Scriptgestuurde malwareverspreiding: een modern dreigingsmodel
Moderne cybercriminelen laten traditionele, op zichzelf staande uitvoerbare malware steeds vaker achter zich en kiezen in plaats daarvan voor gelaagde, scriptgebaseerde leveringsmethoden die legitiem gebruikersgedrag nabootsen. In plaats van conventionele Portable Executable (PE) binaire bestanden te gebruiken, orkestreren aanvallers pijplijnen met meerdere componenten die verschillende legitieme technologieën en scriptomgevingen combineren.
Typische componenten die binnen deze frameworks worden gebruikt, zijn onder meer:
- Batchscripts worden gebruikt om de infectiesequentie te orkestreren.
- PowerShell-opdrachten die het mogelijk maken om op een onopvallende manier payloads klaar te zetten.
- Geïntegreerde, legitieme runtime-omgevingen die portabiliteit tussen systemen garanderen.
- Onbewerkte shellcode wordt direct in het geheugen uitgevoerd om persistentie en controle te behouden.
Deze bestandsloze uitvoeringsmethode vermindert de mogelijkheden voor detectie op basis van schijfgegevens aanzienlijk. Elke afzonderlijke fase lijkt op zichzelf relatief onschadelijk en vertoont vaak overeenkomsten met routinematige beheertaken, waardoor cybercriminelen in gecompromitteerde omgevingen kunnen opereren zonder direct alarm te slaan.
Initiële toegang via phishing en de Cloudflare-infrastructuur
De aanval begint met een kwaadaardig batchscript dat via phishing-e-mails wordt verspreid. Het script is afkomstig van infrastructuur die gehost wordt op een TryCloudflare-domein. Na uitvoering vermijdt het script opzettelijk pogingen tot privilege-escalatie en opereert het strikt binnen de toegangsrechten van de ingelogde gebruiker.
Deze strategie stelt de malware in staat om een eerste voet aan de grond te krijgen en zich te mengen in de dagelijkse handelingen van de gebruiker. Door acties te vermijden die verhoogde bevoegdheden vereisen, verkleint de aanval de kans op het activeren van beveiligingswaarschuwingen of beheerdersmeldingen.
Visuele afleiding en heimelijke executietechnieken
Na de uitvoering start de malware in de eerste fase een nepdocument om het slachtoffer af te leiden. Google Chrome wordt in volledig scherm geopend om een financieel document of factuur als PDF weer te geven. Terwijl de gebruiker zich op het document concentreert, gaat de kwaadaardige activiteit op de achtergrond door.
Tegelijkertijd wordt een PowerShell-opdracht uitgevoerd om het oorspronkelijke batchscript opnieuw te starten met verborgen uitvoeringsparameters. Het gebruik van de parameter -WindowStyle Hidden voorkomt dat er een zichtbaar consolevenster verschijnt, waardoor de kwaadwillige activiteit verborgen blijft voor de gebruiker.
Volharding tijdens opstartuitvoering op gebruikersniveau
Om na een herstart van het systeem actief te blijven, plaatst de malware een aanvullend batchscript in de opstartmap van de Windows-gebruiker. Deze locatie zorgt ervoor dat het script automatisch wordt uitgevoerd telkens wanneer het slachtoffer zich aanmeldt bij het systeem.
Dit persistentiemechanisme is opzettelijk subtiel. In plaats van meer opdringerige technieken te gebruiken, zoals het wijzigen van systeemregistersleutels, het aanmaken van geplande taken of het installeren van services, vertrouwt de malware uitsluitend op standaard opstartgedrag op gebruikersniveau. Omdat deze aanpak volledig binnen de context van de huidige gebruikersrechten opereert, worden prompts voor privilege-escalatie vermeden en wordt de kans op detectie door registermonitoringtools verkleind.
Framework voor het ophalen en decoderen van payloads
Tijdens de volgende fase van de infectieketen neemt de malware contact op met een TryCloudflare-domein om extra payloadcomponenten op te halen die verpakt zijn in ZIP-archieven. Deze archieven bevatten de modules die nodig zijn om de uiteindelijke malwarepayloads te decoderen en uit te voeren.
Het gedownloade archief bevat doorgaans de volgende onderdelen:
- runn.py – een op Python gebaseerde loader die verantwoordelijk is voor het decoderen en injecteren van versleutelde shellcode-modules in het geheugen.
- new.bin – versleutelde shellcode-payload geassocieerd met XWorm
- xn.bin – versleutelde shellcode-payload die overeenkomt met Xeno RAT
- pul.bin – versleutelde shellcode-payload die overeenkomt met AsyncRAT
- a.json, n.json en p.json – sleutelbestanden die door de Python-loader worden gebruikt om de shellcode-payloads dynamisch te decoderen tijdens de uitvoering.
Dit modulaire ontwerp stelt de aanvallers in staat om verschillende payloads onafhankelijk van elkaar klaar te zetten en ze pas te activeren wanneer dat nodig is.
Ingebouwde Python-runtime voor draagbaarheid en onopvallendheid.
Nadat het archief is uitgepakt, installeert de malware een legitieme, ingebedde Python-runtime die rechtstreeks van python.org is verkregen. Door een legitieme interpreter in te bedden, is er geen afhankelijkheid meer van een eventuele bestaande Python-installatie op het geïnfecteerde systeem.
Vanuit het perspectief van een aanvaller biedt deze stap verschillende strategische voordelen. De malware wordt een op zichzelf staande uitvoeringsomgeving die in staat is om payloads te decoderen en te injecteren zonder externe afhankelijkheden. Dit verbetert de portabiliteit over verschillende systemen, verhoogt de betrouwbaarheid en draagt bij aan operationele stealth door gebruik te maken van legitieme softwarecomponenten.
Uitvoering van meerdere RAT-payloads in het geheugen
De ingebouwde Python-runtime wordt vervolgens gebruikt om het loader-script runn.py uit te voeren. De loader decodeert de shellcode die bij XWorm hoort en injecteert deze in een draaiend exemplaar van explorer.exe met behulp van Early Bird APC-injectie.
Om Xeno RAT te implementeren, maakt de malware gebruik van een legitiem Microsoft-bestand genaamd AppInstallerPythonRedirector.exe, dat wordt gebruikt om Python aan te roepen en de benodigde componenten uit te voeren. Dezelfde injectietechniek wordt vervolgens hergebruikt om AsyncRAT te implementeren, waardoor alle payloads volledig in het geheugen worden uitgevoerd zonder traditionele uitvoerbare bestanden op de schijf achter te laten.
Command-and-control bakens en modulaire architectuur
De laatste fase van de aanval omvat het verzenden van een minimaal HTTP-signaal naar de door de aanvaller beheerde Command-and-Control (C2)-infrastructuur die gehost wordt op TryCloudflare. Dit signaal bevestigt dat het systeem succesvol is gecompromitteerd en klaar is om verdere instructies te ontvangen.
Hoewel de specifieke doelwitten van de campagne onbekend blijven, vertoont de infectieketen een zeer modulaire architectuur. In plaats van één grote malwarelading te verspreiden, introduceren de aanvallers componenten stapsgewijs in meerdere fasen. Dit ontwerp verbetert de operationele flexibiliteit en veerkracht.
Vanuit een detectieperspectief komt één opvallende gedragsindicator naar voren gedurende de hele campagne: herhaalde procesinjectie in explorer.exe met korte tussenpozen. Dit patroon kan een sterk signaal zijn voor verdedigers die verdachte activiteiten in de verschillende fasen van de aanvalscyclus met elkaar in verband proberen te brengen.