Penelope

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 🐡