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

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

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

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

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

HKCU\software\microsoft\windows\currentversion\run

Конфигурационный файл

Расширение для файлов с логами

.txt

Интервал отправки логов Keylogger в секундах

100

Интервал отправки логов Screenlogger в секундах

100

Интервал отправки логов Clipboard в секундах

100

clprEPs

Не используется

kLLTIm

Не используется

TPSSends

Не используется

ProHfutimer

Не используется

Тип CnC

$%SMTPDV$

HSHChecker

Не используется

ID бота

ZyiAEnXWZP

CnC

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

  1. FTP

    При передаче по протоколу FTP на сервер будет отправлен файл с именем: {Имя компьютера}{Тип данных}{ID жертвы}{Расширение файла}.

    Данные не шифруются.

    ID жертвы формируется следующим образом: первая часть задается в конфигурационном файле, а вторая часть представляет собой случайно сгенерированное 4-байтовое число.

  2. SMTP

    При передаче по SMTP будет сформировано сообщение формата:

    Тема:  Pc Name: {Имя пользователя} | Snake Keylogger

    Тело письма: {Тип данных} | {Имя пользователя} | Snake\r\n{Информация о системе}"\r\n\r\n"

    Вложение: {Тип данных}.{Расширение}

    Все данные передаются во вложении. Шифрование отсутствует.

  3. Telegram

    Данные передаются в виде прикрепленного файла.

    Вредоносный функционал.

    Вложения лог-файлов имеют следующий формат:

    Довольно странно в логах выглядит очень частое упоминание название малвари.  

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 к профилировщику.  


В данной статье мы разобрали новое и достаточно противоречивое ВПО. С одной стороны, ничего выдающегося в данном кейлоггере нет: он похож на остальных представителей .net-кейлоггеров, например, 404Keylogger, про который мы писали ранее. С другой — применение различных криптеров, протекторов, обфускаторов, даже open-source, позволяет использовать подобное программное обеспечение в атаках и несколько усложнять его анализ.