Кейлогеры
В конце прошлого года в руки аналитикам CERT-GIB попал любопытный образец ВПО — Snake Keylogger. Хотя справедливости ради заметим, что изучаемый объект являлся скорее стилером, так как KeyLogger — лишь часть его функционала, отвечающего за логгирование нажатий клавиш на клавиатуре. "Пойман" был данный экземпляр не в чистом виде, а уже зашифрованным криптером Cassandra.
При первом взгляде на Snake Keylogger казалось, что он находится на стадии бета-теста, так как многие функции были неактивны и записи из конфигурационного файла нигде не использовались. Что оказалось на самом деле, как устроена эта вредоносная программа, как она проникает на устройство жертвы и какие механизмы защиты использует, рассказывает Алексей Чехов, аналитик CERT-GIB.
Распространение
Snake Keylogger распространяется через официальный сайт, Telegram и Discord. На данный момент ни один из этих источников связи недоступен, но это не мешает злоумышленникам использовать ВПО в своих атаках.
Закрепление в системе (в исследуемом сэмпле неактивно)
Реализовано тривиально: Snake добавляет себя в автозапуск при помощи изменения ключа реестра:
HKCU\software\microsoft\windows\currentversion\run
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 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. В исследуемом сэмпле было применено две функции защиты:
- Первая — так называемый AntiTamper. Данная функция позволяет расшифровать код программы после ее запуска, что делает статический анализ основной части программы невозможным.
- Вторая функция проверяет наличие установленной системной переменной
COR_ENABLE_PROFILING
, которая позволяет проверить, подключена ли CLR к профилировщику.