Angler Exploit Kit – Operating at the Cutting Edge

Zoals we in een van onze eerdere blogposts over exploitkits (Nuclear EK) hadden beloofd, gaan we nu dieper in op Angler Exploit Kit. Angler EK is mogelijk de meest geraffineerde exploit kit die momenteel door cybercriminelen wordt gebruikt. Het is een pionier op het gebied van oplossingen die andere exploitkits later zijn gaan gebruiken, zoals antivirusdetectie en versleutelde dropper-bestanden. Bovendien integreert Angler het snelst de nieuwste zero days, zoals de Adobe Flash zero day (CVE-2015-0311) van een paar weken geleden, en gebruikt het een opmerkelijk unieke obfuscation. Tenslotte draait Angler de gedropte malware vanuit het geheugen, zonder ooit naar de harde schijf te hoeven schrijven; deze unieke techniek onder de exploit kits maakt het extreem moeilijk voor traditionele antivirus technologieën om het te detecteren, omdat ze vertrouwen op het scannen van het bestandssysteem.

Hoewel Angler de meest geavanceerde exploit kit is in het huidige bedreigingslandschap, zijn Websense klanten beschermd tegen deze bedreiging met ACE, onze Advanced Classification Engine, in de volgende stadia:

  • Stadium 2 (Lure) – ACE heeft detectie voor de gecompromitteerde websites.
  • Stage 3 (Redirect) – ACE heeft detectie voor de geïnjecteerde code die de gebruiker omleidt naar de exploit-pagina.
  • Stage 4 (Exploit Kit) – ACE heeft detectie voor de kwaadaardige code die probeert deze cyberaanval uit te voeren.
  • Stage 5 (Dropper Files) – ACE heeft detectie voor de binaire bestanden die bij deze aanval horen

Obfuscation

Angler’s landingspagina bestaat uit vier basisonderdelen. Ten eerste is er wat zichtbare Engelse tekst, die wordt gebruikt om het slachtoffer van de exploit kit te laten geloven dat ze naar een legitieme pagina hebben gebladerd. Ten tweede zijn er verschillende deobfuscation routines om de eigenlijke kwaadaardige scripts te deobfusceren. Deze scripts bevinden zich in p class tags en zijn gecodeerd als base64. Het decoderen van de base64 strings onthult de werkelijke versluierde exploit kit code. En tenslotte bevat de landingspagina diverse versleutelde strings, die diverse URL’s bevatten die leiden naar de diverse exploits (Flash, Silverlight, Internet Explorer) die in de kit zijn opgenomen.

Samples van Angler-landingspagina

Angler

Exploit

Deobfuscated Exploit Code

Wanneer de landingspagina eenmaal is gedeobfuscated, wordt de ware aard van de code onthuld. Angler gebruikt, net als Nuclear en diverse andere exploitkits, een zeer eenvoudige tweede laag versluiering om detectie door beveiligingsproducten nog moeilijker te maken.

Hij maakt ook gebruik van antivirus detectie naast het detecteren van diverse virtualisatie oplossingen (VMWare, VirtualBox, Parallels) alsmede een web debug proxy genaamd Fiddler, welke veel gebruikt wordt door beveiligingsonderzoekers. Het implementeren van deze maatregelen maakt het erg moeilijk om deze exploit kit in het wild te observeren en te onderzoeken, aangezien de meeste beveiligingsonderzoekers vaak zwaar leunen op deze tools.

Detectie van verschillende .sys en .dll bestanden die behoren tot AV en virtualisatiesoftware

Software

VMWare, VirtualBox, Parallels detectie evenals Fiddler web debugging proxy

Exploit

Het meest unieke kenmerk van Angler is het gebruik van deze versleutelde URL paden. Het gebruikt een eenvoudig op transpositie gebaseerd cijfer (in lekentaal: het door elkaar husselen van de letters) om deze gegevens te versleutelen en te ontsleutelen.

De ontsleutelingsroutine is ingebed in het versluierde deel van de exploit kit.

Decoderingsroutine zoals gevonden in de kit

Routine

Decoderingsroutine geformatteerd en becommentarieerd

Exploit

We zullen een heel eenvoudig voorbeeld gebruiken om te laten zien hoe de decodering werkt. Stel dat onze cijfertekst (versleutelde gegevens) is “TEER CSURH TO PLTAOEL IX TP” en onze ontcijferingssleutel is “OBFUSCATE”. Angler neemt de alfabetische volgorde van de letters in de sleutel en herschikt op basis daarvan de cijfertekst. Bijvoorbeeld:

OBFUSCATE → 6,2,5,9,7,3,1,8,4

Dit geeft ons de volgorde van de letters in de cijfertekst. Hiermee kunnen we de tekst eenvoudig ontcijferen door de volgorde van de letters te wijzigen.

Exemplaar ontcijfering

Malware

En tenslotte worden spaties uit de ontcijferde string verwijderd. Dit is uiteraard een zeer rudimentaire vorm van vercijfering en zou zelfs zonder sleutel zeer eenvoudig te kraken zijn als (zoals in bovenstaand voorbeeld) de klare tekst uit echte woorden zou bestaan. Angler gebruikt echter zeer gerandomiseerde URL’s, dus dit soort encryptie is meer dan voldoende om de ware aard van deze strings en de werkelijke URL paden te verbergen voor diverse beveiligingsproducten.

De rest van de gedeobfusceerde code volgt de gebruikelijke exploit kit patronen: er zijn diverse plugin detectie en versie controle routines zodat de exploit kit ‘weet’ welke exploit(s) op het doelwit af te vuren. Er zijn ook nogal wat shellcode bouwroutines omdat Angler een meerfasige shellcode gebruikt, waarbij verschillende stadia gecodeerd worden en gedecodeerd worden door de vorige stadia. Het bevat ook een hard gecodeerde encryptie/decryptie sleutel voor het dropper bestand.

Encryptiesleutel voor payload

Encryption

Multi stage Shellcode

Shellcode

Dropper

Als de exploit slaagt, wordt de payload van Angler gedropt op het systeem van het slachtoffer. Terwijl de payload door het netwerk reist, is het nog steeds versleuteld en wordt het later gedecodeerd door de shellcode van de laatste fase. Deze techniek wordt gebruikt om detectie van de kwaadaardige dropper zeer moeilijk te maken voor traditionele intrusion detection systems (IDS). Zoals we eerder vermeldden, gebruikt Angler ‘bestandsloze’ droppers, wat betekent dat ze rechtstreeks vanuit het geheugen worden uitgevoerd. De dropper die Angler gebruikt heet Bedep, en is eigenlijk alleen een downloader – dat wil zeggen, het is niet kwaadaardig op zich, maar het wordt gebruikt om verschillende malware te downloaden en uit te voeren.

De payload bestaat uit een combinatie van shellcode en de Bedep DLL. Als de eerste paar bytes van de payload “909090” zijn (NOPs of No Operations in x86 assembly) wordt de DLL uit het geheugen geladen, anders wordt het naar de schijf geschreven net als een normaal dropper bestand. De shellcode is verantwoordelijk voor het uitvoeren van de DLL vanuit het geheugen.

API

De shellcode lost API’s op zoals kernel32.dll en wininet.dll

API

Summary

Angler Exploit Kit is zonder twijfel een van de gevaarlijkste exploit kits die vandaag de dag in het wild te vinden is. Het heeft verschillende technieken in zijn arsenaal om traditionele detectiemethoden te verslaan, zoals:

  • Unique Obfuscation
  • Detects antivirus/virtualization software
  • Encrypted payload
  • Fileless infections

Daarnaast is Angler vaak de eerste om de nieuwste exploits over te nemen, waaronder van tijd tot tijd ook zero days. De voortdurend veranderende aard van Angler onderstreept ook de noodzaak van beveiligingsoplossingen die bescherming bieden in de hele kill chain in plaats van zich te richten op slechts één fase daarvan.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.