[ << ALL_FEED ]

Необычная обфускация — это всегда красиво…

Ещё в группе «Общее»

Необычная обфускация — это всегда красиво… 🥰

… жаль, что ее приходится видеть в троянистых опенсорс-пакетах, а не только на соревнованиях по информационной безопасности 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)

Ещё от ti_author

Ещё от ti_author

Ещё в группе «Общее»