Logo
Cheat Sheet & Astuces Exegol
Overview
Cheat Sheet & Astuces Exegol

Cheat Sheet & Astuces Exegol

2 décembre 2023
5 min de lecture
Disponible en :
Warning

Il peut y avoir quelques erreurs.
Si vous en remarquez, contactez-moi ici

Le Cheat Sheet Exegol est un résumé des commandes et concepts pertinents liés au projet Exegol, tel que je les vois.

ThePorgs
/
Exegol
Waiting for api.github.com...
00K
0K
0K
Waiting...

Installation

Exegol repose sur Docker ; s’il n’est pas installé sur votre système, installez-le avec cette commande :

Terminal window
curl -fsSL "https://get.docker.com/" -o get-docker.sh && sh get-docker.sh
  1. Ajouter l’utilisateur au groupe Docker

    Permettre à l’utilisateur actuel d’utiliser Docker et donc Exegol sans élévation de privilèges :

    Terminal window
    sudo usermod -aG docker $(id -u -n) && newgrp docker
  2. Installer Exegol avec PIPX

    La façon la plus simple et la plus propre d’installer le projet Python Exegol (en version stable de la branche main) :

    Nécessite pipx ; installez-le si nécessaire : sudo apt install pipx

    Terminal window
    pipx install exegol
Note

pipx créera automatiquement les liens symboliques pour le venv Python afin que l’appel binaire fonctionne sans problème. Le PEP668 récemment introduit par les principales distributions GNU-Linux ne permet pas l’installation de paquets Python côté système, en particulier avec pip. Pour une bonne raison, car de nombreux projets Python ont été développés sur une version spécifique de Python avec des versions de dépendances spécifiques, généralement installées avec pip install -r requirements.txt.

Cela peut causer des problèmes de dépendances importants entre les projets, c’est pourquoi les environnements Python DOIVENT être isolés (idéalement) pour chaque projet, soit en créant un venv, soit en utilisant pipx, ce qui rend l’opération rapide et simple pour l’utilisateur. C’est pourquoi chaque projet Python installé dans les images Docker fournies par Exegol comprend un venv associé.

  1. Ajouter l’autocomplétion

    Ajoutez ceci à votre .bashrc ou .zshrc :

    ~/.bashrc
    eval "$(register-python-argcomplete --no-defaults exegol)"
  2. Installer une image Docker Exegol

    Terminal window
    exegol install nightly

Mise à jour d’exegol

Terminal window
pipx upgrade exegol

Ressources hors ligne

Les ressources hors ligne sont stockées dans /opt/resources, qui est partagé entre le système hôte et les conteneurs Docker. Ce répertoire stocke par défaut des outils utiles pour l’offensive, tels que :

  • winpeas
  • linpeas

L’objectif est de gagner du temps et de faciliter le transfert vers une cible.

Utilisation

  • Installer une image : exegol install
  • Créer/démarrer/entrer dans un conteneur : exegol start
  • Afficher des informations sur les conteneurs et les images : exegol info
  • Arrêter un conteneur : exegol stop
  • Supprimer un conteneur : exegol remove
  • Désinstaller une image : exegol uninstall
  • Obtenir de l’aide et une utilisation avancée : exegol --help
  • L’aide et les exemples peuvent être obtenus pour chaque action directement depuis le wrapper avec la commande suivante : exegol <action> -h (action: install/start/stop/etc.).

Installer Exegol en version bêta

La version bêta (branche dev) d’Exegol offre plusieurs fonctionnalités, dont le bureau à distance tant attendu (via le web) sur un conteneur. Si vous avez déjà Exegol installé :

  1. Désinstaller la version standard :

    Terminal window
    pipx uninstall exegol
  2. Il est nécessaire d’installer Exegol depuis le dépôt GitHub :

    Terminal window
    git clone "https://github.com/ThePorgs/Exegol"
  3. Installer les dépendances Python :

    Terminal window
    python3 -m pip install --user --requirement "Exegol/requirements.txt" --break-system-packages

    Ici l’option --break-system-packages ignore le PEP668.

  4. Ajouter Exegol au PATH :

Danger (Nettoyage)

Si vous avez désinstallé une version précédente d’Exegol avant, supprimez l’ancien fichier : sudo rm -f /usr/local/bin/exegol

Terminal window
sudo ln -s "$(pwd)/Exegol/exegol.py" "/usr/local/bin/exegol"
  1. Mettre à jour vers la branche bêta ou dev :

    Terminal window
    exegol update -v
  2. Il vous sera demandé de choisir la version de votre branche dans le dépôt Git ; choisissez dev.

  3. Vous devrez ensuite mettre à jour les dépendances Python du projet (la commande apparaîtra dans votre terminal).

Lancer un conteneur avec bureau à distance via accès web

Terminal window
exegol start test nightly --desktop

Corriger Evil-WinRM (Déprécié, corrigé)

Exegol a un problème avec l’implémentation d’OpenSSL lors de l’exécution d’Evil-WinRM. Pour corriger cela, nous devons modifier le fichier openssl.cnf (trouver [openssl_init] et le remplacer par la configuration ci-dessous) :

/etc/ssl/openssl.cnf
[openssl_init]
providers = provider_sect
# List of providers to load
[provider_sect]
default = default_sect
legacy = legacy_sect
[default_sect]
activate = 1
[legacy_sect]
activate = 1

Astuces

Comme j’utilise principalement Firefox et que c’est le navigateur par défaut dans les conteneurs, je télécharge parfois accidentellement quelque chose sur mon hôte au lieu du conteneur. Puisque j’utilise Hyprland, les titres de fenêtre n’apparaissent plus. Pour résoudre ce problème, je n’ai pas rétabli les titres, mais j’ai configuré Exegol pour installer un thème Firefox dans chaque conteneur. De cette façon, les deux fenêtres sont facilement distinguables comme le montre l’image ci-dessous.

Le navigateur de gauche est ouvert dans exegol

J’ai également ajouté uBlock Origin à tous les conteneurs pour bloquer les publicités (invites de cookies, publicités, trackers…) en modifiant le fichier suivant :

Terminal window
# This file can be used to install addons on the Firefox instance of Exegol.
# The download links of the addons to be installed can be listed in this file (ie: https://addons.mozilla.org/fr/firefox/addon/foxyproxy-standard/).
# All addons listed below will be downloaded and installed automatically when creating a new Exegol container.
https://addons.mozilla.org/fr/firefox/addon/ublock-origin/
https://addons.mozilla.org/fr/firefox/addon/rainbow-sparkle-animated-theme/

Quelques modifications dans l’historique :

~/.exegol/my-resources/setup/zsh/history
burpsuite &> /dev/null &
python3 -m http.server 80

Et quelques alias personnels :

~/.exegol/my-resources/setup/zsh/aliases
alias http='python3 -m http.server 80'
alias tun0='ip a sh dev tun0 | grep -oP "(?:[0-9]{1,3}\.){3}[0-9]{1,3}" | tr -d "\n" | xclip -sel c; tun0ip=$(xsel -ob); echo "\033[1;32m[+]\033[0m Successfully copied \033[1;32m$tun0ip\033[0m (tun0) to clipboard !"'
Warning

Si vous souhaitez monter des partages NFS dans un conteneur Exegol, vous devez le démarrer avec l’option --privileged.

Les captures d’écran viendront plus tard pour chaque étape :)