Plato data-intelligentie.
Verticaal zoeken & Ai.

Sneaky Shellcode: Windows Fibers bieden EDR-proof code-uitvoering

Datum:

Windows-vezels, weinig bekende componenten van Windows OS, vertegenwoordigen een grotendeels ongedocumenteerd pad voor code-uitvoering dat uitsluitend in de gebruikersmodus bestaat – en daarom grotendeels over het hoofd wordt gezien door platformen voor eindpuntdetectie en respons (EDR).. Als zodanig is het voor aanvallers mogelijk om deze te misbruiken om heimelijk op pc's terecht te komen en kwaadaardige ladingen te implementeren.

Dat zegt Daniel Jary, een onafhankelijke beveiligingsonderzoeker, die twee nieuwe proof-of-concept (PoC)-aanvallen heeft ontwikkeld met behulp van vezels in een sessie bij Black Hat Asia op donderdag.

Fibers zijn een alternatief voor de standaard ‘threads’ die Windows gebruikt om code uit het besturingssysteem of een applicatie uit te voeren, legt hij uit.

"Threads zijn eigenlijk net werkers binnen een Windows-proces of een applicatie, en traditioneel zijn ze altijd de manier geweest waarop je code uitvoerde en dingen voor elkaar kreeg", vertelt hij aan Dark Reading. "Maar er is een meer niche-manier om dit te doen, via vezels."

Vezels: een vergeten en over het hoofd gezien Windows OS-pad

Vezels bestaan, wanneer ze worden gebruikt, in draden – het zijn in wezen kleinere, lichtere versies van het grotere draadconcept. Vezels werden aanvankelijk ontwikkeld in een tijd waarin CPU's minder kernen tot hun beschikking hadden en slechts een beperkt aantal threads konden verwerken. Op een hoog niveau waren de kleinere een manier om de capaciteit uit te breiden, door ontwikkelaars in staat te stellen werklasten binnen één thread op te splitsen en processen efficiënter te maken.

“Maar naarmate computers krachtiger werden en meer geheugen kregen om mee te spelen, werden vezels in de overgrote meerderheid van de scenario’s enigszins overbodig”, legt Jary uit. “En dat is de reden dat veel mensen er nog nooit van gehoord hebben en dat ze een beetje obscuur zijn, maar ze dienen wel een aantal doeleinden voor een aantal oude, verouderde applicaties en een manier om programma's van andere besturingssystemen over te zetten naar Windows. En sommige Windows-processen gebruiken zelf nog steeds vezels.”

Fibers genieten dus de twijfelachtige eer dat ze zowel een kernfunctie van Windows zijn als een functie die door beveiligingsteams over het hoofd wordt gezien. En bovendien merkt Jary op dat traditionele detectiemechanismen in EDR-platforms en antivirus-engines deze vaak negeren, waardoor ze een perfecte stealth-manier zijn om kwaadaardige code uit te voeren.

“Threads worden intensief gemonitord door EDR-agents, die kijken naar syscalls en callbacks in de kernelmodus om telemetrie vast te leggen en deze naar een regelsengine te sturen om detectie te genereren”, legt Jary uit. “Maar vezels bestaan ​​puur in de gebruikersmodus en verschijnen niet in de kernelverzameling; dus hun telemetrie wordt niet daadwerkelijk geregistreerd door EDR’s.”

Er bestaan ​​al enkele open-sourcetechnieken om te profiteren van de onder-de-radarstatus van vezels. Een PoC uit 2022 beschrijft bijvoorbeeld een methode hiervoor het verbergen van kwaadaardige shell-code in een vezel, waardoor de meeste AV-motoren worden omzeild.  

Anderen hebben er methoden voor ontwikkeld callstack-maskering, waarmee aanvallers een kwaadaardig uitvoeringspad binnen een thread (in dit geval een vezel) kunnen verbergen achter een andere, slapende vezel die goedaardig is, waardoor detectie wordt omzeild. De techniek maakt gebruik van het feit dat als er vezels in gebruik zijn, er altijd een actieve vezel is en vervolgens een slapende vezel waarmee de vezel wordt uitgeschakeld. Deze maskeermogelijkheid is in 2022 toegevoegd aan de Artefact Kit van Cobalt Strike.

Nieuwe grenzen in de uitvoering van kwaadaardige glasvezels

Jary ging onderzoeken of het mogelijk is om bestaande kwaadaardige glasvezeltechnieken te verbeteren en kwam met twee nieuwe PoC's, genaamd Phantom Thread en Poison Fiber.

Bestaande vijandige glasvezelmethoden hebben bepaalde nadelen voor aanvallers: sommige indicatoren kunnen nog steeds worden gebruikt voor EDR-detectie; en de kwaadaardigheid wordt niet verborgen voor inline, op gebeurtenissen gebaseerde callstack-verzameling. En elke verzameling slapende vezels, waarvoor verschillende technieken bestaan, zou de callstack-maskering verwijderen.

Phantom Thread is een next-gen callstack-maskeringsbenadering die het vermogen van geheugenscans om vezels te targeten, wegneemt, door die vezels te laten vermommen als draden. Dit houdt in dat er een vezel wordt gemaakt en deze vervolgens wordt gepatcht zodat deze zichzelf identificeert als een draad. Vervolgens wordt het mogelijk om eventuele vezelaanroepstapelindicatoren te verwijderen en de vezels in wezen geheel voor scannen te verbergen.

De tweede PoC, Poison Fiber, somt alle actieve Windows-processen op, kijkt naar de threads die in gebruik zijn en vervolgens of een van die threads vezels gebruikt. Vervolgens “biedt het je de mogelijkheid om je payload of je shellcode in een slapende vezel te injecteren”, legt Jary uit.

“Je kunt maar één vezel tegelijk per draad laten draaien, wat betekent dat er altijd ergens anders op de stapel een andere slapende vezel geparkeerd staat”, zegt hij. “Als we onze code uitvoeren met behulp van Poison Fiber, wordt onze code in een slapende fiber geïnjecteerd, zodat we de thread niet hoeven op te schorten om de shellcode te injecteren, wat een grote indicator is voor kwaadaardige activiteiten. En omdat we de payload in een slapende vezel hebben geïnjecteerd, activeert de applicatie de uitvoering voor ons, en initiëren we de uitvoering niet zelf.” De techniek heeft als bijkomend voordeel dat het ook RCE (remote code-execution) mogelijk maakt.

Word wakker met het vijandige potentieel van glasvezel

Hoewel ze enigszins onduidelijk blijven, zouden vezels op de lijst met aanvalsvectoren van beveiligingsteams moeten staan, waarschuwt Jary, die zijn ontwikkelde PoC's of gedetailleerde details over de methoden nog niet publiekelijk heeft vrijgegeven. Hij redeneert dat het slechts een kwestie van tijd is voordat anderen manieren vinden om de nadelen van bestaande open-source glasvezeluitvoeringsmethoden te overwinnen.  

"De alternatieve uitvoeringsmethode van Fiber is waardevol voor aanvallers omdat het ons helpt de traditionele telemetriebronnen te omzeilen die we via threads krijgen, met name kernel-callbacks", zegt hij. “Vezels zijn geen escalatietactiek voor privileges; en ze zijn geen omzeiling van de gebruikerstoegangscontrole (UAC). Maar het maakt wel een lading mogelijk die veel minder aandacht en aandacht krijgt van de beveiligingsgemeenschap. Vezels zijn heel eenvoudig te implementeren, maar moeilijker te detecteren. Dat maakt ze dus perfect voor elke scriptkiddie om bedrijven aan te vallen.”

Jary adviseert implementatie volwassen EDR-producten die voortdurend kunnen worden getoetst aan opkomende technieken als deze.

“Praat met uw rode teamers over open-source glasvezelmethoden die in het wild worden gebruikt”, zegt hij. “Doe wat onderzoek om te zien waar aanvallers plezier aan beleven, wat populair is in het wild, en geef dat vervolgens door aan je onderzoeksteam en je EDR-productontwikkelaars. Dat zal helpen bij het opbouwen van een betere verdediging en zal waarschijnlijk ook het leven van de dreigingsjagers een beetje gemakkelijker maken.”

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?