Семейство: pupy
Класс: RAT / средство удалённого управления
Раздел: RAT
Основание публикации: свежие наблюдения не старше 5 дней
Первое наблюдение в текущем наборе: 26.08.2026 12:46
Последнее наблюдение в текущем наборе: 26.08.2026 13:45
Образцов в пакете: 0; IOC: 1
Поведение, распространение и защита
Что делает
Pupy — семейство многоплатформенных RAT с открытым исходным кодом, реализованных на Python. На Windows-хостах вредонос функционирует как клиентский агент, подключающийся к управляющему серверу оператора по модели «один C2 — множество клиентов». Один управляющий узел способен одновременно обслуживать десятки и сотни заражённых машин.
Функциональность строится на подгружаемых модулях. Типичный набор включает: интерактивную командную оболочку, файловый менеджер, кейлоггер, захват экрана и изображения с веб-камеры, дамп учётных данных из браузеров и системных хранилищ (LSASS, Windows Credential Manager), управление процессами, а также средства сетевого пивотинга для перемещения внутри инфраструктуры.
Коммуникация с C2 шифруется: обычно AES в сочетании с SSL/TLS или проприетарным транспортным слоем. Поддерживаются несколько транспортов — чистый TCP, HTTP/HTTPS, WebSocket, — что позволяет оператору выбирать канал, наименее заметный в конкретной сети.
На Windows агент чаще всего упаковывается в PE-файл через PyInstaller или аналогичный сборщик, что даёт на выходе исполняемый файл с встроенным Python-интерпретатором и зависимостями. Встречаются варианты с рефлективной загрузкой DLL в память процесса-носителя, снижающие файловый след на диске.
Закрепление типично реализуется через ключи автозагрузки реестра (Run/RunOnce), планировщик задач или каталоги Startup. Конкретный механизм задаётся оператором при генерации полезной нагрузки.
Открытость кода приводит к тому, что различные акторы модифицируют базовую кодовую базу, добавляя собственные модули или меняя транспорт, что затрудняет универсальное сигнатурное детектирование.
Технический разбор образцов
В текущем пакете доказательств технические образцы отсутствуют (technical_samples пуст). Разбор ограничивается данными IOC-базы ThreatFox и справочной записью Malpedia.
Единственный доступный артефакт — сетевой индикатор типа ip:port, классифицированный как botnet_cc (командный сервер ботнета). Сопутствующие теги: «pupyRat», «RAT», «drb-ra». Тег «drb-ra» является внутренним идентификатором ThreatFox и не позволяет без дополнительных данных подтвердить конкретную конфигурацию транспорта или версию агента.
Запись Malpedia подтверждает классификацию семейства как win.pupy и привязку к Windows-платформе, но не содержит поведенческих деталей, выходящих за рамки общего описания.
На уровне отдельных файлов формат, архитектура, размер, сигнатуры, YARA-совпадения и vendor-вердикты в данном пакете не представлены. Любые утверждения о конкретных API, путях размещения или упаковщиках для текущих образцов были бы неподтверждёнными.
Как распространяется
Для текущей IOC-записи способ доставки не зафиксирован: в пакете отсутствуют файлы, а индикатор описывает только C2-узел.
На уровне семейства Pupy исторически распространялся через:
- фишинговые вложения (документы с макросами, исполняемые файлы под видом легитимного ПО);
- загрузчики второго этапа, когда первоначальный дроппер обращается к внешнему ресурсу и получает Python-агент;
- эксплуатацию уязвимостей в периметровых сервисах для первичного доступа;
- прямое развёртывание оператором после получения доступа через украденные учётные данные RDP или SSH.
Ни один из перечисленных каналов не подтверждён для текущей записи; они приведены как типичные для семейства.
Как обнаружить
- Сетевой мониторинг: исходящие соединения с периодическим beaconing-интервалом, TLS-сессии с самоподписанными или нестандартными сертификатами, чистый TCP-трафик с шифрованным содержимым фиксированной структуры. Pupy поддерживает несколько транспортов, поэтому анализировать стоит как HTTPS, так и неклассифицированный TCP.
- Процессы: наличие python.exe или упакованного PyInstaller-процесса с нетипичным именем, инициирующего сетевые соединения. В EDR-телеметрии — процесс без стандартного родительского дерева, обращающийся к ws2_32.dll (connect, send, recv).
- Файловая активность: появление PE-файлов значительного размера (десятки мегабайт) во временных каталогах или в %APPDATA%, характерное для PyInstaller-сборок с встроенным интерпретатором.
- Реестр и планировщик: новые записи в HKCU\Software\Microsoft\Windows\CurrentVersion\Run, HKLM-аналогах или задачи schtasks, созданные вблизи времени первого подозрительного сетевого обращения.
- YARA и сигнатуры: правила, ориентированные на строки внутренних Python-модулей Pupy, имена классов конфигурации транспорта, артефакты PyInstaller-упаковки. Malpedia предоставляет эталонные образцы для разработки собственных правил.
- Поведенческие индикаторы: последовательный доступ к LSASS, браузерным профилям (%LOCALAPPDATA%\Google\Chrome\User Data, %APPDATA%\Mozilla\Firefox\Profiles), хранилищу Credential Manager в сочетании с исходящим трафиком из того же процесса.
- IOC-сопоставление: сверка исходящих соединений с актуальными записями ThreatFox по тегам «pupyRat» и «drb-ra».
Что делать при заражении
- Немедленно изолировать хост от сети (физически или через VLAN/ACL), сохранив возможность сбора телеметрии, если это допускается политикой IR.
- Зафиксировать дамп оперативной памяти и список активных сетевых соединений до выключения: Pupy-агент может существовать только в памяти при рефлективной загрузке, и перезагрузка уничтожит артефакты.
- Собрать логи EDR, Sysmon, Windows Event Log (Security, System, Microsoft-Windows-TaskScheduler) за период от первого подозрительного соединения до изоляции.
- Проверить закрепление: ключи автозагрузки реестра, задачи планировщика, содержимое папок Startup, службы. Удалить подтверждённые артефакты.
- Оценить компрометацию учётных данных: если агент имел доступ к LSASS или браузерным хранилищам, считать все локальные и доменные секреты хоста скомпрометированными. Инициировать ротацию паролей, токенов, сессий и сертификатов.
- Исследовать lateral movement: Pupy поддерживает пивотинг, поэтому проверить журналы аутентификации соседних узлов на предмет нестандартных входов с заражённой машины.
- Если целостность системы не подтверждается (рефлективная загрузка, неизвестные модули, руткит-компоненты), выполнить чистую переустановку ОС из доверенного образа.
- После восстановления провести контрольный мониторинг сети на предмет повторного beaconing в течение минимум двух недель.
Как снизить риск
- Ограничить исходящие соединения рабочих станций белым списком портов и протоколов; блокировать прямой доступ к интернету для процессов, не входящих в стандартный набор.
- Контролировать запуск интерпретаторов и упакованных Python-приложений: политика AppLocker или WDAC, запрещающая исполнение python.exe и PyInstaller-бинарников из пользовательских каталогов.
- Мониторить создание задач планировщика и изменение ключей Run через Sysmon Event ID 1, 12, 13 и алерты EDR.
- Включить Credential Guard и LSA Protection, ограничить неавторизованным процессам чтение каталогов браузерных профилей и доступ к LSASS.
- Регулярно сверять сетевую телеметрию с открытыми IOC-базами (ThreatFox) по тегам семейства.
- Ограничивать вложение исполняемых файлов и архивов в почтовом шлюзе; проводить фишинг-тренировки, поскольку фишинг остаётся основным вектором первичного доступа для RAT данного класса.
- Сегментировать сеть и ограничить горизонтальные соединения между рабочими станциями, чтобы снизить эффективность пивотинга в случае компрометации одного узла.
Источники
История обновлений статьи
- 26.08.2026 — Опубликована первая версия материала.
