Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
penelope — Penelope Shell Handler | Kitploit
Tools/GitHubGitHub/brightio/penelope
Payload-GenerierungShellcodePost-ExploitationCTFPenetrationstestsCommand and ControlRed TeamingRemote-Access-Tool
GitHubbrightio/penelope

penelope

Penelope Shell Handler

Repository anzeigen
2.0k227vor 1 TagVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Logo


Black Hat Arsenal EU USA MEA
Kali Linux

Penelope ist ein moderner Shell-Handler für Penetrationstester und CTF-Spieler. Er bietet eine leistungsfähigere Alternative zu einfachen Netcat-Listenern und fügt automatische PTY-Upgrades, Sitzungsverwaltung, Protokollierung, Dateiübertragungen und Hilfsmodule hinzu.

Inhaltsverzeichnis

  • 📥 Installation
  • ⚙️ Funktionen
    • 🖥️ Sitzungsfunktionen
    • 🌍 Globale Funktionen
    • 🧩 Module
  • 💻 Verwendung
    • ▶️ Beispiel für typische Verwendung
    • 🎬 Demonstration zufälliger Verwendung
    • 🖲️ Hauptmenübefehle
    • ⚡ Befehlszeilenoptionen
  • 🔒 Sicherheitshinweise
  • 📝 TODO
  • ❓ FAQ
  • 🙌 Dank an die Frühstarter

Installation

Penelope läuft auf Unix-ähnlichen Systemen, einschließlich Linux, macOS und FreeBSD, und benötigt Python 3.6+.

Kali Linux

Penelope ist in Kali Linux verfügbar:

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

Eigenständige Ausführung

Penelope ist vollständig mit Pythons Standardbibliothek implementiert, sodass es als eigenständiges Skript ohne externe Abhängigkeiten ausgeführt werden kann:

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

pipx

So installierst du die neueste Upstream-Version direkt von GitHub:

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

Für einen versionierten und stabileren Release-Pfad ist Penelope auch auf PyPI verfügbar:

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

Funktionen

Sitzungsfunktionen

(*) Kann mit dem Befehl upgrade manuell auf PTY upgegradet werden.

⚠️ Die Windows-Unterstützung ist experimentell und befindet sich in aktiver Entwicklung.

Globale Funktionen

  • Optimierte Interaktion mit den Zielen über Module
  • Mehrere Sitzungen
  • Mehrere Listener
  • Dateien/Ordner über HTTP bereitstellen (-s Schalter)
  • Kann von python3-Exploits importiert werden, um eine Shell auf demselben Terminal zu erhalten (siehe extras/exploit_examples)
  • Kann zusammen mit Metasploit-Exploits verwendet werden, indem der Standard-Handler mit set DisablePayloadHandler True deaktiviert wird
  • Live-Sitzungen für einen MCP-Client wie Claude Code mit dem Schalter --mcp bereitstellen (lokales HTTP, token-authentifiziert) und die gleichen Shells neben dir steuern

Module

modules

Meterpreter-Modul-Demonstration

meterpreter

Verwendung

Beispiel für typische Verwendung

root@kitploit:~
penelope                          # Lauscht auf Reverse Shells auf 0.0.0.0:4444
penelope -p 5555                  # Lauscht auf Reverse Shells auf 0.0.0.0:5555
penelope -p 4444,5555             # Lauscht auf Reverse Shells auf 0.0.0.0:4444 und 0.0.0.0:5555
penelope -i eth0 -p 5555          # Lauscht auf Reverse Shells auf eth0:5555
penelope -a                       # Lauscht auf Reverse Shells auf 0.0.0.0:4444 und zeigt Beispiel-Revshell-Payloads

penelope -c ziel -p 3333          # Verbindet zu einer Bind Shell auf ziel:3333

penelope ssh benutzer@ziel        # Holt eine Reverse Shell von ziel auf lokalem Port 4444
penelope -p 5555 ssh benutzer@ziel # Holt eine Reverse Shell von ziel auf lokalem Port 5555
penelope -i eth0 -p 5555 -- ssh -l benutzer -p 2222 ziel # Holt eine Reverse Shell von ziel auf eth0, lokaler Port 5555 (-- verwenden, wenn ssh Schalter benötigt)

penelope -s <Datei/Ordner>        # Teilt eine Datei oder einen Ordner über HTTP

Penelope

HTTP-Dateiserver (-s)

Penelope kann auch als schneller HTTP-Dateiserver verwendet werden.

root@kitploit:~
penelope -s datei.txt                 # Dient eine einzelne Datei auf 0.0.0.0:8000
penelope -s /pfad/zu/verz             # Dient einen gesamten Ordner
penelope -s a.sh b.elf notizen.txt    # Dient mehrere Elemente gleichzeitig
penelope -s . -p 80                   # Dient das aktuelle Verzeichnis auf Port 80
penelope -s geheim.txt -prefix xk9    # Hinter einem URL-Prefix verstecken: /xk9/geheim.txt
penelope -s -u                        # Upload-Modus: Akzeptiert PUT/POST in das aktuelle Arbeitsverzeichnis
penelope -s -u -ud /tmp/beute         # Upload-Modus, speichert empfangene Dateien in /tmp/beute

Beim Start gibt Penelope einen gebrauchsfertigen Link pro Schnittstelle aus (und einen Upload-Hinweis, wenn -u gesetzt ist), sodass du ihn direkt in die Ziel-Shell kopieren kannst.

Demonstration zufälliger Verwendung

Wie im folgenden Video gezeigt, können wir in nur wenigen Sekunden:

  1. Eine voll funktionsfähige, automatisch größenveränderbare PTY-Shell erhalten, während jede Interaktion mit dem Ziel protokolliert wird.
  2. Die neueste Version von LinPEAS auf dem Ziel ausführen, ohne die Festplatte zu berühren, und die Ausgabe in Echtzeit lokal speichern.
  3. Eine weitere PTY-Shell in einem anderen Tab öffnen.
  4. Die neuesten Versionen von LinPEAS und linux-smart-enumeration hochladen.
  5. Einen lokalen Ordner mit benutzerdefinierten Skripten hochladen.
  6. Ein Exploit-DB-Exploit direkt von einer URL hochladen.
  7. Eine entfernte Datei herunterladen und lokal öffnen.
  8. Das entfernte /etc-Verzeichnis herunterladen.
  9. Automatisch eine neue Shell starten, wenn eine bestehende Shell stirbt, um den Zugriff während instabiler Shell-Sitzungen zu erhalten.

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

Hauptmenübefehle

Einige Hinweise:

  • Standardmäßig musst du F12 drücken, um die PTY-Shell zu trennen und zum Hauptmenü zu gelangen. Falls das Upgrade nicht möglich war und du eine einfache Shell erhalten hast, kannst du sie mit Strg+C trennen. Dies verhindert auch das versehentliche Abbrechen der Shell.
  • Das Hauptmenü unterstützt TAB-Vervollständigung und auch Kurzbefehle. Anstatt interact 1 kannst du einfach i 1 eingeben.

Hauptmenü

Befehlszeilenoptionen

root@kitploit:~
Positionsargumente:
  args                          Argumente für -s/--serve und SSH-Reverse-Shell-Modi

Optionen:
  -p, --ports                   Ports (kommagetrennt) zum Lauschen/Verbinden/Bereitstellen, abhängig von -i/-c/-s Optionen
                                (Standard: 4444/5555/8000)

Reverse oder Bind Shell?:
  -i, --interface               Lokale Schnittstelle/IP zum Lauschen. (Standard: 0.0.0.0)
  -c, --connect                 Bind Shell Host
  -j, --jump                    Reverse Shell Jump-Endpunkte

Hinweise:
  -a, --payloads                Beispiel-Revshell-Payloads für aktive Listener anzeigen
  -l, --interfaces              Verfügbare Netzwerkschnittstellen auflisten
  -h, --help                    Diese Hilfemeldung anzeigen und beenden

Sitzungsprotokollierung:
  -L, --no-log                  Sitzungsprotokolldateien deaktivieren
  -T, --no-timestamps           Zeitstempel in Protokollen deaktivieren
  -CT, --no-colored-timestamps  Farbige Zeitstempel in Protokollen deaktivieren

Sonstiges:
  -M, --menu                    Im Hauptmenü starten
  -m, --maintain                N Sitzungen pro Ziel aufrechterhalten
  -S, --single-session          Nur die erste erstellte Sitzung zulassen
  -ms, --max-sessions           Maximale aktive Sitzungen pro Host (Standard 5, 0 = alle neuen ablehnen)
  -C, --no-attach               Nicht automatisch an neue Sitzungen anhängen
  -U, --no-upgrade              Automatisches Shell-Upgrade deaktivieren
  -H, --keep-history            Ziel-Shell-Verlauf behalten (kein HISTFILE=/dev/null setzen)
  -O, --oscp-safe               OSCP-sicheren Modus aktivieren
  --no-disk                     Gesamten Zustand im RAM (tmpfs) behalten; nichts dauerhaft auf die Festplatte schreiben

MCP:
  --mcp                         MCP-Server über lokales HTTP aktivieren
  --mcp-host                    Host/IP zum Binden (Standard: 127.0.0.1)
  --mcp-port                    Port zum Binden (Standard: gespeicherter Port, sonst ein zufälliger freier Port, gespeichert in ~/.penelope/mcp.json)
  --mcp-token                   Bearer-Token (Standard: gespeicherter Token, sonst automatisch generiert und gespeichert)

Dateiserver:
  -s, --serve                   HTTP-Dateiserver-Modus ausführen
  -prefix, --url-prefix         URL-Pfad-Prefix
  -u, --upload                  Datei-Upload (PUT/POST) zum Server aktivieren
  -ud, --upload-dir             Verzeichnis zum Speichern von Uploads (Standard: aktuelles Arbeitsverzeichnis)

Debug:
  -N, --no-bins                 Fehlen von Binärdateien auf dem Ziel simulieren (kommagetrennt)
  -v, --version                 Version ausgeben und beenden
  -d, --debug                   Debug-Ausgabe aktivieren
  -dd, --dev-mode               Entwicklermodus aktivieren
  -cu, --check-urls             Hartcodierte URLs auf Gesundheit prüfen und beenden

Sicherheitshinweise

Penelope wurde entwickelt, um eine direkte und flexible Interaktion mit entfernten Shells zu ermöglichen. Beachte bei der Verwendung Folgendes:

  • Terminal-Escape-Sequenzen: Penelope leitet Terminalausgaben von entfernten Systemen direkt an deinen Terminalemulator weiter. Böswillige entfernte Prozesse können Terminal-Escape-Sequenzen verwenden, um den Bildschirm zu manipulieren, irreführende Links zu erstellen oder mit Funktionen wie der Zwischenablage zu interagieren. Diese Exposition ist inhärent für jedes Tool, das eine entfernte Shell an das lokale Terminal weiterleitet (wie SSH, Telnet, Netcat) und nicht spezifisch für Penelope. Verwende ein Terminal mit entsprechenden Sicherheitseinstellungen, wenn du dich mit nicht vertrauenswürdigen Systemen verbindest.

  • Sitzungsprotokolle: Sitzungsprotokolle können Anmeldeinformationen, Token, Befehle und andere vertrauliche Informationen enthalten, die vom Ziel empfangen wurden. Bewahre sie sicher auf und verwende --no-log, wenn keine Protokollierung erforderlich ist.

  • Unverschlüsselte Verbindungen: Standard-Reverse- und Bind-Shell-Verbindungen sind nicht verschlüsselt. Vermeide ihre Verwendung über nicht vertrauenswürdige Netzwerke, es sei denn, der Verkehr wird durch einen sicheren Tunnel oder VPN geschützt.

  • MCP-Server (--mcp): Wenn aktiviert, gewährt der MCP-Server die vollständige Kontrolle über jede aktive Sitzung (Befehlsausführung, Dateiübertragung) jedem Client, der den Bearer-Token besitzt. Dieser Token wird in ~/.penelope/mcp.json (0600) gespeichert. Der Server bindet an 127.0.0.1 und ist token-authentifiziert. Halte den Token geheim und vermeide es, den Server in nicht vertrauenswürdigen Netzwerken freizugeben.

⚖️ Haftungsausschluss: Penelope ist nur für autorisierte Sicherheitstests, Forschung und Bildungszwecke bestimmt. Verwende es nicht gegen Systeme ohne ausdrückliche Genehmigung.

TODO

Funktionen

  • Verschlüsselung
  • Remote-Portweiterleitung
  • Socks & HTTP-Proxy
  • Team-Server
  • HTTPS- und DNS-Agenten

Bekannte Probleme

  • Sitzungsprotokollierung: Befehle, die alternative Puffer verwenden, wie nano, können Escape-Sequenzen im Protokoll hinterlassen, wenn sie abnormal beendet werden. Die Daten bleiben erhalten, aber die Ansicht der Logdatei mit Tools wie cat kann beschädigt wirken. Das Filtern dieser Escape-Sequenzen ist geplant, um die Protokollausgabe zu glätten.

FAQ

► Ist Penelope in der OSCP-Prüfung erlaubt?

Die Kernfunktionen von Penelope zur Shell-Verwaltung führen keine automatische Ausnutzung durch, was sie für die OSCP-ähnliche Nutzung geeignet macht. Allerdings können sich die Prüfungsregeln ändern, daher überprüfe immer die aktuellen offiziellen OffSec-Regeln, bevor du ein Tool während einer Prüfung verwendest.

Einige Module erfordern besondere Vorsicht:

  • Das Meterpreter-Modul sollte nur in einer Weise verwendet werden, die den aktuellen Prüfungsregeln entspricht.
  • Das Traitor-Modul lädt Traitor hoch, das eine automatische Privilegienausweitung durchführt.

Wenn du versehentliche Regelverstöße vermeiden möchtest, verwende den Schalter -O / --oscp-safe.

► Wie komme ich von der entfernten Shell zurück zum Hauptmenü?

Es hängt von der Art des Shell-Upgrades ab:

  • PTY: F12 drücken
  • Readline: EOF senden (Strg+D)
  • Raw: SIGINT senden (Strg+C)

In jedem Fall wird die richtige Taste angezeigt, wenn du dich mit einer Sitzung verbindest. Zum Beispiel:

F12

► Wie kann ich Penelope anpassen (Standardoptionen ändern, benutzerdefinierte Module erstellen usw.)?

Siehe peneloperc

► Warum werden mein aktuelles Arbeitsverzeichnis und/oder mein Benutzer nicht respektiert, wenn ich Menübefehle wie download/upload verwende?

Dies bedeutet normalerweise, dass du eine neue interaktive Shell geöffnet hast, möglicherweise unter einem anderen Benutzer. Der Penelope-Agent verfolgt nur das Verzeichnis der ursprünglichen Shell und behält die Berechtigungen des Benutzers dieser ersten Shell bei. Die beste Problemumgehung ist, vor dem Öffnen einer neuen Shell mit cd /tmp zu wechseln, oder, wenn du den Benutzer gewechselt hast, eine neue Reverse Shell als neuer Benutzer zu starten.

► Wie kann ich beitragen?

Deine Beiträge sind unbezahlbar! Wenn du helfen möchtest, melde bitte Fehler, unerwartetes Verhalten oder teile neue Ideen mit. Du kannst auch Pull-Requests einreichen, vermeide jedoch Commits von IDEs, die PEP8 erzwingen und unbeabsichtigt die gesamte Codebasis umstrukturieren.

► Woher kommt der Name?

Penelope war die Frau von Odysseus und bekannt für ihre Loyalität und Geduld, während sie auf seine Rückkehr wartete. Das Tool ist nach ihr benannt, weil es als treuer und stabiler Shell-Handler für Arbeitsabläufe entwickelt wurde, die über einen einfachen Listener hinausgehen.

Dank an die Frühstarter

  • Cristian Grigoriu - @crgr für die Inspiration, den PTY-Upgrade-Prozess zu automatisieren. So wurde dieses Projekt geboren.
  • Paul Taylor - @bao7uo für die Idee, Bind Shells zu unterstützen.
  • Longlone - @WAY29 für den Hinweis auf die Notwendigkeit der Kompatibilität mit früheren Python-Versionen (3.6).
  • Carlos Polop - @carlospolop für die Idee, Shells auf Listenern auf anderen Systemen zu starten.
  • @darrenmartyn für den Hinweis auf eine alternative Methode zum Upgrade der Shell auf PTY mit dem script-Befehl.
  • @bamuwe für die Idee, Reverse Shells über SSH zu erhalten.
  • @strikoder für zahlreiche Verbesserungsideen.
  • @root-tanishq, @robertstrom, @terryf82, @RamadhanAmizudin, @furkan-enes-polatoglu, @DerekFost, @Mag1cByt3s, @nightingalephillip, @grisuno, @thinkslynk, @stavoxnetworks, @thomas-br, @joshoram80, @TheAalCh3m1st, @r3pek, @bamuwe, @six-two, @x9xhack, , , , , für die Fehlermeldungen.
Tool herunterladen
FunktionUnix-ähnliches ZielWindows-Ziel
Automatisches Shell-UpgradePTYreadline(*)
Echtzeit-Größenänderung des Terminals✅❌
Protokollierung der Shell-Aktivität✅✅
Herunterladen entfernter Dateien/Ordner✅✅
Hochladen lokaler/HTTP-Dateien/Ordner✅✅
In-Memory-Ausführung lokaler/HTTP-Skripte mit Echtzeit-Ausgabe-Download✅❌
Lokale Portweiterleitung✅❌
Shells auf mehreren Tabs und/oder Hosts starten✅❌
Automatische Aufrechterhaltung von N aktiven Shells pro Host (Neustart bei Tod)✅❌
@dummys
@pocpayload
@anti79
@strikoder
@bestutsengineer
  • Besonderer Dank an @Y3llowDuck für das Verbreiten der Nachricht!