A short while ago, SafenSoft reported a new family ofmalware, named 'Ploutus', that targeted a number of ATMs in Mexico (http://www.safensoft.com/archiv/n/774/1778).The malware was installed when "criminals acquired access to the ATM'sCD-ROM drive and inserted a new boot CD into it." Many ATMs use a simple lock that is easily picked, which is likely how the attackers gained physical access to the machines. I recently acquired two copies of the Ploutus malware.In this blog post, I'll go into some of the details of the malware and explain some of the steps I took to reverse engineer it.
I'll be using these files for theremainder of this blog post:
The Ploutus malware is compiled as a.NET executable. As such, I was able to successfully decompile a large portionof the code. The malware is installed as a service under the name 'NCRDRVPS', as you can see below:
Upon execution,the malware will hook the keyboard and attempt to look for certain keycombinations. Specifically, if the following key combination is input into thevictim device, something amazing happens:
If the attackertypes this into a machine with Ploutus loaded, he or she is presented with thefollowing:
It's always nice when the bad guys give us a GUI. Thelarge buttons and the drop-down menus make it appear as though this malware mayhave been designed for a touch screen, however, we don't know that for sure. As you can see, the bulk of the GUI is in Spanish, not surprising since the malware targeted ATMs in Mexico. To save some of you a trip to Google Translate, I'vetranslated a few of the words for you below.
Generar ID : Generate ID
Activar ATM : Activate ATM
Dispensar : Dispense
Salir : Exit
Billetes : Bills
Codigo De Activacion : Activation Code
With the GUIenabled, the malware allows us to execute the following key shortcuts:
F1 – Generate ID
F2 – Activate
F3 – Dispense
F4 – Disable GUI
F5 – Key Up
F6 – Key Down
F7 – Key Right
F8 – Key Left
The malwarerequires an activation code (as seen in the GUI screenshotabove). This activation code is generated based on the month and day along witha randomized 4-digit value. We can see the activation check below:
If we followthe simple algorithm that is employed, we can successfully activate Ploutus like so:
Once it's activated, Ploutus has the ability to dispense moneyfrom the victim ATM allowing the attacker to specify the denominationand number of bills dispensed.
Overall it's a prettyinteresting sample, if only because ATM malware is somewhat rare. That's not because it's necessarily difficult to write. I suspect the reason ATM malware is rare is because it'sdifficult to install because an attacker typically requires physical access to the machine to do so (as we sawin this situation where the attackers gained access to the ATM's CD-ROM drives). Thatbeing said, it's still very much a real threat, and should not be takenlightly.