Geeek - Le blog Geek & High-tech

Exegol est une planète de l’univers de fiction Star Wars qui abrite le culte de l'éternel Sith. C'est aussi une solution professionnelle complète pour réaliser des tests de pénétration, de l'OSINT et de la recherche de vulnérabilités.

Il existe des distributions comme Kali Linux, malheureusement cette solution n'est pas adaptée au milieu du pentesting professionnel.

Si vous avez besoin d'une artillerie d'outils pour réaliser des tests de cybersécurité offensive, Exegol est une solution complète qui s'installe très facilement sous Linux, Mac OS ou Windows.

La seule difficulté est de connaitre la quantité d'outils disponibles et la multitude d'options possibles pour les lancer. Rien que l'utilisation de Nmap est en soit un vrai casse-tête.

nmap  -p-  --open -sS --min-rate 5000 -vvv -"IP" -n -Pn -oG allPorts

La réflexion que je me suis posée cette semaine: Est-ce qu'une solution comme Github Copilot CLI pourrait permettre d'améliorer la productivité d'experts en Cybersécurité utilisant Exegol ? Est-ce qu'un CLI à base d'IA génératrice serait en mesure de proposer des commandes shell facilement en fonction de vos besoins ?

Si vous ne connaissez pas Github Copilot CLI, il s'agit d'une solution bêta de shell intelligent propulsé par Github. Cette solution peut simplifier l'usage des lignes de commande sous Linux. Dans cet article, je vais vous partager mon retour d'expérience dans l'utilisation de Github Copilot CLI pour réaliser des pentests et les alternatives possibles.

Comment fonctionne Exegol ?

Exegol est composée de 3 composants :

  • D'un Wrapper Python permettant de simplifier la gestion du paramétrage et du démarrage des images Docker.
  • D'images Docker Exegol adaptées à l'usage que vous souhaitez faire d'Exegol : OSINT, Pentest Web ...
  • D'un repository d'outils sous forme de répository Git complétant les outils intégrés à l'image Docker.

overviews_structure.png
Exegol fonctionne sous Linux, Mac OS et Windows. Dans mon cas, je l'ai tout simplement installé sous Windows 11 avec Docker Desktop et WSL2.

Exegol fonctionne parfaitement bien avec des plateformes d'apprentissage en cybersécurité comme Hackthebox par exemple, la configuration d'un VPN se fait via l'ajout d'un paramètre "--vpn" lors de l'appel au wrapper Python.

exegol start htb full --vpn "hackthebox.ovpn"

Il est juste important d'être vigilant à l'espace disque consommé par Exegol. L'image docker "full" nécessite pas moins de 50 Go de stockage sur votre disque.
Si vous avez un usage précis d'Exegol, vous pouvez aussi utiliser des images plus petites dédiées à de l'OSINT ou du Pentest pour applications Web.

Quels sont les outils préinstallés dans Exegol ?

Exegol est livré dans sa version "full" avec plus de 350 outils dédiés à la cybersécurité. Exegol est très pratique pour gagner du temps, surtout si vous bénéficiez d'un accès Internet assez limité ou d'un accès Internet filtré.

Il est possible d'instancier l'image Docker par environnement client, projet d'analyse ... Cela vous permet ainsi de bien structurer votre espace de travail et d'isoler les outils mis en oeuvre.

Le côté stateless de Docker permet aussi de garantir une meilleure isolation lors des tests réalisés.

Qu'est-ce Github Copilot CLI ?

La solution Github Copilot CLI est une extension à Github Copilot.
Cette extension permet d'utiliser directement les API d'OpenAI (ChatGPT) pour être plus productif sur l'utilisation d'un terminal.

Github Copilot CLI fonctionne sous la forme d'une commande shell, il vous permet d'expliquer une commande shell ou bien de vous aider à construire une commande très facilement sur la base d'un besoin.

Comment s'installe Github Copilot CLI dans Exegol ?

Github Copilot CLI s'installe très facilement au sein de l'image Docker d'Exegol :

type -p curl >/dev/null || (sudo apt update && sudo apt install curl -y)
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
&& sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y

Authentifiez vous dans l'outil avec votre compte Github et installez l'extension Github Copilot Cli qui permet de transformer la solution Github CLI en solution intelligente.

gh auth login
gh extension install github/gh-copilot

Comment Github Copilot CLI s'utilise au sein d'Exegol ?

Lancez maintenant la commande suivante :

gh copilot suggest -t shell 'start a python server on port 8000' 

Copilot vous proposera la réponse suivante :

github-cli-copilot.png

Sur des besoins très simples, Github Coppilot CLI peut vous aider à trouver les options et les outils pour répondre à ce que vous souhaitez réaliser.
Il est même en mesure de produire des scripts complets.

Quelles sont les limites de Github Copilot CLI pour un usage en cybersécurité ?

Github Copilot CLI est très performant pour répondre à des besoins simples sous Linux, mais malheureusement, il ne saura pas forcément vous aider dans l'utilisation des outils de cybersécurité fournis par Exegol.

Il connait moins de 10% des outils fournis par Exegol et ne semble avoir aucune idée de l'utilisation de Metasploit par exemple.

Il est donc très bon pour un usage générique d'un shell Linux, mais ne sera pas pour le moment d'une grande aide pour un usage autour du pentesting avec les outils de pentesting fournis par la solution Exegol.

Comment résoudre cette limitation?

La limitation de Gihub Copilot CLI est liée au fait que le LLM utilisé par l'outil n'a pas été entrainé sur les manuels d'utilisation des outils fournis avec Exegol. Le produit étant en phase beta, cette limitation est peut-être temporaire.

Une solution alternative serait de construire soit même une solution à base d'une architecture de type RAG qui permet d'adosser à un LLM une base de connaissance.

Pour cela vous pouvez installer Ollama et un modèle LLM comme Mistral en local sur votre ordinateur.

Ensuite l'outil CLI cmdh vous permet d'interagir directement avec votre LLM en local sans sortir de votre shell.

Enfin, une solution comme LangChain vous permet d'associer une base de connaissance un LLM grâce à l'utilisation d'embeddings.

En cherchant sur le Web, je suis tombé sur le CLI LLM python de datasette.io qui permet de construire une solution de type RAG très rapidement via un répository de fichiers au format Markdown.

Il en existe probablement d'autres solutions sur le Web, mais je n'ai pas trouvé aujourd'hui d'assistant CLI à base de LLM et de RAG capable d'indexer facilement des documents pour générer des shell prêt à l'utilisation.

C'est peut-être l'occasion de créer un nouveau projet qui s'inspirerait de Github Copilot CLI et d'OpenInterpreter, qui permettrait de simplifier des processus de pentesting ? Quel pourrait être son nom ? Sith

$sith "scan the IP 192.68.1.1 with all ports from 1 to 1000"
$sith "find a sqli on the following url : http://www.geeek.org/?q=param"

Suite la lecture de cet article vous avez des questions ? N'hésitez pas à continuer la discussion sur le serveur Discord Geeek.org.


Vous êtes correctement abonné à Geeek
Bienvenue ! Vous êtes correctement connecté.
Parfait ! Vous êtes correctement inscrit.
Votre lien a expiré
Vérifiez vos emails et utiliser le lien magique pour vous connecter à ce site