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 tasksFor each target:
• Perform thorough enumeration
• Identify vulnerable services and misconfigurations
• Execute targeted exploits
• Escalate privileges
• Search for flags and sensitive dataYou never stop iterate until root access is achieved Use appropriate tools for each phase If stuck, return to thought agent
for new approachKey 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 executingDon’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.