Pupy RAT на Windows: модульная архитектура удалённого управления и индикаторы C2-каналов

Семейство: 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.

Ни один из перечисленных каналов не подтверждён для текущей записи; они приведены как типичные для семейства.

Как обнаружить

  1. Сетевой мониторинг: исходящие соединения с периодическим beaconing-интервалом, TLS-сессии с самоподписанными или нестандартными сертификатами, чистый TCP-трафик с шифрованным содержимым фиксированной структуры. Pupy поддерживает несколько транспортов, поэтому анализировать стоит как HTTPS, так и неклассифицированный TCP.
  2. Процессы: наличие python.exe или упакованного PyInstaller-процесса с нетипичным именем, инициирующего сетевые соединения. В EDR-телеметрии — процесс без стандартного родительского дерева, обращающийся к ws2_32.dll (connect, send, recv).
  3. Файловая активность: появление PE-файлов значительного размера (десятки мегабайт) во временных каталогах или в %APPDATA%, характерное для PyInstaller-сборок с встроенным интерпретатором.
  4. Реестр и планировщик: новые записи в HKCU\Software\Microsoft\Windows\CurrentVersion\Run, HKLM-аналогах или задачи schtasks, созданные вблизи времени первого подозрительного сетевого обращения.
  5. YARA и сигнатуры: правила, ориентированные на строки внутренних Python-модулей Pupy, имена классов конфигурации транспорта, артефакты PyInstaller-упаковки. Malpedia предоставляет эталонные образцы для разработки собственных правил.
  6. Поведенческие индикаторы: последовательный доступ к LSASS, браузерным профилям (%LOCALAPPDATA%\Google\Chrome\User Data, %APPDATA%\Mozilla\Firefox\Profiles), хранилищу Credential Manager в сочетании с исходящим трафиком из того же процесса.
  7. IOC-сопоставление: сверка исходящих соединений с актуальными записями ThreatFox по тегам «pupyRat» и «drb-ra».

Что делать при заражении

  1. Немедленно изолировать хост от сети (физически или через VLAN/ACL), сохранив возможность сбора телеметрии, если это допускается политикой IR.
  2. Зафиксировать дамп оперативной памяти и список активных сетевых соединений до выключения: Pupy-агент может существовать только в памяти при рефлективной загрузке, и перезагрузка уничтожит артефакты.
  3. Собрать логи EDR, Sysmon, Windows Event Log (Security, System, Microsoft-Windows-TaskScheduler) за период от первого подозрительного соединения до изоляции.
  4. Проверить закрепление: ключи автозагрузки реестра, задачи планировщика, содержимое папок Startup, службы. Удалить подтверждённые артефакты.
  5. Оценить компрометацию учётных данных: если агент имел доступ к LSASS или браузерным хранилищам, считать все локальные и доменные секреты хоста скомпрометированными. Инициировать ротацию паролей, токенов, сессий и сертификатов.
  6. Исследовать lateral movement: Pupy поддерживает пивотинг, поэтому проверить журналы аутентификации соседних узлов на предмет нестандартных входов с заражённой машины.
  7. Если целостность системы не подтверждается (рефлективная загрузка, неизвестные модули, руткит-компоненты), выполнить чистую переустановку ОС из доверенного образа.
  8. После восстановления провести контрольный мониторинг сети на предмет повторного beaconing в течение минимум двух недель.

Как снизить риск

  1. Ограничить исходящие соединения рабочих станций белым списком портов и протоколов; блокировать прямой доступ к интернету для процессов, не входящих в стандартный набор.
  2. Контролировать запуск интерпретаторов и упакованных Python-приложений: политика AppLocker или WDAC, запрещающая исполнение python.exe и PyInstaller-бинарников из пользовательских каталогов.
  3. Мониторить создание задач планировщика и изменение ключей Run через Sysmon Event ID 1, 12, 13 и алерты EDR.
  4. Включить Credential Guard и LSA Protection, ограничить неавторизованным процессам чтение каталогов браузерных профилей и доступ к LSASS.
  5. Регулярно сверять сетевую телеметрию с открытыми IOC-базами (ThreatFox) по тегам семейства.
  6. Ограничивать вложение исполняемых файлов и архивов в почтовом шлюзе; проводить фишинг-тренировки, поскольку фишинг остаётся основным вектором первичного доступа для RAT данного класса.
  7. Сегментировать сеть и ограничить горизонтальные соединения между рабочими станциями, чтобы снизить эффективность пивотинга в случае компрометации одного узла.

Источники​


  1. ThreatFox — IOC pupy
  2. Malpedia — pupy

История обновлений статьи​


  • 26.08.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ