
Penelope : L’Outil Indispensable pour vos Tests d’Intrusion
Bonjour à tous les passionnés de cybersécurité ! Aujourd’hui, nous allons vous parler de Penelope, un outil développé par brightio qui va révolutionner votre façon de gérer les shells lors de vos tests d’intrusion. Penelope est un gestionnaire de shells conçu pour être facile à utiliser et destiné à remplacer netcat lors de l’exploitation de vulnérabilités RCE. Compatible avec Linux et macOS, il nécessite Python 3.6 ou une version ultérieure. C’est un script autonome utilisant uniquement la bibliothèque native de Python, et il est prévu de le garder ainsi.

Fonctionnalités de Session
Penelope offre une multitude de fonctionnalités pour faciliter vos interactions avec les cibles :
- Mise à niveau automatique du shell : PTY pour Unix avec Python>=2.3, PTY(*) pour Unix sans Python>=2.3, et readline pour Windows.
- Redimensionnement du terminal en temps réel : Disponible pour Unix avec ou sans Python>=2.3.
- Journalisation de l’activité du shell : Disponible pour toutes les plateformes.
- Téléchargement de fichiers/dossiers distants : Disponible pour toutes les plateformes.
- Téléchargement de fichiers/dossiers locaux/HTTP : Disponible pour toutes les plateformes.
- Exécution de scripts locaux/HTTP en mémoire avec téléchargement de la sortie en temps réel : Disponible pour Unix avec Python>=2.3.
- Transfert de port local : Disponible pour Unix avec Python>=2.3.
- Ouverture de shells sur plusieurs onglets et/ou hôtes : Disponible pour Unix avec ou sans Python>=2.3.
- Maintien d’un nombre X de shells actifs par hôte : Disponible pour Unix avec ou sans Python>=2.3.
(*) ouvre une seconde connexion TCP
Fonctionnalités Globales
Penelope propose également des fonctionnalités globales pour simplifier vos interactions avec les cibles :
- Interaction simplifiée avec les cibles via des modules
- Sessions multiples
- Écouteurs multiples
- Servir des fichiers/dossiers via HTTP (-s switch)
- Peut être importé par des exploits python3 et obtenir un shell sur le même terminal (voir Extras)
Modules
Penelope peut fonctionner avec les exploits de metasploit en désactivant le gestionnaire par défaut avec set DisablePayloadHandler True.
Installation
Pour installer Penelope, vous avez besoin de pipx. Voici les instructions d’installation :
pipx install git+https://github.com/brightio/penelope
Utilisation
Voici quelques exemples d’utilisation typique de Penelope :
penelope # Écoute les shells inversés sur 0.0.0.0:4444
penelope -a # Écoute les shells inversés sur 0.0.0.0:4444 et affiche les payloads de shell inversé basés sur les écouteurs actuels
penelope 5555 # Écoute les shells inversés sur 0.0.0.0:5555
penelope 5555 -i eth0 # Écoute les shells inversés sur eth0:5555
penelope 1111 2222 3333 # Écoute les shells inversés sur 0.0.0.0:1111, 0.0.0.0:2222, 0.0.0.0:3333
penelope -c target 3333 # Se connecte à un shell de liaison sur target:3333
Commandes du Menu Principal

Quelques notes :
- Par défaut, vous devez appuyer sur F12 pour détacher le shell PTY et accéder au Menu Principal. Si la mise à niveau n’était pas possible et que vous vous retrouvez avec un shell de base, vous pouvez le détacher avec Ctrl+C. Cela empêche également la fermeture accidentelle du shell.
- Le Menu Principal prend en charge la complétion par tabulation et également les commandes courtes. Par exemple, au lieu de taper interact 1, vous pouvez simplement taper i 1.
Options de Ligne de Commande
Penelope offre également une variété d’options de ligne de commande pour personnaliser votre expérience.
positional arguments:
ports Ports to listen/connect to, depending on -i/-c options. Default: 4444
Reverse or Bind shell?:
-i , --interface Interface or IP address to listen on. Default: 0.0.0.0
-c , --connect Bind shell Host
Hints:
-a, --payloads Show sample payloads for reverse shell based on the registered Listeners
-l, --interfaces Show the available network interfaces
-h, --help show this help message and exit
Session Logging:
-L, --no-log Do not create session log files
-T, --no-timestamps Do not include timestamps in session logs
-CT, Do not color timestamps in session logs
Misc:
-m , --maintain Maintain NUM total shells per target
-M, --menu Just land to the Main Menu
-S, --single-session Accommodate only the first created session
-C, --no-attach Disable auto attaching sessions upon creation
-U, --no-upgrade Do not upgrade shells
File server:
-s, --serve HTTP File Server mode
-p , --port File Server port. Default: 8000
-prefix URL prefix
Debug:
-N , --no-bins Simulate binary absence on target (comma separated list)
-v, --version Show Penelope version
-d, --debug Show debug messages
-dd, --dev-mode Developer mode
-cu, --check-urls Check health of hardcoded URLs
Extras
Il y a également deux scripts de simulation d’exploit inclus dans le dossier extras pour démontrer comment Penelope peut être importé et obtenir un shell sur le même terminal. L’illustration ci-dessous montre comment Penelope est importé dans un exploit python3 pour la machine Quick de Hack The Box.
De plus, un script bash est inclus qui met automatiquement à niveau les shells Unix vers PTY en utilisant xdotool.

Vous pouvez cloner le dépôt depuis ici : Lien GitHub
Cyberfishement 🐡