A new attack vector appeared! JavaScript Infector

A new attack vector appeared! JavaScript Infector

DearBytesBlogA new attack vector appeared! JavaScript Infector

Phishing via JavaScript steeds populairder

DearBytes ontvangt regelmatig phishing e-mails waarmee geprobeerd wordt om malware te installeren op een computer. Deze e-mailberichten en de inhoud hiervan worden door ons onderzocht. Onlangs ontvingen wij een phishingbericht met een JavaScript bestand als bijlage. De kwaadwillende zender probeerde hiermee de ontvanger te verleiden om dit JavaScript bestand te openen. Het versturen van JavaScript bestanden als bijlage om ontvangers te compromitteren, is een techniek die de laatste weken steeds meer aan populariteit wint.

Bij ons had het bestand de naam “Aanvraag_Offerte_docx.js” en de ontvanger moest denken dat het om een echt document ging. Wanneer een gebruiker binnen Windows op een .JS bestand klikt, dan wordt dit niet door de browser maar door wscript.exe uitgevoerd. Op dat moment beschikt de aanvaller over veel mogelijkheden, waaronder de mogelijkheid om systeemcommando’s uit te voeren.

originelefile

Dit deed ons direct denken aan een oud virus, het iloveyou virus is 15 jaar oud het virus verstuurde  zich naar de eerste 50 email contacten van het slachtoffer.

iloveyou

Wij zijn tot nu toe nog maar één publiekelijk geval tegengekomen met overeenkomsten met de door ons aangetroffen phishingaanval:

https://www.trustwave.com/Resources/SpiderLabs-Blog/Cryptowall-and-phishing-delivered-through-JavaScript-Attachments/

 Onderzoek naar het JavaScript bestand

Uit onderzoek naar het JavaScript bestand kwam naar voren dat de kwaadwillende verzender geprobeerd heeft om de code van het JavaScript bestand meerdere malen te obfuscaten. Bij obfuscation wordt code bewust complex en onduidelijk geschreven, om zo het uiteindelijke doel van de code te verbergen. Dit kan verschillende redenen hebben, zoals het onherkenbaar maken van de code voor virusscanners of het onleesbaar maken voor eindgebruikers. De originele broncode van het JavaScript bestand zag er als volgt uit:

source_1e

De aanroep van de “eval” functie zorgt ervoor dat het script uiteindelijk uitgevoerd wordt. Alles wat tussen de eval() staat wordt deobfuscated om vervolgens door de eval() functie uitgevoerd te worden. Door de eval functie te verwijderen en de uitvoer naar een variabele te schrijven en vervolgens te printen, kan een gedeelte van de obfuscation ongedaan worden gemaakt. Dit resulteerde vervolgens in JavaScript code die beter leesbaar is:

source_2e

Ook deze uitvoer bevat een eval functie. Door nogmaals dezelfde techniek toe te passen, het verwijderen van de functie en het schrijven van de uitvoer naar een variabele, kan nogmaals een gedeelte van de code beter leesbaar worden gemaakt. Dit leverde uiteindelijk de volgende nieuwe JavaScript code op:

source_3e

In de bovenstaande code is een array (lijst), genaamd “_0x5d1e”, gespecificeerd. Deze lijst bevat hexadecimale waarden. Met behulp van Linux hebben wij deze hexadecimale waarden geconverteerd naar ASCII, zoals te zien is in onderstaande schermafdruk:
De ASCII waarden hebben wij teruggezet in het laatst gedecodeerde script, waardoor de leesbare JavaScript code zichtbaar werd:

hexdecrypt

Uit bovenstaande code valt op te maken dat er een Windows executable genaamd “reader_sl.exe” wordt gedownload vanaf het domein www.ckpn.nl. Wij hebben deze executable gedownload en gekeken wat voor een executable dit betreft. In dit geval gaat het om een Andromeda trojan en bevat verschillende functionaliteiten als download, execute, maar ook formgrabbing. Andromeda wordt ingezet om andere malware te installeren en logingegevens van gebruikers te stelen.

Eigen variant

DearBytes heeft voor phishingdoeleinden een eigen, compactere en efficiëntere variant ontwikkeld. In plaats van het downloaden en het wegschrijven van een executable naar de harde schijf, hebben wij ervoor gekozen om de kwaadaardige code direct in het geheugen te laden met behulp van Powershell. Doordat de code direct in het geheugen geladen wordt, is het voor een virusscanner vele malen lastiger om de aanval te detecteren.

improved

Het is mogelijk om bovenstaande JavaScript code op dezelfde manier te obfuscaten zoals aangetroffen en zo eventuele virusscanners en eindgebruikers te misleiden. Bij uitvoering van de bovenstaande code wordt een kwaadaardig powershell script gedownload en uitgevoerd. Dit script maakt een stuk geheugen vrij, vervolgens wordt dit geheugen uitvoerbaar gemaakt, de backdoor ingeladen en uiteindelijk uitgevoerd. De backdoor maakt via HTTPS verbinding met onze server om zo controle te verkrijgen over het systeem.

Melding NCSC

Bovenstaande type aanval hebben wij gemeld bij het NCSC, inclusief het domein ckpn.nl. Na het melden werd binnen een kort tijdsbestek het domein gedeactiveerd. Hierdoor is het niet meer mogelijk om nieuwe slachtoffers te maken met het ckpn.nl domein.