Découverte d’Exegol, un environnement dédié à la sécurité offensive 

Introduction

Exegol est un outil qui simplifie la création d’environnements de tests de sécurité et notamment de pentest grâce à Docker. Il vient combler ce besoin en offrant une solution puissante et efficace pour construire des environnements isolés et reproductibles.

S’appuyant sur Docker, Exegol permet en effet de créer des conteneurs individuels pour les différents environnements utilisés lors des tests de sécurité.

Dans cet article, nous passerons en revue les principales fonctionnalités et spécificités d’Exegol.

The Exegol Project

Exegol, une solution qui s’appuie sur l’environnement d’exécution de conteneurs Docker

On peut faire une comparaison avec des systèmes d’exploitation existants qui comportent des outils de sécurité comme Kali Linux ou bien Parrot OS. Dans les 2 cas, l’objectif reste le même : avoir un environnement de pentest avec une liste d’outils disponibles.

Exegol va plus loin en utilisant Docker au lieu de machines virtuelles. En effet, Docker possède plusieurs avantages comme :

  • Sa légèreté : Les conteneurs Docker sont plus légers que les machines virtuelles. Ils partagent le noyau de l’hôte, ce qui signifie qu’ils n’ont pas besoin d’inclure un système d’exploitation complet. Cela rend les conteneurs plus rapides à démarrer, nécessite moins de ressources système et permet d’exécuter davantage de conteneurs sur une seule machine physique.
  • Sa portabilité : Les conteneurs Docker sont hautement portables. Une fois qu’un conteneur est créé, il peut être exécuté sur n’importe quel système qui prend en charge Docker. Cela facilite le déploiement des applications sur différentes plateformes.
  • Son évolutivité : Les conteneurs peuvent être facilement clonés, démarrés, arrêtés et supprimés, ce qui permet d’ajuster rapidement le nombre d’instances en fonction des besoins. Cela permet une gestion plus flexible des charges de travail et une utilisation plus efficace des ressources.
  • Son isolation : Les conteneurs Docker fournissent une isolation efficace entre les applications et les services exécutés à l’intérieur d’eux. Chaque conteneur dispose de ses propres bibliothèques et dépendances, ce qui élimine les problèmes potentiels de compatibilité entre les applications.

Exegol, une solution accessible sur toutes les architectures d’OS

Une des caractéristiques d’Exegol est sa prise en charge de la multi-architecture, ce qui signifie qu’il peut fonctionner sur divers systèmes d’exploitation. Que vous utilisiez Windows, Linux, macOS ou même des plateformes basées sur ARM, Exegol sera fonctionnel !

Un outil permettant de simplifier l’expérience utilisateur via son Wrapper

Pour faciliter l’expérience utilisateur et rendre l’utilisation d’Exegol encore plus facile, un projet en python a été développé. Ce wrapper agit comme une interface, qui gère de manière transparente l’interaction entre l’utilisateur et Docker. Ainsi, les utilisateurs peuvent interagir avec Exegol à travers des commandes simplifiées et l’expérience utilisateur est assurée.

Exegol, une solution clé en main, complète et facilement déployable

Exegol propose plusieurs images Docker préconfigurées qui regroupent différents ensembles d’outils spécifiques à certaines catégories. Ces images permettent aux utilisateurs de choisir l’image qui correspond le mieux à leurs besoins.

Il est important de noter qu’Exegol propose notamment deux images principales : l’image « Full » et l’image « Nightly ».

L’image « Full » est une image complète qui contient tous les outils disponibles dans Exegol. Cela inclut les outils pour les tests d’intrusion web, les tests d’intrusion interne, les tests d’OSINT, les tests de sécurité mobile, et bien d’autres. Cette image est idéale pour les utilisateurs qui ont besoin d’un ensemble complet d’outils de sécurité et qui veulent avoir un large éventail d’options à leur disposition.

L’image « Nightly » quant à elle est une image de développement qui offre aux utilisateurs un accès anticipé aux dernières mises à jour et aux fonctionnalités en développement. Cependant, il est important de noter que cette image peut contenir des bugs. Elle est plutôt destinée aux utilisateurs avancés et aux contributeurs qui souhaitent tester et expérimenter les nouvelles fonctionnalités avant leur sortie officielle.

Une gestion automatisée de tests et de construction d’images via CI/CD

Exegol utilise la fonctionnalité de GitHub Actions pour mettre en place des workflows de CI/CD. Ces workflows automatisent les processus de construction des images Docker et de lancement de tests unitaires pour garantir que tous les outils fonctionnent correctement avant la création de l’image.

L’intégration continue (CI) joue un rôle essentiel dans le processus de développement d’Exegol. Lorsqu’un ajout est effectué sur la branche « dev » ou « main » du projet, un workflow va se lancer pour construire une image docker afin de vérifier que le build s’effectue correctement.

Ensuite, les tests unitaires sont exécutés pour vérifier le bon fonctionnement des différents outils inclus dans Exegol. Ces tests s’assurent que chaque outil répond aux exigences de fonctionnalité et de stabilité avant d’être intégré dans l’image Docker finale.

Des fonctionnalités de personnalisation : My Resources & Offline Resources

Exegol propose 2 fonctionnalités qui permettent de personnaliser son environnement : les « Offline Resources » et « My Resources« .

Les « Offline Resources » sont un ensemble d’outils et de scripts qui sont couramment utilisés lors des tests d’intrusion. Parmi ces ressources, on retrouve des outils tels que LinPEAS, WinPEAS, LinEnum, PrivescCheck, SysinternalsSuite, mimikatz, Rubeus, PowerSploit, et bien d’autres encore. Plutôt que de devoir télécharger individuellement ces ressources à chaque fois qu’elles sont nécessaires, Exegol les intègre directement et les partage avec chaque conteneur dans le répertoire /opt/resources.

Cela permet aux utilisateurs d’accéder facilement à ces ressources hors ligne sans avoir à effectuer des téléchargements répétés.

« My resources » permet aux utilisateurs de personnaliser davantage leur environnement de pentest. Elle repose sur un volume partagé entre l’hôte et tous les conteneurs Exegol. Les utilisateurs peuvent ainsi ajouter leurs propres outils, scripts ou fichiers personnalisés dans ce répertoire partagé.

Les ressources personnalisées ajoutées dans « My resources » sont directement accessibles depuis les conteneurs Exegol, simplifiant ainsi leur utilisation et leur intégration dans les tests d’intrusion. Par exemple, on peut facilement ajouté sa propre configuration tmux,vim ainsi que la configuration de son prompt.

Historique et aliases

Exegol propose des fonctionnalités supplémentaires pour améliorer l’expérience utilisateur, notamment la gestion des aliases et un système d’historique des commandes.

Les « aliases » d’Exegol permettent de gérer efficacement tous les outils en les cloisonnant dans un environnement isolé. Cela évite les conflits de dépendances entre les différents outils, ce qui est essentiel pour garantir une bonne cohabitation des outils.

En ce qui concerne l’historique des commandes, Exegol propose un système où les commandes des outils les plus couramment utilisées sont stockés dans un fichier. Cela permet aux utilisateurs d’accéder rapidement aux commandes sans avoir à rechercher leurs syntaxes sur Internet ou à consulter des sources externes.

Documentation

La documentation est aussi un point clé d’Exegol. Elle permet à l’utilisateur de comprendre toutes les fonctionnalités qui sont présentes ainsi que de l’aide pour configurer son environnement d’audit de sécurité.

Récemment, un nouvel ajout publie les listes des outils installés dans les différentes images proposées par Exegol. Ainsi, les utilisateurs peuvent facilement connaître la liste des outils présents dans les images.

Cette documentation est mise à jour de façon régulière et déployée via Github.

Conclusion

Exegol permet la création d’environnements de pentest via Docker. Grâce à sa prise en charge multi-architecture, il fonctionne sur différents systèmes d’exploitation. L’utilisation de Docker offre une isolation, une portabilité et une reproductibilité des environnements de pentest, tandis que le wrapper Python simplifie l’interaction avec les conteneurs Docker de manière transparente.

Les images Docker d’Exegol permettent aux utilisateurs de choisir l’image la mieux adaptée à leurs besoins. Exegol propose des ressources hors ligne, regroupant des outils couramment utilisés, et la possibilité d’ajouter des ressources personnalisées via « Mes ressources ».

La CI/CD avec GitHub Actions assurent un processus de développement robuste, en construisant les images Docker et en exécutant des tests unitaires pour garantir le bon fonctionnement des outils.

Exegol simplifie et améliore considérablement l’expérience des professionnels de la sécurité lors des tests d’intrusion en fournissant un environnement de pentest complet, personnalisable et reproductible.

Avec Exegol, les utilisateurs peuvent se concentrer sur l’identification des failles de sécurité, en optimisant leur productivité et en facilitant l’utilisation des outils essentiels.

Auteur : Alexis MARTIN – Pentester @Vaadata