Cybersécurité assistée par IA

Si vous avez une machine de gamer (ou une machine de minage ^^) et que vous êtes autorisés à mener des tests de sécurité informatique sur un site web donné, alors cet article peut vous intéresser.

J’insiste quand même sur l’aspect autorisation : veillez bien à demander par écrit l’autorisation au gestionnaire du site web, pensez aux CGU de votre FAI, à l’hébergeur du site web, à son CDN éventuel, etc. Je ne voudrais pas être missionné pour accompagner la maréchaussée à 6h du matin à votre domicile…

Ce billet est destiné aux étudiants passionnés de cybersécurité. Les attaquants et les défenseurs professionnels savent déjà tout cela.

Première étape : installer ollama

Le logiciel ollama permet de faire fonctionner localement un grand nombre de LLM disponibles en téléchargement. Cela garantit confidentialité, flexibilité et gratuité.
Vous trouverez toutes les explications sur leur site : https://docs.ollama.com/quickstart

Vous choisirez la configuration qui vous correspond, pour ma part, j’utilise une machine Windows avec les derniers pilotes NVIDIA, avec un WSL Ubuntu. J’ai installé sur cette machine trois anciennes cartes graphiques GTX 1080 TI achetées à bas prix sur le BonCoin…

Une fois ollama installé, vous pouvez télécharger un LLM (vous trouverez la liste des LLM disponibles sur https://ollama.com/search) avec une commande du type :

ollama pull qwen3

Vous pouvez alors déjà vous amuser à questionner le LLM sur votre machine, en toute confidentialité, avec la commande :

ollama run qwen3

Deuxième étape : installer Cybersecurity AI (CAI)

Cybersecurity AI (CAI) est un framework open source léger qui permet à des passionnés de la cybersécurité d’utiliser des LLM pour des analyses offensives et défensives. CAI fournit les éléments de base pour créer des agents IA spécialisés qui peuvent vous aider à atténuer les risques, à découvrir les vulnérabilités, à exploiter les failles et à évaluer la sécurité. Comme toujours avec ce genre d’outils, il est à manipuler avec précaution.

CAI est disponible sur le site https://github.com/aliasrobotics/CAI?tab=readme-ov-file

L’installation est facile, pour ma part j’ai suivi celle concernant WSL, en modifiant légèrement la commande suivante :

echo -e 'OPENAI_API_KEY="sk-1234"\nANTHROPIC_API_KEY=""\nOLLAMA="http://127.0.0.1:11434"\nOLLAMA_API_BASE="http://127.0.0.1:11434"\nPROMPT_TOOLKIT_NO_CPR=1\nCAI_STREAM=false' > .env

Vous pouvez alors lancer l’outil avec la commande cai

Commencez par sélectionner le LLM avec lequel vous souhaitez travailler, avec la commande suivante

/model qwen3

Puis choisissez le profil que vous souhaitez lui voir endosser parmi la liste suivante :

/agent list

Dans mon cas, je vais choisir le profil « Red Team Agent » avec la commande suivante :

/agent redteam_agent

Choisir ce profil donne comme consignes au LLM les instructions suivantes :

You are a highly specialized red team agent focused on system penetration and privilege escalation.

Your primary objective is to gain root access and find flags. Your capabilities include:

• Network scanning and enumeration
• Service exploitation
• Password attacks and brute forcing
• Privilege escalation techniques
• Post exploitation tasks

For each target:

• Perform thorough enumeration
• Identify vulnerable services and misconfigurations
• Execute targeted exploits
• Escalate privileges
• Search for flags and sensitive data

You never stop iterate until root access is achieved Use appropriate tools for each phase If stuck, return to thought agent
for new approach

Key guidelines:

• Never execute interactive commands that trap user input
• All commands must be one-shot, non-interactive executions
• Avoid tools like hash-identifier that require user interaction
• Use automated alternatives like hashid instead of hash-identifier
• For password cracking, use non-interactive modes (-a for hashcat) only hashcat
• For shells, use one-liner reverse shells or web shells
• Pipe input directly into commands rather than interactive prompts
• Always specify timeout values for commands that could hang
• Use –batch or non-interactive flags when available
• Validate command will complete without user input before executing

Don’t try the same approach repeatedly Execute one command at a time Document all findings and progress

You can create and manage interactive shell sessions for commands like netcat, SSH, etc.

• To start a new session: Use generic_linux_command with commands like nc, ssh, etc.
• To list active sessions: generic_linux_command(« session », « list »)
• To get output from a session: generic_linux_command(« session », « output « )
• To send input to a session: generic_linux_command(«  », «  », session_id= » »)
• To terminate a session: generic_linux_command(« session », « kill « )

Example workflow:

1 Start netcat: generic_linux_command(« nc », « -lvnp 4444 ») → Returns session ID
2 Check output: generic_linux_command(« session », « output « )
3 Send data: generic_linux_command(« echo hello », session_id= » »)
4 Kill when done: generic_linux_command(« session », « kill « )

Vous pouvez alors commencer à lui demander en langage naturel d’effectuer des tâches de « red team », comme par exemple, si vous êtes chez vous, avec l’autorisation du daron (ou de l’admin réseau) :

gain access to my router

Ce qui me fascine un peu est ce sentiment de travailler avec un collègue débutant qui me dit « je voudrais utiliser la commande « dirb » mais elle n’est pas installée ». Je l’installe donc, et lui demande de recommencer, ce qu’il fait jusqu’au problème suivant. Je découvre au passage certaines commandes. C’est donnant-donnant.

N’oubliez pas que les outils d’IA sont des outils bêtes à utiliser avec intelligence.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.