Researchers at Kaspersky Lab have come across a new and improved version of an old piece of malware that allows cybercriminals to steal money and payment card data from ATMs.
The threat, dubbed “Skimer” and detected by Kaspersky Lab products as Backdoor.Win32.Skimer, has been around since 2009 and it was one of the first pieces of malware designed to allow direct interaction with ATMs.
Kaspersky Lab has identified 49 variants of the malware, 37 of which are designed to target ATMs from a single manufacturer. The latest version, discovered in early May, is more difficult to analyze.
According to researchers, both the infector and the dropper are packed with Themida, a legitimate packer that has been abused by many malware developers in the past decade.
Once executed, the malware drops a file named netmgr.dll on the system. If the file system is FAT32, the file is dropped in the System32 folder, and if it’s NTFS, the file is placed in the NTFS data stream corresponding to an executable named SpiService.exe. This is an executable file associated with XFS, a piece of middleware that provides a client-server architecture for devices used in the financial industry.
Skimer then adds a new LoadLibrary call to SpiService.exe so that the malicious netmgr.dll library is loaded into the XFS service after the malware reboots the infected ATM. This provides the malware complete access to the XFS, allowing it to interact with the device. It’s worth noting that SpiService.exe is a service specific to Diebold machines.
By packing the malware components and by placing the malicious library in an NTFS data stream, Skimer developers most likely want to prevent researchers from conducting a forensic analysis of the threat, noted Kaspersky researcher Sergey Golovanov.
Attackers can control the malware by inserting two types of cards that have specially crafted Track 2 data into the infected machine. One of the cards is designed for executing commands hardcoded in Track 2, while the other allows attackers to launch one of 21 predefined commands using the PIN pad and the malware interface.
The malware can be used to dispense money from the machine, collect the details of cards inserted by unknowing individuals, and print the information collected from cards. Attackers can use the interface to delete the malware, debug it, and update it with code stored on the special card.
“One important detail to note about this case is the hardcoded information in the Track2 – the malware waits for this to be inserted into the ATM in order to activate. Banks may be able to proactively look for these card numbers inside their processing systems, and detect potentially infected ATMs, money mules, or block attempts to activate the malware,” Golovanov said.
“We also recommend regular AV scans, the use of whitelisting technologies, a good device management policy, full disk encryption, the protection of ATM BIOS with a password, only allowing HDD booting, and isolating the ATM network from any other internal bank networks,” the researcher added.
Unfortunately, it’s often not difficult for malicious actors to plant malware on ATMs. As Kaspersky researchers demonstrated recently, these types of devices can be targeted remotely via the network. Moreover, gaining physical access to the device might also be an easy task since the communication ports are sometimes accessible even without opening the machine.