Как мутанты RAT в Python крадут данные и уклоняются от обнаружения

Как мутанты RAT в Python крадут данные и уклоняются от обнаружения

3 февраля 2023 г.

<цитата>

«Мудрый ниндзя не ищет врага, которого он не совсем понимает», — Сплинтер из «Черепашек-ниндзя»

Как технический писатель, увлеченный научной фантастикой, одна из самых захватывающих частей моей работы в Sonatype — это когда у меня есть возможность сотрудничать с группой исследователей безопасности.

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

Это не редкость: они постоянно проверяют сотни подозрительных пакетов из реестров с открытым исходным кодом, чтобы определить, действительно ли они вредоносны. Во время этой процедуры они выявляют знакомые закономерности между пакетами, а иногда, обнаружив сильное сходство, проводят дополнительные исследования, чтобы отследить действующее лицо/кампанию, стоящую за ними.

В период с последней недели 2022 г. по начало 2023 г. наша система ИИ помечала подозрительные пакеты, загруженные в реестр PyPI, включая pyrologin, easytimestamp, discorder, discord-dev, style.py , и стили python. Наши исследователи безопасности изучили их и подтвердили, что они действительно были вредоносными. И после дальнейшего анализа они заметили, что эти пакеты добавили ряд функций, которые нечасто встречаются в вредоносных программах Python.

В соответствии со стратегией де-факто злоумышленники прячут полезную нагрузку в файле setup[.]py, поэтому для заражения разработчикам достаточно использовать простую установку pip. В этом случае они непреднамеренно запускают сценарий PowerShell, который загружает ZIP-файл для установки библиотек, позволяющих злоумышленнику управлять мышью и клавиатурой жертвы, делать снимки экрана и создавать скрытые удаленные подключения. Кроме того, эти пакеты также извлекают конфиденциальную информацию, такую ​​как пароли, файлы cookie и данные криптовалютного кошелька, и даже пытаются установить инструмент для удаленного доступа. Наши выводы соответствовали Технический отчет компании Phylum о тех же пакетах.

Тем не менее, у исследователя безопасности Карлоса Фернандеса возникло навязчивое чувство дежа вю. В течение недели после того, как мы раскрыли пакеты, в его голове промелькнули воспоминания о том, что он видел более ранние версии этой вредоносной программы. Злоумышленник мог развивать свое вредоносное ПО с течением времени, но нам нужно было убедиться, поэтому я надел шляпу OSINT, чтобы помочь ему понять, верна ли его интуиция.

История происхождения

Оглядываясь назад в нашу базу данных, 25 сентября 2022 г. пакет под названием pygradient был загружен в репозиторий PyPI. Наш ИИ пометил его как подозрительный, а наши специалисты по безопасности подтвердили, что он содержит вредоносное ПО и что он содержит исходный код другого пакета под названием pystyle. Автором обеих библиотек является billythegoat356, он же BillyTheGoat, он же BillyV3 (при участии loTus04 и BlueRed). . Этот автор из Франции (по крайней мере, на это указывает его местоположение на GitHub и язык, на котором говорят в его каналах Discord) указан как человек, стоящий за Hyperion, обфускатор Python, который мы часто находим в недавно загруженных вредоносных программах, а также один из создателей похититель W4SP, похититель информации, активный с июля в продолжающаяся атака на цепочку поставок с целью открытия реестров.

W4SP Stealer может похвастаться устойчивостью (он активируется каждый раз, когда пользователи перезагружают ПК), запутыванием (автор обещает, что его невозможно обнаружить) и методами стеганографии для сокрытия полиморфных и сильно запутанных полезных данных в файле изображения. Вредоносное ПО отправляет все учетные записи Discord, кредитные карты, пароли и криптокошельки жертвы обратно злоумышленнику через жестко заданный адрес веб-перехватчика Discord. Злоумышленники, заинтересованные в этой вредоносной программе, приобрели ее, заплатив около 20 долларов США в криптовалюте.

After decoding the image, a hidden base64 obfuscated Python code is revealed.

Изначально pystyle не имел вредоносного характера — это был безобидный пакет для стилизации и окрашивания вывода консоли для повышения удобочитаемости и взаимодействия с пользователем. Но согласно исследованию Phylum, как только он стал популярным (пакет по-прежнему активен на PyPI и ежемесячно его загружают более 40 000 раз), они решили добавить вредоносное ПО W4SP в пару выпусков.

Пакеты с открытым исходным кодом, такие как pystyle, могут действовать как спящие агенты в течение нескольких месяцев только для того, чтобы позже быть активированы их собственным автором для злонамеренных целей. Рискованный шаг, поскольку их популярный пакет может быть обнаружен такими исследователями безопасности, как мы, которые сообщат о нем как о вредоносном и навсегда закроют его. Вот почему вместо этого они часто создают новые пакеты, в которые включают исходный код безобидной библиотеки, добавляют какую-то вредоносную полезную нагрузку и загружают ее под новым именем: что-то общее, безобидно звучащее, невинно выглядящее. Имя, такое как pygradient.

После более тщательного изучения с Карлосом мы обнаружили, что этой вредоносной программе-мутанту-прото-RAT не хватает некоторых функций декабрьских версий: хотя она также запускала сценарий PowerShell и извлекала конфиденциальные данные, она не использовала полезные нагрузки в кодировке base64 или белый список. txt во избежание самозаражения. В каком-то смысле это был более мягкий и менее сложный вариант.

Но затем мы посмотрели на пакеты, загруженные в начале ноября, включая paintpy, devicespoof и devicespoofer, и, углубившись, нашли подтверждение нашей подозрение: вредоносное ПО действительно эволюционировало.

Имитатор в погоне за вредоносным ПО

Несмотря на то, что BillyTheGoat не был активен на GitHub с ноября, мы все еще находим вредоносное ПО, основанное на его творениях, или похищающее их напрямую, в основном пользователем из Португалии по имени zeeckt.

Этот пользователь загрузил в PyPI недавно удаленный пакет под названием pystilez, ложно приписываемый BillyTheGoat, который выглядел как StartJacking  – метод повышения репутации своего нового пакета путем связывания его с популярной библиотекой GitHub, благодаря чему он получает сотни звездочек и ответвлений.

Checkmarx отслеживал этого злоумышленника после обнаружения атаки W4SP в пакете под названием apicolor (наряду с одноименными вариантами), который содержал ссылку на сервер Discord в своем вредоносном коде. Профиль администратора был связан с проверенной учетной записью Steam, а имя «zeeckt» появилось в качестве одного из псевдонимов злоумышленника в Steam.

Check Point также сообщил, что этот злоумышленник создавал поддельных пользователей, копируя профили популярных учетных записей GitHub для повышения легитимности. И одна из их жертв решила создать видео на YouTube, предупреждающее людей об этой атаке после того, как они попались на один из своих поддельных профилей.

Исследователь безопасности опубликовал одну из полезных нагрузок zeeckt в образовательных целях и получил интересный ответ от соавтора стилера W4SP:

Какая ирония в том, что твоего стилера украли.

Тот же автор, по-видимому, 17-летний разработчик Python, повторяет свое разочарование в файле README в своем профиле на GitHub:

Мы не знаем точно, какой вредоносный код zeeckt украл у других злоумышленников, но одно можно сказать наверняка: это имя продолжает всплывать в кампаниях вредоносных программ в реестрах с открытым исходным кодом.

Более хитрые варианты съедают ваше криптобогатство

Недавно Карлос обнаружил еще четыре пакета от zeeckt: forenitq, forenith, forenity и forenitz. После дальнейшего расследования он пометил их как вредоносные и сообщил PyPI, чтобы они были удалены. В самом быстром случае от публикации до удаления прошло около 20 минут.

Глядя на setup[.]py в forenitq, Карлос обнаружил следующую полезную нагрузку первого этапа:

Злоумышленник создает три временных файла, которые загружают и запускают двоичные файлы Windows с определенных URL-адресов с помощью команды «Пуск». Несмотря на то, что слаги /rat и /clip указывают на злой умысел, мы не смогли подтвердить это предположение, не заглянув под капот.

На момент написания этой статьи страница, размещенная по адресу hxxp://20[.]226[.]18[.]203, все еще активна, и на ней отображается только ссылка на приглашение Discord, которое уже просрочено или закрыто.

Карлос заметил, что пакет выдавал себя за популярный пакет Colorama, используя их метаданные для возможного взлома StarJacking. попытка.

После деобфускации RAT-файла он обнаружил строку, которая загружает возможный угонщик буфера обмена, но особенности этого заключались в кодировке base64:

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

Он ищет указанные шаблоны, такие как биткойн (bc1), Ethereum (0x), Monero (4) и litecoin (L или M или 3), и когда шаблон найден, он заменяет предполагаемый адрес адресом криптовалютного кошелька злоумышленника.

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

Кроме того, мы обнаружили дополнительные методы, которые этот мутант RAT использует, чтобы избежать обнаружения: полезные данные первого этапа добавлены в файл forenitq/ansi[.]py вместо setup[.]py и полиморфную полезную нагрузку второго уровня, которая меняется при каждом запуске двоичного файла.

Злоумышленник также добавил новую команду и элемент управления с очень полным меню справки, и на этот раз se fala português:

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

IOC (индикаторы компрометации)

hxxp://20[.]226[.]18[.]203/inject/tCxFLYLT6ViY9ZnP

hxxp://20[.]226[.]18[.]203/клип

hxxp://20[.]226[.]18[.]203/крыса


Оригинал