В конце прошлого года в руки аналитикам 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:
FTP
При передаче по протоколу FTP на сервер будет отправлен файл с именем:
{Имя компьютера}{Тип данных}{ID жертвы}{Расширение файла}
.Данные не шифруются.
ID жертвы формируется следующим образом: первая часть задается в конфигурационном файле, а вторая часть представляет собой случайно сгенерированное 4-байтовое число.
SMTP
При передаче по SMTP будет сформировано сообщение формата:
Тема: Pc Name: {Имя пользователя} | Snake Keylogger
Тело письма: {Тип данных} | {Имя пользователя} | Snake\r\n{Информация о системе}"\r\n\r\n"
Вложение: {Тип данных}.{Расширение}
Все данные передаются во вложении. Шифрование отсутствует.
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 | ||
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. В исследуемом сэмпле было применено две функции защиты:
Первая — так называемый AntiTamper. Данная функция позволяет расшифровать код программы после ее запуска, что делает статический анализ основной части программы невозможным.
Вторая функция проверяет наличие установленной системной переменной
COR_ENABLE_PROFILING
, которая позволяет проверить, подключена ли CLR к профилировщику.
В данной статье мы разобрали новое и достаточно противоречивое ВПО. С одной стороны, ничего выдающегося в данном кейлоггере нет: он похож на остальных представителей .net-кейлоггеров, например, 404Keylogger, про который мы писали ранее. С другой — применение различных криптеров, протекторов, обфускаторов, даже open-source, позволяет использовать подобное программное обеспечение в атаках и несколько усложнять его анализ.