Как установить Pupy


Pupy — это инструмент с открытым исходным кодом для кроссплатформенного удалённого администрирования (в качестве «клиентов» поддерживаются Windows, Linux, OSX, Android) и последующей эксплуатации (post-exploitation). Написан в основном на Python.

Говоря проще, эта программа, которая может создавать бэкдоры для разных систем, выполнять действия для закрепления на удалённых системах, выполнять эксплойты для сбора данных, повышения привилегий скачивания и закачивания файлов, захвата экрана, захвата нажатий клавиш и т. д. При этом Pupy, как и другие аналогичные инструменты, также прекрасно подходит для легитимного удалённого администрирования систем.

Потенциальные сферы использования Pupy:

  • Исследования безопасности
  • Образование
  • Тестирование на проникновение
  • Системной администрирование
  • Сфокусированные на приватности проекты на python, требующие минимального взаимодействия с постоянным хранилищем (чтобы не оставлять следов на жёстком диске)
  • И другое…

Более подробную информацию о Pupy вы найдёте на справочной страницы программы: https://kali.tools/?p=4611

Это одна из нескольких статей о Pupy в которой пошагово рассказывается об установке. В следующих статьях будут рассмотрены принципы работы программы, основные понятия, практические примеры использования.

Интересующимся данной темой также рекомендуется материал «Скрытое управление компьютером на Windows (используя Metasploit)» посвящённый аналогичным инструментам в Metasploit.

Как установить Pupy в Kali Linux

Автор программы предлагает два варианта установки: непосредственно в систему и с использованием Docker.

У данной программы есть баг (о нём будет чуть ниже) из-за несовместимости с последней версией одного из модулей Python. Этот баг приводит к тому, что Pupy, фактически, не работает в режиме прослушивания (не может принимать подключения). При использовании Docker, ошибки не выводятся на экран и трудно понять, в чём проблема. Но намного хуже то, что непонятно, как в этом контейнере исправить проблему с библиотекой.

Поэтому далее я рассмотрю два варианта установки — прямо в систему и с помощью Docker, — но использовать рекомендую вариант установки непосредственно в систему.

Установка Pupy в Kali Linux без Docker

Выполните следующие команды:

sudo apt install git libssl1.0-dev libffi-dev python-dev python-pip build-essential swig tcpdump python-virtualenv
git clone --recursive https://github.com/n1nj4sec/pupy
cd pupy
python create-workspace.py -DG pupyw

Накатите фикс для исправления ошибки:


sudo pip2 install rpyc==3.4.4

Для запуска:

export PATH=$PATH:~/.local/bin; pupysh
pupyws/bin/pupysh

Установка Pupy в Kali Linux с использованием Docker

Для установки и запуска в Docker выполните команды:

git clone https://github.com/alxchk/pupy
cd pupy

Откройте файл install.sh и замените там строку:

if [ "$EUID" == 0 ]

на

if [ "$EUID" == 100500 ]

Затем выполните команды:

./install.sh
sudo pip uninstall backports.ssl-match-hostname
sudo apt-get install python-backports.ssl-match-hostname

Для запуска программы:

./start-compose.sh

Установка в BlackArch

Установка в BlackArch выполняется следующим образом:

sudo pacman -S pupy

Для исправления бага нужно удалить новую версию одного из пакетов Python, при том так, чтобы система не удалила сам Pupy, для которого этот файл является обязательной зависимостью:


sudo pacman -Rdd python2-rpyc

И установить версию, не вызывающую проблем:

sudo pip2 install rpyc==3.4.4

Правда, сгенерированные в BlackArch файлы у меня отказываются подключаться к контролирующему компьютеру…

Решение проблемы с ошибкой «Cannot read wireshark manuf database»

При запуске Pupy посмотрите присутствует ли там строка:

Cannot read wireshark manuf database

Если присутствует, то значит имеет место серьёзная ошибка. Подробности об этом баге здесь: https://github.com/n1nj4sec/pupy/issues/622

Суть проблемы в том, что когда компьютер «Жертвы» пытается подключиться к компьютеру «Атакующего», то появляется следующая ошибка:

Exception AttributeError: AttributeError("'PupyConnection' object has no attribute '_closed'",) in <object repr() failed> ignored
Exception in thread Authentication Thread (192.168.1.117:49824):
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/share/pupy/network/lib/servers.py", line 135, in _setup_connection
    config=config
  File "/usr/share/pupy/network/lib/connection.py", line 269, in __init__
    Connection.__init__(self, *args, **kwargs)
TypeError: __init__() got an unexpected keyword argument '_lazy'

Exception AttributeError: AttributeError("'PupyConnection' object has no attribute '_closed'",) in <object repr() failed> ignored

То есть режим прослушивания для обратного шелла в Pupy фактически не работает.

Проблема решается понижением версии пакета rpyc до 3.4.4:

sudo pip2 install rpyc==3.4.4

Продолжение смотрите в статье «Инструкция по Pupy: как создать бэкдор».


Рекомендуется Вам:

2 комментария to Как установить Pupy

  1. Jony0101:

    Подскажите пожалуйста, команда python create-workspace.py -DG pupyw
    выдает:

    usage: create-workspace.py [-h] [-G PUPY_GIT_FOLDER]
                               [-NC | -C COMPILE_TEMPLATES]
                               [-E {virtualenv,docker,podman}] [-N NETWORK] [-P]
                               [-S] [-R IMAGES_REPO] [-T IMAGE_TAG] [-B BIN_PATH]
                               workdir
    create-workspace.py: error: unrecognized arguments: -DG

    Как это исправить?

    • Alexey:

      Приветствую, эта программа написана на Python 2, а он скоро вовсе будет удалён из Kali Linux. Поэтому там бесполезно пытаться заставить работать эту программу.

      Есть ветка с поддержкой Python 3: https://github.com/n1nj4sec/pupy/tree/futurize

      Здесь автор говорит, что работает только функция по созданию полезной нагрузки на чистом Python. Но смысла в этом нет, так как эта полезная нагрузка требует полноценной установленной среды Python.

      В общем, я бы поискал альтернативу — учитывая сколько времени прошло с окончания поддержки Python 2 и скорости разработки новой версии, полноценная поддержка Python 3 в pupy будет добавлена примерно никогда.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *