Модули Pupy могут прозрачно обращаться к удаленным объектам python с помощью rpyc для выполнения различных интерактивных задач.
Pupy может генерировать пэйлоады в нескольких форматах, таких как исполняемые файлы PE, отражающие DLL, чистые файлы python, powershell, apk, …
Когда вы упаковываете пэйлоад, вы можете выбрать пусковую установку (connect, bind, …), транспорт (ssl, http, rsa , obfs3, scramblesuit, …) и ряд «скриптлетов».
Сценарии – это скрипты python, предназначенные для встраивания для выполнения различных задач в автономном режиме (без необходимости сеанса), например, запуск фонового скрипта, добавление персистентности, запуск кейлоггера, обнаружение изолированной программной среды …
Установка
# git clone https://github.com/n1nj4sec/pupy.git pupy # cd pupy # git submodule init # git submodule update # pip install -r pupy/requirements.txt # wget https://github.com/n1nj4sec/pupy/releases/download/latest/payload_templates.txz # tar xvf payload_templates.txz && mv payload_templates/* pupy/payload_templates/ && rm payload_templates.txz && rm -r payload_templates
или обратитесь к вики
Особенности
- Многоплатформенная (протестирована на windows xp, 7, 8, 10, kali linux, ubuntu, osx, android)
- В windows пэйлод Pupy может быть скомпилирован как отражающая DLL, и весь интерпретатор python загружается из памяти. Pupy не касается диска ?
- pupy также может быть упакован в один .py-файл и работать без каких-либо зависимостей, кроме того, что стандартная библиотека python для всех ОС
- pycrypto заменяется чистыми реализациями python aes && rsa, когда они недоступны
- Pupy может отражать миграцию в другие процессы
- Pupy может удаленно импортировать из памяти чистые пакеты python (.py, .pyc) и скомпилированные расширения python C (.pyd, .so). Импортированные модули python не касаются диска.
- Pupy легко расширяется, модули достаточно просты в написании, отсортированы по os и категориям.
- Множество потрясающих модулей уже реализовано!
- Pupy использует rpyc, и модуль может напрямую обращаться к объектам python на удаленном клиенте
- Мы также можем интерактивно обращаться к удаленным объектам из оболочки щенка, и вы даже получаете автоматическое завершение удаленных атрибутов!
- Транспортировка сообщений является модульной, штабелируемой и устрашающей. Вы могли бы exfiltrate данные, используя HTTP over
- HTTP через AES над XOR. Или любую комбинацию доступных транспортов!
- Pupy может общаться с помощью подключаемых портов obfsproxy
- Все неинтерактивные модули могут быть отправлены на несколько хостов одной командой
- Команды и скрипты, запущенные на удаленных хостах, прерываются
- Автозаполнение команд и аргументов
- Пользовательская конфигурация может быть определена: псевдонимы команд, модули автоматически запускаются при подключении, …
- Можно открыть интерактивные оболочки python с автозаполнением на удаленном интерпретаторе python в памяти
- Интерактивные оболочки (cmd.exe, / bin / bash, …) могут быть открыты удаленно. Удаленные оболочки для клиентов Unix и windows имеют реальную tty, при этом все сигналы клавиатуры работают нормально, как оболочка ssh
- Pupy может выполнять PE exe удаленно и из памяти (см. Пример с mimikatz)
- Pupy может генерировать полезную нагрузку в различных форматах:
APK, lin_x86, lin_x64, so_x86, so_x64, exe_x86, exe_x64, dll_x86, dll_x64, ру, pyinst, py_oneliner, ps1, ps1_oneliner, rubber_ducky
- Pupy может быть развернут в памяти из одной командной строки с использованием python pupygen.py или one-liners powershell.
- «Scriptlets» могут быть встроены в генерируемые полезные нагрузки для выполнения некоторых задач «в автономном режиме» без необходимости подключения к сети (например, запуск кейлоггера, добавление персистентности, выполнение пользовательского сценария python, check_vm …)тонны других функций, проверьте реализованные модули
Реализованные транспорты
Все транспорты у щенка стабелизируются.
Это означает, что, создавая пользовательский транспортный conf (pupy / network / transport / <имя_транспорта_ / /conf.py), вы можете сделать сеанс pupy сессии похожим на что угодно.
RSA
Уровень с аутентификацией и шифрованием с использованием RSA и AES256, часто уложенных в другие слои
АЕС
Слой с использованием статического ключа AES256
ssl (по умолчанию)
Транспортировка TCP с помощью SSL
ssl_rsa
То же, что и ssl, но сложены слоем rsa
HTTP
Слой, делающий трафик похожим на HTTP-трафик. HTTP уложен слоем rsa
obfs3
Протокол, позволяющий третьему лицу рассказать, какой протокол используется на основе содержимого сообщения obfs3, укладывается в слой с rsa для обеспечения лучшей безопасности
scramblesuit
Полиморфный сетевой протокол для обхода цензуры с цензурой складывается с уровнем rsa для лучшей безопасности
УДП
rsa, но по UDP (может быть ошибкой, он еще не обрабатывает потерю пакетов)