Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
penelope — Penelope Shell Handler | Kitploit
Инструменты/GitHubGitHub/brightio/penelope
Генерация полезной нагрузкиШелл-кодПост-эксплуатацияCTFТестирование на ПроникновениеКомандование и УправлениеRed TeamingИнструмент Удаленного Доступа
GitHubbrightio/penelope

penelope

Penelope Shell Handler

Репозиторий
2.0k2271 день назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Логотип


Black Hat Arsenal EU USA MEA
Kali Linux

Penelope — современный обработчик оболочек для пентестеров и участников CTF. Он предоставляет более функциональную альтернативу базовым netcat-слушателям, добавляя автоматическое обновление до PTY, управление сессиями, логирование, передачу файлов и вспомогательные модули.

Содержание

  • 📥 Установка
  • ⚙️ Возможности
    • 🖥️ Возможности сессий
    • 🌍 Глобальные возможности
    • 🧩 Модули
  • 💻 Использование
    • ▶️ Пример типичного использования
    • 🎬 Демонстрация произвольного использования
    • 🖲️ Команды главного меню
    • ⚡ Параметры командной строки
  • 🔒 Вопросы безопасности
  • 📝 Планы
  • ❓ ЧаВО
  • 🙌 Благодарности первым пользователям

Установка

Penelope работает в Unix-подобных системах, включая Linux, macOS и FreeBSD, и требует Python 3.6+.

Kali Linux

Penelope доступен в Kali Linux:

root@kitploit:~
sudo apt update
sudo apt install penelope

Самостоятельный запуск

Penelope полностью реализован с использованием стандартной библиотеки Python, что позволяет запускать его как отдельный скрипт без внешних зависимостей:

root@kitploit:~
wget -q https://raw.githubusercontent.com/brightio/penelope/refs/heads/main/penelope.py && python3 penelope.py

pipx

Чтобы установить последнюю версию напрямую с GitHub:

root@kitploit:~
pipx install git+https://github.com/brightio/penelope

Для версионного и более стабильного пути обновлений Penelope также доступен на PyPI:

root@kitploit:~
pipx install penelope-shell-handler

Возможности

Возможности сессий

(*) Можно вручную обновить до PTY командой upgrade

⚠️ Поддержка Windows является экспериментальной и активно разрабатывается.

Глобальные возможности

  • Упрощённое взаимодействие с целями через модули
  • Несколько сессий
  • Несколько слушателей
  • Раздача файлов/папок по HTTP (ключ -s)
  • Может быть импортирован в эксплойты Python3 для получения оболочки в том же терминале (см. extras/exploit_examples)
  • Может работать совместно с эксплойтами Metasploit, отключая стандартный обработчик с помощью set DisablePayloadHandler True
  • Предоставление живых сессий MCP-клиенту, такому как Claude Code, с помощью ключа --mcp (локальный HTTP, аутентификация по токену), позволяя управлять теми же оболочками одновременно с вами

Модули

модули

Демонстрация модуля Meterpreter

meterpreter

Использование

Пример типичного использования

root@kitploit:~
penelope                          # Listening for reverse shells on 0.0.0.0:4444
penelope -p 5555                  # Listening for reverse shells on 0.0.0.0:5555
penelope -p 4444,5555             # Listening for reverse shells on 0.0.0.0:4444 and 0.0.0.0:5555
penelope -i eth0 -p 5555          # Listening for reverse shells on eth0:5555
penelope -a                       # Listening for reverse shells on 0.0.0.0:4444 and show sample reverse shell payloads

penelope -c target -p 3333        # Connect to a bind shell on target:3333

penelope ssh user@target          # Get a reverse shell from target on local port 4444
penelope -p 5555 ssh user@target  # Get a reverse shell from target on local port 5555
penelope -i eth0 -p 5555 -- ssh -l user -p 2222 target  # Get a reverse shell from target on eth0, local port 5555 (use -- if ssh needs switches)

penelope -s <File/Folder>         # Share a file or folder via HTTP

Penelope

HTTP-файловый сервер (-s)

Penelope также можно использовать как быстрый HTTP-файловый сервер.

root@kitploit:~
penelope -s file.txt                 # Serve a single file on 0.0.0.0:8000
penelope -s /path/to/dir             # Serve a whole folder
penelope -s a.sh b.elf notes.txt     # Serve several items at once
penelope -s . -p 80                  # Serve the current dir on port 80
penelope -s secret.txt -prefix xk9   # Hide behind a URL prefix: /xk9/secret.txt
penelope -s -u                       # Upload mode: accept PUT/POST into the CWD
penelope -s -u -ud /tmp/loot         # Upload mode, store received files in /tmp/loot

При запуске Penelope выводит готовую к использованию ссылку для каждого интерфейса (и подсказку для загрузки, когда задан -u), так что вы можете скопировать и вставить её прямо в оболочку цели.

Демонстрация произвольного использования

Как показано на видео ниже, всего за несколько секунд мы можем:

  1. Получить полностью функциональную PTY-оболочку с автоматическим изменением размера, записывая каждое взаимодействие с целью
  2. Выполнить последнюю версию LinPEAS на цели без касания диска и сохранить вывод в локальный файл в реальном времени
  3. Открыть ещё одну PTY-оболочку на другой вкладке
  4. Загрузить последние версии LinPEAS и linux-smart-enumeration
  5. Загрузить локальную папку с пользовательскими скриптами
  6. Загрузить эксплойт из exploit-db напрямую по URL
  7. Скачать и открыть удалённый файл локально
  8. Скачать удалённую директорию /etc
  9. Автоматически породить новую оболочку, если существующая завершилась, помогая сохранять доступ во время нестабильных сессий

https://github.com/brightio/penelope/assets/65655412/7295da32-28e2-4c92-971f-09423eeff178

Команды главного меню

Несколько замечаний:

  • По умолчанию нужно нажать F12, чтобы отсоединиться от PTY-оболочки и перейти в главное меню. Если обновление не удалось и вы оказались в базовой оболочке, её можно отсоединить с помощью Ctrl+C. Это также предотвращает случайное убийство оболочки.
  • Главное меню поддерживает автодополнение по TAB, а также короткие команды. Например, вместо interact 1 можно просто ввести i 1.

Главное меню

Параметры командной строки

root@kitploit:~
positional arguments:
  args                          Аргументы для режимов -s/--serve и SSH reverse shell

options:
  -p, --ports                   Порты (через запятую) для прослушивания/подключения/раздачи, зависит от -i/-c/-s
                                (По умолчанию: 4444/5555/8000)

Reverse or Bind shell?:
  -i, --interface               Локальный интерфейс/IP для прослушивания. (По умолчанию: 0.0.0.0)
  -c, --connect                  Хост для bind shell
  -j, --jump                    Точки перехода для reverse shell

Hints:
  -a, --payloads                Показать примеры reverse shell для активных слушателей
  -l, --interfaces              Список доступных сетевых интерфейсов
  -h, --help                    Показать это сообщение и выйти

Session Logging:
  -L, --no-log                  Отключить файлы логов сессий
  -T, --no-timestamps           Отключить временные метки в логах
  -CT, --no-colored-timestamps  Отключить цветные временные метки в логах

Misc:
  -M, --menu                    Запустить в главном меню
  -m, --maintain                Поддерживать N сессий на цель
  -S, --single-session          Принимать только первую созданную сессию
  -ms, --max-sessions           Максимум активных сессий на хост (по умолч. 5, 0 = отклонять все новые)
  -C, --no-attach               Не подключаться автоматически к новым сессиям
  -U, --no-upgrade              Отключить автообновление оболочки
  -H, --keep-history            Сохранять историю оболочки цели (не устанавливать HISTFILE=/dev/null)
  -O, --oscp-safe               Включить безопасный режим OSCP
  --no-disk                     Хранить всё состояние в RAM (tmpfs); ничего не сохраняется на диск

MCP:
  --mcp                         Включить MCP-сервер через локальный HTTP
  --mcp-host                    Хост/IP для привязки (по умолч. 127.0.0.1)
  --mcp-port                    Порт для привязки (по умолч. сохранённый порт, иначе случайный свободный порт, сохранённый в ~/.penelope/mcp.json)
  --mcp-token                   Bearer-токен (по умолч. сохранённый токен, иначе автосгенерированный и сохранённый)

File server:
  -s, --serve                   Запустить режим HTTP-файлового сервера
  -prefix, --url-prefix         Префикс пути URL
  -u, --upload                  Включить загрузку файлов (PUT/POST) на сервер
  -ud, --upload-dir             Директория для хранения загруженных файлов (по умолч. CWD)

Debug:
  -N, --no-bins                 Симулировать отсутствие бинарников на цели (через запятую)
  -v, --version                 Показать версию и выйти
  -d, --debug                   Включить отладочный вывод
  -dd, --dev-mode               Включить режим разработчика
  -cu, --check-urls             Проверить работоспособность жёстко заданных URL и выйти

Вопросы безопасности

Penelope предназначен для прямого и гибкого взаимодействия с удалёнными оболочками. Учитывайте следующее при его использовании:

  • Управляющие последовательности терминала: Penelope передаёт вывод терминала с удалённых систем напрямую вашему эмулятору терминала. Вредоносные процессы на удалённой стороне могут использовать управляющие последовательности для манипуляции экраном, создания вводящих в заблуждение ссылок или взаимодействия с такими функциями, как буфер обмена. Это воздействие присуще любому инструменту, передающему удалённую оболочку локальному терминалу (например, SSH, telnet, netcat), и не является специфичным для Penelope. Используйте терминал с соответствующими настройками безопасности при подключении к ненадёжным системам.

  • Логи сессий: Логи сессий могут содержать учётные данные, токены, команды и другую конфиденциальную информацию, полученную от цели. Храните их в безопасности и используйте --no-log, когда логирование не требуется.

  • Незашифрованные соединения: Стандартные reverse и bind shell соединения не зашифрованы. Избегайте их использования в ненадёжных сетях, если трафик не защищён безопасным туннелем или VPN.

  • MCP-сервер (--mcp): При включении MCP-сервер предоставляет полный контроль над всеми активными сессиями (выполнение команд, передача файлов) любому клиенту, владеющему bearer-токеном, который хранится в ~/.penelope/mcp.json (0600). Он привязывается к 127.0.0.1 и аутентифицируется по токену. Храните токен в секрете и не подвергайте сервер воздействию ненадёжных сетей.

⚖️ Отказ от ответственности: Penelope предназначен только для авторизованного тестирования безопасности, исследований и образовательных целей. Не используйте его против систем без явного разрешения.

Планы

Возможности

  • шифрование
  • проброс удалённых портов
  • socks и http proxy
  • командный сервер
  • HTTPs и DNS-агенты

Известные проблемы

  • Логирование сессий: команды, использующие альтернативные буферы, такие как nano, могут оставлять управляющие последовательности в логе при аварийном завершении. Данные по-прежнему сохраняются, но просмотр лога с помощью таких инструментов, как cat, может выглядеть искажённым. Фильтрация этих последовательностей планируется для улучшения читаемости логов.

ЧаВО

► Разрешён ли Penelope на экзамене OSCP?

Основные функции обработки оболочек Penelope не выполняют автоматического эксплойта, что делает их подходящими для стиля OSCP. Однако правила экзамена могут меняться, поэтому всегда проверяйте текущие официальные правила OffSec перед использованием любого инструмента на экзамене.

Некоторые модули требуют особой осторожности:

  • Модуль meterpreter должен использоваться только так, чтобы соблюдать текущие правила экзамена.
  • Модуль traitor загружает Traitor, который выполняет автоматическое повышение привилегий.

Если вы хотите избежать случайного нарушения правил, используйте ключ -O / --oscp-safe.

► Как вернуться из удалённой оболочки в главное меню?

Это зависит от типа используемого обновления оболочки:

  • PTY: нажмите F12
  • Readline: отправьте EOF (Ctrl-D)
  • Raw: отправьте SIGINT (Ctrl-C)

В любом случае правильная клавиша всегда отображается при подключении к сессии. Например:

F12

► Как настроить Penelope (изменить параметры по умолчанию, создать пользовательские модули и т.д.)?

См. peneloperc

► Почему моя текущая рабочая директория и/или пользователь не учитываются при использовании команд меню, таких как download/upload?

Это обычно означает, что вы открыли новую интерактивную оболочку, возможно, под другим пользователем. Агент Penelope отслеживает только директорию начальной оболочки и сохраняет права пользователя из этой первой оболочки. Лучший обходной путь — выполнить cd /tmp перед открытием новой оболочки, или, если вы сменили пользователя, породить новую reverse shell от имени нового пользователя.

► Как я могу помочь проекту?

Ваш вклад неоценим! Если вы хотите помочь, пожалуйста, сообщайте об ошибках, неожиданном поведении или делитесь новыми идеями. Вы также можете отправлять pull-реквесты, но избегайте коммитов из IDE, которые навязывают PEP8 и непреднамеренно перестраивают всю базу кода.

► Откуда взялось название?

Пенелопа была женой Одиссея и известна своей верностью и терпением, пока ждала его возвращения. Инструмент назван в её честь, потому что он был создан как надёжный и стабильный обработчик оболочек для рабочих процессов, выходящих за рамки базового слушателя.

Благодарности первым пользователям

  • Cristian Grigoriu - @crgr за то, что вдохновил меня на автоматизацию процесса обновления до PTY. Именно так родился этот проект.
  • Paul Taylor - @bao7uo за идею поддержки bind shells.
  • Longlone - @WAY29 за указание на необходимость совместимости с предыдущими версиями Python (3.6).
  • Carlos Polop - @carlospolop за идею порождать оболочки на слушателях на других системах.
  • @darrenmartyn за указание альтернативного метода обновления оболочки до PTY с помощью команды script.
  • @bamuwe за идею получать reverse shells через SSH.
  • @strikoder за множество идей по улучшению.
  • @root-tanishq, @robertstrom, @terryf82, @RamadhanAmizudin, @furkan-enes-polatoglu, @DerekFost, @Mag1cByt3s, @nightingalephillip, @grisuno, @thinkslynk, @stavoxnetworks, @thomas-br, @joshoram80, @TheAalCh3m1st, @r3pek, @bamuwe, @six-two, @x9xhack, @dummys, , , , за сообщения об ошибках.
Скачать инструмент
ФункцияUnix-подобная цельWindows-цель
Автообновление оболочкиPTYreadline(*)
Изменение размера терминала в реальном времени✅❌
Логирование активности оболочки✅✅
Скачивание удалённых файлов/папок✅✅
Загрузка локальных/HTTP-файлов/папок✅✅
Выполнение локальных/HTTP-скриптов в памяти с загрузкой вывода в реальном времени✅❌
Проброс локальных портов✅❌
Запуск оболочек на нескольких вкладках и/или хостах✅❌
Автоподдержание N активных оболочек на хост (перезапуск при завершении)✅❌
@pocpayload
@anti79
@strikoder
@bestutsengineer
  • Особая благодарность @Y3llowDuck за распространение информации!