792просмотров
33.3%от подписчиков
11 марта 2026 г.
📷 ФотоScore: 871
Необычная обфускация — это всегда красиво... 🥰 ... жаль, что ее приходится видеть в троянистых опенсорс-пакетах, а не только на соревнованиях по информационной безопасности Capture The Flag (CTF). Одна из задач злоумышленника — сделать вредоносный пакет, который выглядит легитимным. Это позволит дольше избегать обнаружения. Мы заметили интересную PyPI-кампанию, в которую входит библиотека requests-ml-min за авторством scott.fitzgerald. В ней всего шесть Python-файлов: 1️⃣ setup.py. Есть исполнение ModelInstall в момент установки, но это не криминал: есть много проектов, которые что-то доустанавливают или компилируют на этом этапе. 2️⃣ tests/test_pnotify.py. Ничего необычного. 3️⃣ tests/test_utils.py. Ничего необычного. 4️⃣ resource/resource.py (скриншот 1). Содержит массив из 145 идентификаторов UUID и функцию конкатенации... 🤪 Оригинально, попытка засчитана :) 5️⃣ src/audit/perf.py (скриншот 2). Сбор информации о системе, упаковка в base64, отправка. 👍 Десять детектов на стилерский сбор информации о системе из десяти. 6️⃣ src/utils/utils.py (скриншот 3). Реализует функции-хелперы. Строки обфусцированы через массивы ASCII-кодов... 🏃♀️ Мы решаем CTF-таск reverse за 100? О файле resource/resource.py За обфускацией скрывается красивый downloader + process injector. Красивый потому, что скачиваемый файл, являющийся шеллкодом, расположен по следующему URI: https://storage.googleapis.com/py-pi/python_win Шеллкод будет инжектирован в отдельно для него запущенный процесс werfault.exe. Нагрузка представляет собой загрузчик Cobalt Strike. Действия PyPI-пакета в процессе установки: 🤔 Соберет информацию о системе (скриншот 2). 🤔 Отправит ее на https://us-central1-bucket-438814.cloudfunctions.net/ping/api/v1/ping (к слову, еще один красивый URI). 🤔 Убедится, что жертва находится в белом списке. Для этого она получит домен жертвы, захэширует его алгоритмом SHA-256 и убедится, что хэш соответствует одному из семи ожидаемых. Это хороший метод антианализа, ведь он затрудняет работу исследователей :) 🤔 Если жертва находится в белом списке, то запустит нагрузку с Cobalt Strike. Занятно, что код позволяет подготовить нагрузку под Windows, Linux и macOS, однако автор добавил только вариант для Windows. Нам удалось подобрать исходный текст для четырех из семи хэшей:
🌟desktop
🌟abd.local
🌟exttest.local
🌟extprod.local Свои догадки о природе этих доменов можете оставлять в комментариях 🤨 Учитывая, каким списком целей ограничивает себя библиотека, это может быть пентест или багбаунти. По крайней мере, будем на это надеяться — такую красивую библиотеку не так часто можно встретить. #pypi #ti #scs #pyanalysis
@ptescalator (X, Max)