De emotet-malwarecampagne bestaat al lange tijd. Deze verspreidt zich regelmatig en met verschillende technieken en varianten om malware op een slachtoffer te verspreiden. Aanvallers zijn slim en gebruiken complexe technieken om detectie te voorkomen. Begin 2017 zagen we de emotet-campagne zich verspreiden via bijgevoegde PDF- en JS-bestanden in e-mails. Deze keer verspreidt de campagne zich via MS Office Word-documenten met daarin een sterk verhulde macro.
Aanvalsketen

Het verspreidingsmechanisme van deze campagne is een phishingmail. Onderwerpen zoals 'Factuur', 'Leveringsgegevens', 'Verzendgegevens', 'Betaalgegevens', enzovoort, worden gebruikt om het slachtoffer ertoe te verleiden de e-mail te openen. Dergelijke e-mails zijn gehackt of afkomstig van phishingsites die een Word-document downloaden. Een andere manier is door een document rechtstreeks in de e-mail te plaatsen of soms een gecomprimeerd bestand met een documentbestand toe te voegen.

Gedetailleerde analyse van Macro
Een kwaadaardig Office-document met een macro erin wordt geactiveerd wanneer op Bewerken inschakelen wordt geklikt. We hebben één voorbeeld genomen. Het bevat twee zwaar verhulde macro's, zoals "prMzoHTQ" en "zdXXRhCd". Een code met de Sub AutoOpen()-functie voert de macro's uit.

In de eerste macro "zdXXRhCd" staat een functie FAUzvR() die een string als argument accepteert. Tijdens de deobfuscatiefase ontdekten we dat er junkcode werd gebruikt om complicaties te veroorzaken in de omgekeerde code. Bij een foutieve hervatting betekent dit dat er junkcode is, indien aanwezig, negeer deze. Shell gebruikt de code om deze uit te voeren. Naast de shell staat vbkeyP, wat staat voor de letter "P". De waarden MIqCuXCZPMl, SOznt en vier andere parameters worden doorgegeven aan de functie FAUzvR(), zoals weergegeven in de afbeelding. Deze worden gedeclareerd als een functie in de tweede macro. De motivatie van de tweede macro is het combineren van strings en het retourneren van een waarde naar de functie FAUzvR() in de eerste macro. De functie FAUzvR() maakt een WScript Shell-object aan en voert de functies uit met vbkeyP om de onderstaande uitvoer te verkrijgen.
“PowersHeLL -e KABuAEUAVwAtAG8AYgBKAEUAYwBUACAAIABT…...”
We krijgen de laatste PowerShell-opdracht zoals weergegeven in onderstaande afbeelding.

Bij het bekijken van de opdracht ontdekten we dat PowerShell een gecodeerde base64-string bevatte. Na het decoderen van de base64-string kregen we onderstaande uitvoer:

Vervolgens wordt een PowerShell-script weergegeven. De inhoud bestaat uit een gecomprimeerde Base64-string met PowerShell-parameters. Het script IO.StreamReader initialiseert een nieuwe instantie van de StreamReader-klasse voor het opgegeven bestand, met de opgegeven tekencodering. IO.compression.compressionMode stelt de compressiemodus in op Decompressie. Het Deflate-streamobject wordt gedecomprimeerd door bytes uit MemoryStream. [SySTem.tExt.encodIng]::ASCII Stelt de compressiemodus in op ASCII. REadtOEND() leest de volledige stream en retourneert de ASCII-string die erin is opgenomen.
Om het script te deobfusceren moeten we eerst de string decoderen met base64. Door decompressie krijgen we de output in de onderstaande afbeelding:

We krijgen eindelijk een gedeobfusceerd script. Het bevat een lijst met schadelijke URL's. Het script downloadt malware van URL's en genereert willekeurige bestandsnamen door een getal tussen 1 en 994915 te selecteren. Deze worden vervolgens op de locatie %temp% bewaard als een .exe-extensie. Vervolgens wordt de malware uitgevoerd met Start-Process.
We zijn verschillende verduisteringsmethoden tegengekomen, zoals weergegeven in de onderstaande figuren.



Payloadanalyse
Het gedownloade bestand “{Random_number} .exe ” wordt vervolgens uitgevoerd vanuit de map %temp%.
In dit geval vonden we de payloadnaam "iwamregutilman.exe" . Deze hernoemde het exemplaar en startte een kopie met de naam "wsdquota.exe" vanuit de locatie "C:\Windows\system32".
Dit bestand heeft opnieuw een eigen exemplaar gegenereerd en de activiteit ervan weergegeven.

De gedownloade payload bevat een vooraf gedefinieerde lijst met woorden. Door een combinatie van twee woorden uit deze lijst te gebruiken, wordt de naam van de tweede zelfkopiërende payload gegenereerd, die vervolgens vanuit de respectievelijke locaties wordt uitgevoerd. Als het systeem 32-bits is, wordt de zelfkopiërende payload uitgevoerd vanuit de map "C:\Windows\System32", terwijl dit bij een 64-bits systeem "C:\Windows\SysWOW64" is.

Hieronder vindt u een lijst met namen die in dit bestand zijn opgeslagen.

Door het eerste woord "wsd" en het tweede woord "quota" te combineren, ontstaat de bestandsnaam "wsdquota.exe".
De eerste instantie van het verwijderde bestand bevat de enorme hoeveelheid versleutelde data. Deze data wordt tijdens runtime ontsleuteld en er worden twee PE-bestanden in het geheugen geschreven die door het bovenliggende bestand voor verdere verwerking kunnen worden gebruikt.
Hierna controleert het bovenliggende proces of het proces zelf wordt gestart. Zo niet, dan maakt het een mutex aan, sluit het het bovenliggende proces en draait het als een afzonderlijk proces.
Het gegenereerde proces maakt een lijst van alle actieve processen en slaat deze op in een geheugen. Daarna begint het met het inventariseren van elk proces.

Met behulp van de functie CreateToolhelp32Snapshot wordt een momentopname gemaakt van elk proces, inclusief de threads, heaps en modules die door deze processen worden gebruikt.

Nadat de malware de details van elk lopend proces heeft vastgelegd, begint het met het versleutelen van de gegevens en verstuurt deze in een POST-verzoek naar de kwaadaardige server.

Omdat niet alle kwaadaardige servers actief zijn, kunnen we de berichtactiviteit niet vinden na de reactie van deze malware.
Hieronder vindt u een lijst met schadelijke URL's die voorkomen in de malware die de POST-aanvraag naar elke URL stuurt.

IOCs
4154619d2075d3f6c9e73bf4cdccdb17 (DOC)
6f86fa7d95fed4472ad03eb77cb6a9a4 (DOC)
2dcf064d40ef8fda90193fb00d306020 (DOC)
8249D414627D3DDE168318C92A63F74A (PE)
7B6E1369FF14E16A4815AE1DB32F0794 (PE)
Detectiestatistieken
Quick Heal heeft de spam-e-mail, de oorspronkelijke vector van de Emotet-campagne, succesvol gedetecteerd. Dit is een speciaal type detectie dat Quick Heal biedt voor het detecteren van dergelijke campagnes.
Hieronder vindt u de statistieken van e-maildetecties van de afgelopen maand.

Omdat Quick Heal de initiële vector van de Emotet-campagne detecteert, zien we minder hits van de tweede en derde vector van deze campagne.

Detectie namen
- MIME.Emotet.Downloader.31464
- MIME.Emotet.31831
- MIME.Emotet.31617
- MIME.Emotet.31618
- W97M.Emotet.31645
- W97M.Emotet.31769
- X97M.Emotet.32092
- Trojan.Emotet.Y4
- Trojan.Emotet.X4
Conclusie
Het verspreiden van Emotet-malware via spam-mail, waarbij gebruik wordt gemaakt van social engineering-trucs om de gebruiker eenvoudig te phishen.
Quick Heal biedt bescherming op meerdere niveaus tegen elke laag van de Emotet-campagne.
Te volgen veiligheidsmaatregelen
- Open geen enkele link in een e-mailbericht dat door een onbekende afzender is verzonden.
- Download geen bijlagen die u van een onbetrouwbare bron hebt ontvangen.
- Schakel altijd de e-mailbeveiliging van uw antivirussoftware in.
- Schakel 'macro's' of 'bewerkingsmodus' niet in bij het uitvoeren van het document.
Vakexperts:
Prashant Tilekar, Aniruddha Dolas, Preksha Saxena, Prakash Galande, Vallabh Chole | Quick Heal-beveiligingslaboratoria



