Security researchers from Kaspersky Lab have discovered a new strain of ATM malware dubbed ATMii that could be used to empty an ATM.
Security researchers from Kaspersky Lab have discovered a new strain of ATM malware dubbed ATMii. The ATMii malware was discovered in April this year, it implements an injector module (exe.exe) and the module to be injected (dll.dll). Crooks can use ATMii to drain available cash from targeted machines.
Cyber criminals need a direct access to a target ATM, either physically or over the network, to install the malicious code.
The injector is unprotected command line application that was written in Visual C language with a fake compilation timestamp dated back to four years ago.
The malicious code works for a Windows XP and later that are the OSs most ATMs run.
The analysis of the injector is poorly written, it targets the proprietary ATM software process atmapp.exe
“The injector, which targets the atmapp.exe (proprietary ATM software) process, is fairly poorly written, since it depends on several parameters. If none are given, the application catches an exception.” reads the analysis.
The supported parameters include:
- /load, which attempts to inject dll.dll into atmapp.exe.
- /cmd, which creates or updates the C:\ATM\c.ini file to pass commands and params to infected library.
- /unload, which tries to unload injected library from atmapp.exeprocess, while restoring its state.
The available commands allow dispensing a desired amount of cash, retrieve information about ATM cash cassettes, and completely remove the C:\ATM\c.ini file from the ATM.
After the injection of the DllMain function, the dll.dll library loads msxfs.dll and replaces the WFSGetInfofunction with the function mWFSGetInfo.
The injected module attempts to find the ATM’s CASH_UNIT service id to and stores the result.
If successful, all successive calls are redirected to the mWFSGetInfofunction, which parses and executes the commands from the C:\ATM\c.inifile.
“ATMii is yet another example of how criminals can use legitimate proprietary libraries and a small piece of code to dispense money from an ATM. Some appropriate countermeasures against such attacks are default-deny policies and device control.” concluded Kaspersky.
“The first measure prevents criminals from running their own code on the ATM’s internal PC, while the second measure will prevent them from connecting new devices, such as USB sticks,”