Троянец для банкоматов. Написанный на языке Delphi - красава!

Вредоносная программа, предназначенная для заражения банкоматов. Предположительно, устанавливается в систему с загрузочного компакт-диска после вскрытия злоумышленниками аппаратного отсека банкомата.

Троянец состоит из трех модулей:

  • NCRWMI.exe — написанный на языке Delphi исполняемый файл, устанавливается в инфицированной системе в качестве службы с именем NCRDRVP. Загружает библиотеку SystemP.dll.
  • SystemP.dll— написанная на языке Delphi динамическая библиотека, реализующая функции сниффера. Анализирует весь IP-трафик и ищет в нем поступающие команды. Предположительно библиотека предназначена для управления троянцем с помощью СМС-сообщений.

    screen

    Библиотека поддерживает выполнение двух команд:
    • 5449610000583686=xxxxxxxxxxxxxxxx — запустить исполняемый файл троянца Ploutos с параметром xxxxxxxxxxxxxxxx (C:\WINDOWS\system32\cmd.exe /c PLOUTOS.EXE 5449610000583686=xxxxxxxxxxxxxxxx);
    • 6037428100036810 — завершить процесс Ploutos.exe (C:\WINDOWS\system32\cmd.exe /C START TASKKILL /F /IM Ploutos.exe).
  • Ploutos.exe — исполняемый файл троянца Trojan.Ploutus.3, непосредственно осуществляющий управление инфицированным банкоматом. Сохраняет собственные конфигурационные данные в текущей папке в файле с именем config.ini, журнал сохраняет в текстовом файле Log.txt. Для реализации некоторых функций троянец использует динамическую библиотеку из комплекта ПО банкомата ActiveXFSControls.dll.

Параметры троянец получает из командной строки в следующем виде:

<pre>5449610000583686=0123456789abcdYZ, где YZ - команда, 0123456789abcd- параметры.</pre>

Может выполнять следующие команды:

  • 5449610000583686=2836957412536985 — сгенерировать ID (4 случайные цифры), записать это значение в файл конфигурации в параметр DATAA;
  • 5449610000583686=0123456789abcd54— активация троянца на 24 часа. Ключ вычисляется следующим образом:

    screen

    Время операции записывается в конфигурационный файл в параметр DATAB, в параметр DATAC записывается значение md5 от ключа активации. Из командной строки в качестве ключа берется значение 3d1905b7.
  • 5449610000583686=0123456789abcd31— команда на снятие денег, количество 40 жестко записано в теле троянца:

    screen

    Данная команда выполняется, если из командной строки задан верный ID (берется значение a28c).
  • 5449610000583686=0123456789abcd32 — команда завершения процесса троянца, выполняется, если из командной строки задан верный ID (берется значение a28c)
  • 5449610000583686=0123456789abcd99 — команда безусловного завершения процесса троянца (cmd.exe /C TASKKILL /F /IM Ploutos.exe).

Для управления банкоматом используется класс XFSVendorModeServiceClass из библиотеки ActiveXFSControls.dll, входящей в комплект встроенного ПО устройства.

Сама процедура снятия наличности реализована следующим образом:

screen