Новый конструктор позволяет собирать программы для кражи паролей без навыков программирования

Stealer

Архив с неброским названием, похожим на имя личного файла, оказался многослойной конструкцией. Внутри него лежал ещё один архив, а в нём - папка с набором исполняемых файлов и скриптов. Разбор содержимого выявил два ключевых элемента: конструктор на языке Python и встроенную полезную нагрузку (код, который выполняет основную вредоносную работу). Получившийся образец относится к классу инфостилеров - программ, чья задача собрать с заражённого компьютера максимум конфиденциальных сведений и передать их владельцу. Под удар попадают обычные пользователи Windows, а также сотрудники компаний, которые держат личные сервисы в рабочих браузерах.

Описание

Конструктор устроен по модели "вредоносное ПО как услуга": он отделяет производство сборки от самой кражи данных. Один и тот же инструмент способен выпускать неограниченное число исполняемых файлов, причём каждый оператор настраивает его под себя. Такой подход даёт несколько преимуществ. Во-первых, один разработчик обслуживает сразу много пользователей, и каждый получает собственную версию. Во-вторых, образцы почти не связаны между собой, ведь адрес для отправки украденного уникален для каждой сборки. В-третьих, порог входа резко снижается: понятный интерфейс позволяет собрать готовую программу человеку без серьёзной подготовки.

Разбор K7 Labs показал, что конструктор сам загружает недостающие библиотеки при запуске, поэтому работать он может на чистой системе без ручной настройки. Адрес вебхука (специального канала для автоматической передачи данных) сохраняется в обычном текстовом файле рядом, чтобы его не приходилось вводить заново. Перед вставкой в шаблон этот адрес проходит два этапа обратимого кодирования, а сама программа расшифровывает его уже во время работы. Отсюда практический вывод: в готовом файле адрес не хранится открытым текстом, а смена адреса меняет и облик собранной программы.

Выбор сборочного инструмента тоже говорит о замысле авторов. Пользователю предлагают три варианта. Первый компилятор превращает скрипт в машинный код и, по описанию самого интерфейса, работает медленнее, зато лучше уходит от антивирусов. Второй вариант упаковывает среду выполнения Python вместе с кодом в один файл, и такую сборку проще распаковать для изучения. Третий вообще ничего не компилирует, сохраняя исходный скрипт для ручного запуска. Вилка показывает, что создатель инструмента сознательно торгует удобством ради незаметности.

Перед основными действиями программа проверяет окружение. Она выясняет, подключён ли к ней отладчик, то есть инструмент для пошагового исследования чужого кода. Затем она просматривает список запущенных процессов и прекращает работу, если находит признаки виртуальной машины. Ещё одна проверка касается размера диска: при объёме меньше 50 гигабайт программа останавливается, ведь автоматические стенды для анализа создают с небольшим хранилищем. Пауза перед запуском зависит от идентификатора процесса, поэтому предсказать момент активности заранее сложно. Все эти уловки нужны, чтобы пережить короткую сессию наблюдения и не попасться.

Закрепление в системе продумано дважды. Программа прописывает себя в разделе автозапуска реестра Windows под именем обновления системы, чтобы при беглом осмотре не вызвать подозрений. Параллельно создаётся задание в планировщике, которое срабатывает при входе пользователя; окно консоли при этом не показывается, а весь вывод подавляется. Два независимых механизма означают, что удаление одного из них не избавит компьютер от повторного запуска.

Сбор данных идёт по нескольким направлениям. В браузерах на движке Chromium (их в списке семнадцать) программа ищет сохранённые логины и пароли, историю посещений, данные банковских карт и файлы сессий. Для этого копии баз данных переносятся во временную папку, потому что работающий браузер блокирует доступ к ним. Отдельно проверяется хранилище Firefox, где часть сведений лежит вообще без шифрования. Через системную утилиту Windows собираются все сохранённые пароли от беспроводных сетей. Плюс к этому - токены мессенджера Discord, которые предварительно проверяются на работоспособность, и файлы сессий игровой платформы Roblox, дающие доступ к аккаунту без пароля. Дополняют картину публичный IP-адрес, страна и город, сведения о провайдере, часовой пояс, имя пользователя и имя компьютера.

Собранные данные складываются в архив целиком в оперативной памяти. На диск ничего не записывается, поэтому отследить подготовку к отправке по файловой системе не получится. Имя архива включает имя учётной записи жертвы, чтобы получатель сразу понимал, откуда пришли сведения. Затем архив уходит на тот самый вебхук обычным запросом.

Для защиты важен поведенческий контроль, а не только сверка с базами сигнатур. Подозрительными признаками остаются неожиданный запуск служебных компонентов Python, появление новых записей автозапуска, обращения к базам браузеров и отправка архивов на неизвестные адреса. Пользователям стоит устанавливать программы только из проверенных источников, держать браузер и систему в актуальном состоянии и включать двухфакторную аутентификацию везде, где она поддерживается. Даже украденный набор сессий теряет часть ценности, если для входа требуется второй фактор. Компаниям имеет смысл ограничить круг сервисов, доступных с рабочих машин, и следить за тем, какие утилиты запускаются в фоне.

Индикаторы компрометации

Комментарии: 0