Malware-downloader Nemucod krijgt nog meer venijn

Enige tijd terug onderzocht ESET hoe het ransomware-infectieproces van Locky werkt. Sindsdien hebben de makers van de downloader Nemucod (de code die verantwoordelijk is voor het downloaden en uitvoeren van malware zoals Locky) niet stilgezeten. De nieuwe variant maakt aanvallen nog lastiger detecteerbaar.

Een van de nieuwste versies van Nemucod laat forse verbeteringen zien ten opzichte van oude varianten. Was het proces in het verleden was nog vrij eenvoudig: de gebruiker opent een kwaadaardig bestand, het bestand downloadt de payload en de payload wordt uitgevoerd. In latere versies is dat proces een stuk geavanceerder en doorloopt de aanval de volgende stappen:

Stap 1: De meest effectieve connectiemethode kiezen

Oudere versies van Nemucod gebruikten slechts één enkele connectiemethode voor de verbinding met het internet. Dat kon echter mislukken, vanwege wisselende configuraties. Denk aan de gebruikte Windows-versie, proxy-servers, et cetera. Voor een betere compatibiliteit hebben de makers van Nemucod een functie gecreëerd die meerdere connectiemethoden probeert.

E1

De eerste methode die werkt, wordt gebruikt.

Stap 2: Verschillende downloadsites proberen

Tot voor kort probeerde Nemucod met één enkel adres verbinding te maken voor het downloaden van de payload. Doorgaans was dat een gehackte webserver. Dat aanpak had echter één nadeel: wanneer de payload was verwijderd, mislukte de aanval. Om hun kansen te vergroten hebben de Nemucod-makers in latere versies meerdere dropsites toegevoegd. Dit is terug te zien in onderstaande voorbeelden:

E2 E3

Nemucod start een cyclus langs deze websites tot er een werkt:

E4-615x184

Stap 3: Eerste ronde van deobfuscatie

In het verleden waren de door Nemucod gedownloade payloads reguliere exe-bestanden. Deze konden dan ook direct op het systeem uitgevoerd worden. Apparaten als next-gen firewalls en UTM’s konden deze uitvoerbare bestanden echter eenvoudig onderscheppen voor een scan, of zelfs geheel weigeren.

Om dat te voorkomen, downloadt de nieuwste versie van Nemucod een onherkenbaar gemaakte code. De eerste stap om die code weer herkenbaar te maken, is het bewaren van het bestand in de %TEMP%-folder van de gebruiker.

E5 E6

Daarna stuurt deze functie de inhoud van het bestand naar een andere functie die de eerste ronde van de vereenvoudiging uitvoert.

E7

Deze functie vervangt alle karakters door hun decimale waarde. Is die waarde hoger dan 127, dan vervangt de functie deze met een corresponderende waarde uit een voorgedefinieerde lijst van karakters. Is dat niet het geval, dan blijft dit karakter onaangeroerd:

E8

Stap 4: Tweede ronde van deobfuscatie

Is de eerste deobfuscatieronde voorbij, dan gaat de inhoud van het bestand naar een functie die een tweede deobfuscatieronde uitvoert. Deze ronde bestaat uit drie stappen:

  • Verwijder de laatste 4 karakters van de bestandsinhoud.
  • Voer een XOR-operatie uit op ieder karakter met het karakter “s” (0x73).
  • Draai de inhoud van het bestand om.
E9

Stap 5: de validiteit controleren

In deze stap controleert de code via een rudimentaire check of de resulterende bestandsinhoud een geldige payload is. Concreet controleert een functie of het bestandsformaat een grootte heeft tussen de 174080 en 189440 bytes, en of de bestandsnaam begint met “MZ” (0x4D5A), de header van een uitvoerbaar Windows-bestand. Mislukt die validatie, dan springt de code terug naar stap 2 en wordt er geprobeerd een payload te downloaden vanaf de volgende downloadsite.

E10-615x51

E11 Stap 6: de laatste deobfuscatieronde

Zijn alle checks doorlopen en is het bestand akkoord bevonden, dan wordt het bestand weggeschreven naar de %TEMP%-folder van de gebruiker.

E12 E13

De functie, in dit onderzoek door ons 'deobRound3' genoemd, onderwerpt het bestand gedurende het deobfuscatieproces aan nog een ronde van karaktersubstitutie, vergelijkbaar met die uit stap 3. Deze karaktersubstitutie wordt waarschijnlijk uitgevoerd om problemen met 'wide characters' te voorkomen gedurende de tweede deobfuscatieronde.

Ten slotte worden alle karakters weer geconverteerd naar hun decimale waarde en is het bestand een geldig uitvoerbaar bestand voor Windows.

E14 Stap 7: uitvoering

Nu de payload klaar is, moet deze uitgevoerd worden. In plaats van het exe-bestand direct te openen creëert Nemucod een batchbestand dat op zijn beurt het exe-bestand opent. Vervolgens wordt het batchbestand uitgevoerd:

E15

Als alles “goed” gaat, is de gebruiker nu besmet.

Conclusie 

De makers van Nemucod hebben de downloader verbeterd en zo de kans verhoogd dat deze ongezien de kwaadaardige payload kan downloaden en installeren. Deze nieuwe features doen vermoeden dat Nemucod zich met name richt op het omzeilen van de securitysystemen in zakelijke omgevingen, waar proxyservers en UTM-gateways doorgaans voor de blokkering van hun payloads zorgden.

Onderzochte bestanden

customers 366.wsf [JS/TrojanDownloader.Nemucod.ABI trojan]

  • MD5: 4DEDF4085E6D2F74CB879AD2E9680AFB
  • SHA1: EF2A9C6A61E98091A952328592D45214F6E44178

cstomers 9679.js [JS/TrojanDownloader.Nemucod.ABI trojan]

  • MD5: 42D054143A67DE14EE10F7B8C91D8A1A
  • SHA1: D3DC6E3D066BFA8E1F4408DE471BC95B001D0D25

Yhnpl47OMCLJm.exe [een variant van Win32/Kryptik.EYIB trojan]

  • MD5: C1F95ADBCAF520BF182F9014970D33E5
  • SHA1: 80B96F0207B9C5D1DAA3A6E6CF646F5AFA7BBA2C

Donny Maasland, Head of Cybersecurity Services and Research ESET Netherlands