August 7, 2021

Кейлогеры

В конце прошлого года в руки аналитикам CERT-GIB попал любопытный образец ВПО — Snake Keylogger. Хотя справедливости ради заметим, что изучаемый объект являлся скорее стилером, так как KeyLogger — лишь часть его функционала, отвечающего за логгирование нажатий клавиш на клавиатуре. "Пойман" был данный экземпляр не в чистом виде, а уже зашифрованным криптером Cassandra.

При первом взгляде на Snake Keylogger казалось, что он находится на стадии бета-теста, так как многие функции были неактивны и записи из конфигурационного файла нигде не использовались. Что оказалось на самом деле, как устроена эта вредоносная программа, как она проникает на устройство жертвы и какие механизмы защиты использует, рассказывает Алексей Чехов, аналитик CERT-GIB.

Распространение

Snake Keylogger распространяется через официальный сайт, Telegram и Discord. На данный момент ни один из этих источников связи недоступен, но это не мешает злоумышленникам использовать ВПО в своих атаках.

Закрепление в системе (в исследуемом сэмпле неактивно)

Реализовано тривиально: Snake добавляет себя в автозапуск при помощи изменения ключа реестра:

HKCU\software\microsoft\windows\currentversion\run

CnC

В зависимости от выбранной опции в конфигурационном файле, возможно три варианта взаимодействия с CnC:

  1. FTP
  2. При передаче по протоколу FTP на сервер будет отправлен файл с именем: {Имя компьютера}{Тип данных}{ID жертвы}{Расширение файла}.
  3. Данные не шифруются.
  4. ID жертвы формируется следующим образом: первая часть задается в конфигурационном файле, а вторая часть представляет собой случайно сгенерированное 4-байтовое число.
  5. SMTP
  6. При передаче по SMTP будет сформировано сообщение формата:
  7. Тема: Pc Name: {Имя пользователя} | Snake Keylogger
  8. Тело письма: {Тип данных} | {Имя пользователя} | Snake\r\n{Информация о системе}"\r\n\r\n"
  9. Вложение: {Тип данных}.{Расширение}
  10. Все данные передаются во вложении. Шифрование отсутствует.
  11. Telegram
  12. Данные передаются в виде прикрепленного файла.
  13. Вредоносный функционал.
  14. Вложения лог-файлов имеют следующий формат:
  1. Довольно странно в логах выглядит очень частое упоминание название малвари.

Keylogger

ВПО устанавливает свой обработчик для событий нажатия клавиш на клавиатуре. Запись в лог ведется следующим образом:

Backspace, Delete, End, F1-F11
Не записываются
F12
[F12]
TAB
[TAP]
ENTER
[Entr]
SPACE
Другая клавиша

Символ в верхнем или нижнем регистре в зависимости от положения клавиш Shift и Caps Lock

Через определенный промежуток времени собранные данные отправляются на CnC. При неудачной отправке буфер для хранения лога не очищается. К интересной особенности можно отнести то, что ВПО удаляет cookie браузеров Chrome и Firefox, а также данные из общего репозитория файлов cookie в системе. Данное действие, предположительно, выполняется для того, чтобы пользователю пришлось заново заходить в учетные записи на различных сервисах — в таком случае данные будут перехвачены при помощи кейлоггера.

ScreenLogger

В конфигурационном файле устанавливается временной промежуток, через который будет сделан скриншот. По умолчанию это 100 секунд. Когда снимок экрана сделан, он сохраняется в папку «{Мои документы}\SnakeKeylogger» с именем «Screenshot.png». После этого осуществляется попытка отправить файл. При любом результате отправки файл будет удален.

Stealer

ВПО умеет выгружать пароли из следующих приложений:
Браузеры
Почтовые клиенты
Мессенджеры
7Star
Thunderbird
Discord
Amigo
PostBox
Pidgin
Avast
Foxmail
BlackHawk
Outlook
Blisk
Brave
Cent
FTP клиенты:
Chedot
FileZilla
Chrome
Chrome_Canary
Chromium
Citrio
CocCoc
Comodo
CoolNovo
Coowon
Elements
Epic
Falkon
Ghost
Iridium
Iron
Kinzaa
Kometa
Liebao
Microsoft
Nichrome
Opera
Torbitum
QIPSurf
QQ
SalamWeb
Sleipnir
Slimjet
Sputnik
Superbird
Torch
UC
Uran
Vivaldi
Xpom
xVast
Yandex
CyberFox
FireFox
IceCat
IceDragon
PaleMoon
Slim
WaterFox

Противодействие анализу

Anti-VM

Механизм противодействия виртуализации реализован тривиально:

  • Поиск процессов, свойственных для виртуальных машин.
  • Проверка наличия файлов, свойственных для виртуальных машин.
  • Проверка процессов на наличие специального ПО, в том числе для анализа.

Anti-Sandbox (неактивна)

Метод, реализующий Anti-Sandbox-функционал, определяет IP-адрес жертвы и сверяет его с захардкоженными IP-адресами, некоторые из которых относятся к адресам бесплатных VPN-сервисов. Также он проверяет имя машины на типичные для honeypot’ов. При совпадении процесс завершается.

Другое

Для шифрования строк злоумышленники используют open-source-обфускатор Obfuscar. Также для защиты от статического и динамического анализа используется BedsProtector. В исследуемом сэмпле было применено две функции защиты:

  1. Первая — так называемый AntiTamper. Данная функция позволяет расшифровать код программы после ее запуска, что делает статический анализ основной части программы невозможным.
  2. Вторая функция проверяет наличие установленной системной переменной COR_ENABLE_PROFILING, которая позволяет проверить, подключена ли CLR к профилировщику.