
xalgorix v4.6.72
Agents de pentest IA autonomes — reconnaissance en temps réel, détection de vulnérabilités et orchestration de l'exploitation. Go + TypeScript.
Xalgorix — Pentester IA open source qui prouve les vulnérabilités
La plupart des scanners détectent. Xalgorix prouve. Un agent LLM autonome applique une méthodologie de pentest complète, puis un vérificateur indépendant ré-exploite chaque découverte avant qu'elle ne soit signalée — vous obtenez ainsi une preuve, et non une pile de « peut-être » à trier. Auto-hébergé, privé, et avec votre propre LLM. Conçu en Go + TypeScript.
🚀 Démarrage rapide · 💡 Pourquoi Xalgorix · ✨ Fonctionnalités · 🎯 Cas d'usage · ☁️ Cloud hébergé · 📖 Documentation
📸 Captures d'écran
🖥️ Tableau de bord auto-hébergé — s'exécute localement sur 127.0.0.1:9137
| Tableau de bord d'aperçu | Détail du scan | Découvertes |
|---|---|---|
![]() | ![]() | ![]() |
☁️ Tableau de bord cloud hébergé — la version entièrement gérée sur www.xalgorix.com
🚀 Démarrage rapide
Installation (une seule ligne) :```bash curl -sSL https://www.xalgorix.com/install | bash
Ceci télécharge le binaire précompilé pour votre plateforme (Linux ou macOS, amd64/arm64) depuis la dernière version. Ensuite, exécutez l'assistant de configuration interactif :```bash
xalgorix --setup
Choisissez votre fournisseur, confirmez un modèle, puis saisissez la clé API lorsque vous y êtes invité. Pour de meilleurs résultats, utilisez un modèle frontal actuel doté d'un raisonnement solide, de bonnes performances sur les contextes longs et d'un appel d'outils fiable—comme le dernier GPT, Claude ou Gemini capable disponible pour vous. Les modèles plus petits ou locaux restent pris en charge, mais peuvent nécessiter davantage de supervision lors de scans autonomes prolongés. Xalgorix stocke la clé en privé dans ~/.xalgorix.env (mode 0600) et peut lancer le tableau de bord pour vous. Ollama local ne nécessite aucune clé API.
Si vous choisissez de ne pas lancer immédiatement, démarrez plus tard avec xalgorix --web et ouvrez http://127.0.0.1:9137. Vous pouvez changer de fournisseur ou modifier les options avancées à tout moment sous Paramètres → LLM, ou relancer xalgorix --setup.
Ou exécutez avec Docker — batteries incluses, aucune chaîne d'outils requise :```bash
docker run --rm -p 9137:9137
--privileged
-v xalgorix-data:/data
xalgord/xalgorix:latest
`--privileged` donne à la boîte à outils le même accès de type hôte qu'elle a lorsqu'elle est exécutée nativement en tant que root. Le sandbox par défaut de Docker supprime les capacités (comme `NET_ADMIN`) et applique un filtre seccomp, ce qui casse les outils de bas niveau (iptables/changements de route, ARP-spoof/MITM, VPN tun/tap, débogueurs basés sur ptrace, réglage d'interface masscan). Comme une image ne peut pas s'accorder ces privilèges elle-même, ils doivent être définis au moment de l'exécution. Le conteneur est un sandbox d'analyse jetable et isolé du réseau fonctionnant en root — privilégié est la posture prévue ; n'exposez jamais le tableau de bord publiquement sans authentification. Vous préférez le moindre privilège ? Remplacez `--privileged` par `--cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=SYS_PTRACE --security-opt seccomp=unconfined`.
Ouvrez `http://localhost:9137`. Vous **n'avez pas besoin d'une clé LLM pour démarrer** — le tableau de bord se lance sans elle ; définissez le modèle + la clé API sous **Settings → LLM** (elle persiste dans le volume `/data`). Si vous ne passez pas `XALGORIX_USERNAME`/`XALGORIX_PASSWORD`, un mot de passe administrateur aléatoire est généré et imprimé dans les journaux du conteneur au premier démarrage.
**Le plus simple — Docker Compose** (mappe le port + un volume persistant pour vous) :```bash
curl -sSLO https://raw.githubusercontent.com/xalgorix/xalgorix/main/docker-compose.yml
docker compose up -d
docker compose logs -f # shows the generated admin password on first start
L'image embarque une suite offensive de sécurité préinstallée et complète (nmap, nuclei, httpx, subfinder, katana, ffuf, gobuster, sqlmap, masscan, dalfox, feroxbuster, et plus encore) et conserve tous les gestionnaires de paquets (apt, go, cargo, pipx, npm) disponibles afin que l'agent puisse toujours auto-installer tout élément manquant à l'exécution. Elle s'exécute en tant que root à l'intérieur du conteneur par conception — traitez le conteneur comme un bac à sable d'analyse jetable et isolé du réseau et n'exposez jamais le tableau de bord sans authentification. Les images sont publiées pour amd64 et arm64.
Ou compilez à partir des sources (nécessite Go 1.26+ et Node.js) :```bash git clone https://github.com/xalgorix/xalgorix.git cd xalgorix make build sudo install -m 755 build/xalgorix /usr/local/bin/xalgorix
> [!TIP]
> Vous préférez une configuration zéro ? Une version entièrement gérée est disponible sur [www.xalgorix.com](https://www.xalgorix.com/) — scan en un clic, sans installation ni clés API requises.
### 🤖 Examinez automatiquement les pull requests — application GitHub gratuite
Vous voulez une revue de sécurité sur chaque pull request sans configuration ? Installez l'**[application GitHub Xalgorix](https://github.com/apps/xalgorix)**. Elle lit le diff de chaque PR et commente une revue de sécurité — injections, auth/IDOR cassés, SSRF, secrets, schémas non sûrs — directement sur la pull request. Mise à jour sur place à chaque nouveau commit, et vous pouvez commenter **`@xalgorix review`** pour relancer à la demande. Aucun fichier de workflow, aucune clé API, aucun compte — et c'est gratuit.
<div align="center">
[**➕ Ajouter Xalgorix à GitHub →**](https://github.com/apps/xalgorix/installations/new)
</div>
Pour le contrôle des fusions et les pentests complets vérifiés par exploitation en CI, utilisez le [scanner hébergé](https://www.xalgorix.com/) ou l'action GitHub.
> [!IMPORTANT]
> Utilisez Xalgorix uniquement sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation explicite de test.
> [!TIP]
> Vous préférez ne pas auto-héberger ? Une version entièrement gérée est disponible sur [www.xalgorix.com](https://www.xalgorix.com/) — scan en un clic, sans installation ni clés API requises.
## 📚 Sommaire
| | | |
| --- | --- | --- |
| 📸 [Captures d'écran](#-captures-décran) | 🔩 [Configuration](#-configuration) | 🧾 [Variables d'environnement](#-variables-denvironnement) |
| 🚀 [Démarrage rapide](#-démarrage-rapide) | 🆙 [Mise à niveau](#-mise-à-niveau-depuis-les-versions-précédentes) | 🔤 [Préfixes de fournisseurs](#-préfixes-de-fournisseurs) |
| 🔎 [Vue d'ensemble](#-vue-densemble) | 🏃 [Exécution](#-exécution) | 💻 [Référence CLI](#-référence-cli) |
| 💡 [Pourquoi Xalgorix](#-pourquoi-xalgorix) | 🧰 [Mode service](#-mode-service) | 📡 [Résumé de l'API](#-résumé-de-lapi) |
| 🎯 [Cas d'utilisation](#-cas-dutilisation) | 🔁 [Flux de travail de l'interface Web](#-flux-de-travail-de-linterface-web) | 💾 [Stockage des données](#-stockage-des-données) |
| ✨ [Fonctionnalités](#-fonctionnalités) | 🔀 [Modes de scan](#-modes-de-scan) | 🧪 [Développement](#-développement) |
| 📥 [Installation](#-installation) | 📂 [Analysez votre code](#-analysez-votre-code-aucune-cible-requise) | 🚨 [Notes de sécurité](#-notes-de-sécurité) |
| 🧭 [Méthodologie](#-méthodologie) | 📄 [Rapports](#-rapports) | 📜 [Licence](#-licence) |
| 🔧 [Paramètres](#-paramètres) | 🔗 [Liens](#-liens) | |
## 🔎 Vue d'ensemble
Xalgorix est une plateforme d'IA de tests d'intrusion auto-hébergée pour les tests de sécurité autorisés, l'évaluation des vulnérabilités et les flux de chasse aux bugs. Elle combine un agent autonome piloté par LLM, l'automatisation de navigateur, des outils de terminal, une méthodologie de test complète en 22 phases, la télémétrie WebSocket en direct, la gestion des constats avec notation CVSS, la génération de rapports PDF personnalisés, ainsi que des intégrations pour AgentMail, Discord et Telegram.
Contrairement aux scanners DAST exclusivement cloud, Xalgorix s'exécute entièrement sur votre machine. Vous apportez votre propre fournisseur LLM (OpenAI, Anthropic, DeepSeek, Gemini, Groq, Ollama, MiniMax) et contrôlez le modèle, l'effort de raisonnement, les limites de débit et la configuration du proxy. Aucune donnée de scan, clé API ou information sur la cible ne quitte votre infrastructure.
L'expérience par défaut est l'interface Web. Depuis un tableau de bord local unique, vous pouvez lancer des scans, surveiller les exécutions actives, inspecter les constats, configurer les paramètres du modèle/fournisseur, gérer les variables d'environnement, générer des rapports PDF personnalisés et supprimer ou reprendre les scans historiques.
## 💡 Pourquoi Xalgorix
La plupart des scanners **détectent**. Xalgorix **prouve**. Un agent autonome travaille selon une méthodologie en 22 phases, puis un vérificateur indépendant re-teste chaque constat candidat avant qu'il ne soit signalé — vous obtenez ainsi des résultats vérifiés par exploitation avec preuves, et non un mur de « peut-être » à trier.
- 🧠 **Un agent IA, pas un moteur de modèles** — raisonne sur les flux d'authentification, la logique métier, les IDOR/BOLA et les exploits en chaîne que les scanners à signatures manquent.
- ✅ **Constats vérifiés par exploitation** — un vérificateur distinct reproduit indépendamment chaque constat ; les cas non concluants sont signalés pour examen, jamais présentés comme confirmés.
- 🔒 **Auto-hébergé et privé** — s'exécute sur votre machine avec votre propre clé LLM ; aucune donnée cible, clé ou constat ne quitte votre infrastructure.
- 🧩 **Apportez votre propre LLM** — OpenAI, Anthropic, DeepSeek, Gemini, Groq, Ollama ou MiniMax — ou toute passerelle compatible OpenAI comme [LiteLLM](#-litellm--passerelles-compatibles-openai-github-copilot-claude-opus-codex-openrouter-azure-modèles-locaux) (GitHub Copilot, Codex, OpenRouter, Azure). Vous contrôlez le modèle, l'effort de raisonnement et le coût.
- 📄 **Rapports prêts pour l'audit** — PDF personnalisés avec scores CVSS, preuve de concept et remédiation.
### 📊 Comparaison
| | **Xalgorix** | Scanners à modèles (ex. Nuclei) | Scanners par exploration (ex. OWASP ZAP) | DAST commerciaux |
| -------------------------------------------- | ------------------------ | ------------------------------- | ---------------------------------------- | --------------------- |
| Approche | Agent IA autonome | Signatures / modèles | Spider + règles actives | Signatures + heuristiques |
| Couverture logique métier / IDOR / contournement d'auth | ✅ | Limitée | Limitée | Partielle |
| Vérifié par exploitation (prouve l'impact) | ✅ vérificateur indépendant | ❌ | ❌ | Partielle |
| Charge de faux positifs | Faible (prouvé) | Dépendante du modèle | Élevée | Moyenne |
| Auto-hébergé / données locales | ✅ | ✅ | ✅ | Généralement cloud |
| Apportez votre propre LLM | ✅ | — | — | ❌ |
| Rapports PDF personnalisés | ✅ | ❌ | Basique | ✅ |
| Coût | Open source + votre LLM | Gratuit | Gratuit | $$$ |
> Comparaison indicative — Nuclei et ZAP sont excellents dans ce qu'ils font. Xalgorix ajoute par-dessus la couche de découverte à raisonnement intensif et de vérification par exploitation.
### ☁️ Auto-hébergé vs cloud hébergé
Xalgorix est gratuit et open source — auto-hébergez-le pour toujours, sans aucune condition. Le [cloud hébergé](https://www.xalgorix.com/) exécute le **même** moteur vérifié par exploitation ; il existe pour ceux qui préfèrent ne pas gérer les clés API, l'infrastructure et les factures LLM imprévisibles. Les deux sont de première classe — choisissez ce qui vous convient.
| | **Auto-hébergé** (ce dépôt) | **[Cloud hébergé](https://www.xalgorix.com/)** |
| ---------------------------------- | ---------------------------------------- | ------------------------------------------------ |
| Prix de départ | Gratuit, Apache-2.0 | Niveau gratuit · un scan complet à partir de 1 $ |
| Clé API LLM | Apportez et gérez la vôtre | Incluse — rien à gérer |
| Coût par scan | Jetons LLM bruts — variables, peuvent grimper | 1 crédit par hôte en direct — prévisible |
| Configuration et exploitation | Vous installez, mettez à jour et exécutez la chaîne d'outils | Rien à exécuter — scan en ~60 s |
| Infrastructure hors bande (SSRF/RCE aveugle) | Montez votre propre serveur OOB | OOB géré inclus |
| Planification · équipe · RBAC | À faire vous-même | Intégré |
| Mises à jour | `git pull` + reconstruction | Toujours sur le moteur le plus récent |
| Résidence des données / hors ligne | ✅ reste sur votre infra · air-gap OK | S'exécute sur notre infra (DPA disponible) |
**Auto-hébergez si** les données doivent rester sur votre réseau, vous voulez un contrôle total, ou vous fonctionnerez hors ligne/air-gapped — c'est exactement à cela que cela sert. **Utilisez le cloud si** vous préférez éviter les clés API, l'infrastructure et les factures de jetons surprises, et payer uniquement pour les hôtes en direct que vous scannez réellement.
<div align="center">
[**☁️ Essayez le cloud hébergé — gratuit →**](https://www.xalgorix.com/) · [**⚖️ Comparez le coût réel (calculatrice) →**](https://www.xalgorix.com/hosted-vs-self-hosted)
</div>
Si Xalgorix vous fait gagner un cycle de triage, merci de **[⭐ mettre une étoile au dépôt](https://github.com/xalgorix/xalgorix)** — cela aide réellement d'autres personnes à le trouver.
## 🎯 Cas d'utilisation
| Cas d'utilisation | Comment Xalgorix aide |
| -------- | ------------------ |
| **Tests d'intrusion** | Exécute une méthodologie complète en 22 phases contre des cibles autorisées. L'agent IA gère la reconnaissance, la découverte de vulnérabilités, les tests d'injection, le SSRF, l'IDOR, le contournement d'authentification, les conditions de course, et plus encore — puis vérifie les constats avant de les signaler. |
| **Chasse aux bugs** | Pointez Xalgorix sur une cible dans le périmètre et laissez l'agent énumérer la surface d'attaque, tester les classes de vulnérabilités courantes et remonter des constats vérifiés avec scores CVSS et preuves de concept. |
| **Opérations d'équipe rouge** | Utilisez les modes de scan par joker et multi-cibles pour cartographier la surface d'attaque externe d'une organisation. Le DAST assisté par navigateur gère les flux d'authentification, les formulaires et le comportement d'exécution que les scanners statiques manquent. |
| **Recherche en sécurité** | La phase de découverte de vulnérabilités nouvelles pousse l'agent au-delà de la correspondance de modèles connus. Apportez votre propre LLM (OpenAI, Anthropic, DeepSeek, Gemini, Ollama, MiniMax) pour contrôler la profondeur de raisonnement et le coût. |
| **Tests de sécurité continus** | Exécutez comme service système avec `xalgorix --start`. Planifiez des scans, diffusez les constats vers Discord ou Telegram et générez des rapports PDF personnalisés pour les parties prenantes. |
| **Automatisation DAST** | Tests pilotés par navigateur pour les applications web — flux d'authentification, formulaires, contenu rendu en JavaScript et comportement d'exécution. Intégration avec Caido pour l'inspection du trafic proxy. |
## ✨ Fonctionnalités
| Domaine | Capacités |
| -------------- | --------------------------------------------------------------------------------------------------------------------------- |
| 📊 Tableau de bord | Interface Web locale sur `127.0.0.1:9137` par défaut, gestion des scans, statut en direct, actions de scan groupées et récupération des scans historiques. |
| 🔍 Analyse | Flux à cible unique, DAST, joker et multi-cibles avec phases de méthodologie sélectionnables. |
| 📡 Télémétrie en direct | Appels d'outils, messages de l'agent, constats, erreurs, activité HTTP et activité LLM via WebSockets. |
| 🐞 Constats | Pages de détail des scans, filtres de sévérité, détails CVSS, index des constats et flux de travail des constats vérifiés. |
| 📄 Rapports | Rapports PDF personnalisés avec nom de la cible/entreprise, logo téléchargé, liste des rapports, actions d'ouverture/téléchargement/suppression. |
| 🔔 Intégrations | Boîtes de réception de test AgentMail, e-mails de vérification, flux OTP, événements de triage des e-mails, notifications Discord et Telegram. |
| ⚙️ Configuration | Paramètres du tableau de bord pour LLM, AgentMail, Discord, Telegram, proxy, exécution, navigateur, authentification, limites de débit et ressources. |
| 🛡️ Sécurité d'exécution | Limites d'instances sensibles aux ressources et liaison en boucle locale uniquement, sauf si un accès externe est explicitement configuré avec authentification. |
## 📥 Installation
Les chemins les plus rapides ne nécessitent aucune chaîne d'outils.
### ⚡ Installation en une ligne (binaire précompilé)```bash
curl -sSL https://www.xalgorix.com/install | bash
Télécharge le binaire de la dernière version pour ta plateforme (Linux ou macOS, amd64/arm64) et l'installe dans /usr/local/bin (ou ~/.local/bin sans sudo). Remplace avec XALGORIX_INSTALL_DIR ou épingle une version avec XALGORIX_VERSION=vX.Y.Z.
Effectue la configuration initiale complète de manière interactive—aucune modification manuelle du fichier d'environnement n'est requise :```bash xalgorix --setup
L'assistant préserve les paramètres existants lorsqu'il est relancé, masque la saisie de la clé API dans un terminal et lance éventuellement l'interface Web une fois terminé.
### 🐳 Docker```bash
docker run --rm -p 9137:9137 \
--privileged \
-e XALGORIX_LLM=openai/gpt-5.6 \
-e XALGORIX_API_KEY=your_openai_api_key \
-v xalgorix-data:/data \
ghcr.io/xalgord/xalgorix:latest
--privileged (ou la variante plus restreinte --cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=SYS_PTRACE --security-opt seccomp=unconfined) donne à la boîte à outils un accès comparable à celui de l'hôte. Le sandbox par défaut de Docker supprime les capacités et filtre les appels système, ce qui casse les outils de bas niveau (iptables/route/modifications d'interfaces, ARP-spoof/MITM, VPN tun/tap, débogueurs basés sur ptrace). Une image ne peut pas s'accorder ces privilèges elle-même — c'est une décision prise à l'exécution — donc passez le flag, ou utilisez le docker-compose.yml fourni, qui le configure pour vous.
L'image est tout-en-un : une vaste boîte à outils offensive est préinstallée (nmap, nuclei, httpx, subfinder, dnsx, naabu, katana, ffuf, gobuster, dalfox, feroxbuster, sqlmap, masscan, nikto, whatweb, hydra, et bien plus), ainsi que Chromium pour le DAST assisté par navigateur. Elle conserve également l'ensemble complet des gestionnaires de paquets (apt, go, cargo, pipx, npm), afin que l'agent installe automatiquement tout ce qui manque à l'exécution. Les données de scan sont conservées sur le volume /data, et le serveur écoute sur 0.0.0.0 dans le conteneur — définissez XALGORIX_USERNAME/XALGORIX_PASSWORD avant de l'exposer au-delà de localhost.
Le conteneur s'exécute en root par conception (le moteur n'active l'auto-installation à l'exécution que pour l'uid 0, et les installations apt/go/cargo nécessitent un accès en écriture système). Traitez-le comme un sandbox de scan jetable et isolé du réseau. Les mêmes tags publient un manifeste multi-plateforme pour linux/amd64 et linux/arm64, donc Docker sélectionne automatiquement l'image native.
Au premier lancement, si vous ne définissez pas l'authentification du tableau de bord, le conteneur génère un mot de passe admin aléatoire et l'affiche dans les logs (l'image écoute sur 0.0.0.0, ce que le moteur ne fait pas sans authentification). Définissez XALGORIX_USERNAME + XALGORIX_PASSWORD (ou XALGORIX_PASSWORD_HASH) pour utiliser vos propres identifiants. Le binaire ne se met jamais à jour automatiquement dans le conteneur (XALGORIX_NO_AUTO_UPDATE=1) — tirez un nouveau tag d'image pour mettre à niveau. Le moteur nuclei et ses modèles de vulnérabilités sont actualisés à la dernière version à chaque build d'image (le CI de release et redeploy.sh le forcent) ; passez --build-arg NUCLEI_VERSION=vX.Y.Z pour épingler le moteur, ou NUCLEI_REFRESH=0 ./redeploy.sh pour réutiliser le cache de Docker.
📋 Prérequis (build depuis les sources)
| Prérequis | Notes |
|---|---|
| OS | Linux ou macOS (amd64/arm64). |
| Go | 1.26 ou plus récent. |
| Node.js + npm | Requis lors du build de l'interface Web React fournie depuis les sources. |
| Outils de sécurité | Installés à la demande uniquement lorsque l'auto-installation est activée. |
Vérifiez votre version de Go :```bash go version
### 🔨 Compilation depuis les sources```bash
git clone https://github.com/xalgorix/xalgorix.git
cd xalgorix
make build
sudo install -m 755 build/xalgorix /usr/local/bin/xalgorix
make build compile l'interface Web React dans internal/web/static, puis compile le binaire Go.
📦 Installation avec Go```bash
GOPROXY=direct GOSUMDB=off go install github.com/xalgord/xalgorix/v4/cmd/xalgorix@latest
## 🔩 Configuration
Xalgorix charge la configuration dans cet ordre. Les sources ultérieures remplacent les précédentes.
| Ordre | Source |
| ----- | -------------------------------------------------------------- |
| 1 | `/etc/xalgorix.env` |
| 2 | `/home/<sudo-user>/.xalgorix.env` lorsqu'il est lancé via `sudo` |
| 3 | `~/.xalgorix.env` |
| 4 | Variables d'environnement déjà présentes dans le processus |
Créez le fichier d'environnement local :```bash
nano ~/.xalgorix.env
🧩 Configuration minimale
Pour obtenir les résultats de scan autonome les plus performants, sélectionnez un modèle frontal actuel. L'ID de modèle ci-dessous est un exemple concret ; des ID de modèles compatibles plus récents peuvent être saisis sans attendre une version de Xalgorix.```bash XALGORIX_LLM=openai/gpt-5.6 XALGORIX_API_KEY=your_openai_api_key
### 🔌 Exemples de fournisseurs
OpenAI :```bash
XALGORIX_LLM=openai/gpt-5.6
XALGORIX_API_KEY=sk-...
Custom provider compatible with OpenAI :```bash XALGORIX_LLM=custom/security-model XALGORIX_API_BASE=https://your-provider.example/v1 XALGORIX_API_KEY=your_provider_api_key
#### 🌉 Passerelles LiteLLM / compatibles OpenAI (GitHub Copilot, Claude Opus, Codex, OpenRouter, Azure, modèles locaux)
Comme `XALGORIX_API_BASE` accepte n'importe quel point de terminaison `/v1/chat/completions` compatible OpenAI,
Xalgorix fonctionne avec un proxy [LiteLLM](https://docs.litellm.ai/) sans configuration supplémentaire — aucune
modification côté Xalgorix n'est nécessaire. LiteLLM gère l'authentification du fournisseur en amont (connexion
d'appareil Copilot, clés Azure, OpenRouter, Ollama, etc.) ; Xalgorix se contente de parler OpenAI à la passerelle.
Exécutez LiteLLM (exemple de `config.yaml`) :```yaml
model_list:
- model_name: claude-opus-5
litellm_params:
model: github_copilot/claude-opus-5 # or openrouter/…, azure/…, ollama/…
general_settings:
master_key: sk-local-litellm-key
Pointez Xalgorix dessus — utilisez le préfixe custom/ afin que le nom du modèle soit envoyé tel quel et que le
protocole OpenAI chat-completions soit utilisé :```bash
XALGORIX_LLM=custom/claude-opus-5 # the LiteLLM model_name
XALGORIX_API_BASE=http://localhost:4000/v1 # your LiteLLM proxy
XALGORIX_API_KEY=sk-local-litellm-key # LiteLLM master_key / virtual key
Le même schéma couvre GitHub Copilot Business/CLI, Claude Opus, les modèles de type Codex,
OpenRouter, Azure OpenAI et les modèles Ollama locaux — tout ce que LiteLLM peut router. Conservez le
préfixe `custom/` (ou `openai/`) et un `XALGORIX_API_BASE` non-Anthropic/Gemini afin que Xalgorix
utilise le format de requête OpenAI standard attendu par LiteLLM.
### 🔔 Intégrations optionnelles```bash
GEMINI_API_KEY=AIza...
AGENTMAIL_POD=am_us_pod_47
AGENTMAIL_API_KEY=ak_...
XALGORIX_DISCORD_WEBHOOK=https://discord.com/api/webhooks/...
XALGORIX_DISCORD_MIN_SEVERITY=high
🔐 Authentification du tableau de bord```bash
XALGORIX_USERNAME=admin XALGORIX_PASSWORD=change-this-password
> [!TIP]
> Privilégiez `XALGORIX_PASSWORD_HASH` pour les déploiements en production.
## 🆙 Mise à niveau depuis les versions précédentes
Cette version apporte une passe de stabilité et d'isolation de l'espace de travail, avec un changement cassant et quelques nouveaux réglages à connaître.
### 💥 Changement cassant : l'espace de travail par défaut est déplacé vers `~/.xalgorix/data/`
Les résultats d'analyse, notes, planifications et autres artefacts générés se trouvent désormais sous `~/.xalgorix/data/` au lieu de `$CWD` (le répertoire depuis lequel le binaire a été lancé).
Pour conserver le comportement précédent, pointez `XALGORIX_DATA_DIR` vers votre répertoire de travail actuel :```bash
export XALGORIX_DATA_DIR=$(pwd)
Un avertissement [MIGRATION] est émis au démarrage lorsque des marqueurs hérités (notes.json, _schedules/, vulnerabilities.json ou des répertoires YYYY-MM-DD/scan-*) sont détectés dans $CWD et que XALGORIX_DATA_DIR n'est pas défini. Xalgorix ne lit, ne copie ni ne supprime jamais automatiquement ces fichiers hérités ; l'avertissement est informatif et ne se déclenche qu'une fois par processus.
🆕 Nouvelle variable d'environnement
| Variable | Défaut | Description |
|---|---|---|
XALGORIX_LLM_MAX_INFLIGHT | 4 × EffectiveMaxInstances | Limite les appels LLM sortants simultanés sur toutes les analyses en cours. Minimum 1. Les demandes en attente annulées ne consomment pas de slot. |
🩺 Nouveaux compteurs de point de terminaison de santé
GET /api/status expose désormais :
| Champ | Signification |
|---|---|
panics_recovered | Paniques de goroutine, de gestionnaire HTTP et d'outil récupérées sans plantage. |
path_rejections | Écritures du système de fichiers refusées par Path_Policy (hors data_dir / ~/.xalgorix/ / /tmp). |
watchdog_kills | Sous-processus terminés par le chien de garde à délai d'attente strict par outil. |
admission_refusals | Demandes d'admission d'analyse refusées en raison du plafond de concurrence. |
llm_inflight_cap | Valeur effective de XALGORIX_LLM_MAX_INFLIGHT pour ce processus. |
data_dir | Data_Dir résolu en cours d'utilisation. |
allow_list | Racines du système de fichiers acceptées par Path_Policy. |
🏃 Exécution
🪟 Interface Web```bash
xalgorix --web
Ouvrir :```text
http://127.0.0.1:9137
Utilisez un port différent :```bash xalgorix --web --port 8080
### 🌐 Accès externe
Ne liez à une autre interface qu’après avoir activé l’authentification du tableau de bord :```bash
XALGORIX_USERNAME=admin XALGORIX_PASSWORD=change-this xalgorix --web --bind 0.0.0.0
[!WARNING] Le serveur refuse toute liaison externe sans authentification au tableau de bord.
🏹 Analyse CLI```bash
xalgorix --target https://example.com
Avec des instructions personnalisées :```bash
xalgorix --target https://app.example.com --instruction "Focus on SQL injection, IDOR, and auth bypass. Avoid destructive tests."
🧰 Mode Service
Installer et démarrer en tant que service système :```bash sudo xalgorix --start
Gérez le service :```bash
sudo xalgorix --restart
sudo xalgorix --stop
sudo xalgorix --uninstall
Voir les journaux :```bash journalctl -u xalgorix -f
### 🌍 Accès au service à distance
N'exposez le service aux navigateurs distants qu'après avoir activé l'authentification du tableau de bord :```bash
sudo tee -a /root/.xalgorix.env >/dev/null <<'EOF'
XALGORIX_BIND=0.0.0.0
XALGORIX_USERNAME=admin
XALGORIX_PASSWORD=change-this
EOF
sudo xalgorix --restart
Ensuite, ouvrez http://<server-ip>:9137.
Si le processus écoute mais que la page ne se charge toujours pas à distance, autorisez le port TCP 9137 dans le pare-feu du serveur ou le groupe de sécurité cloud.
🏠 Analyse des cibles locales/internes
Par défaut, Xalgorix refuse d'analyser les adresses loopback, localhost, les plages privées ou
ses propres adresses d'interface — ce sont les machines sur lesquelles Xalgorix s'exécute, pas une
cible. Sur une machine auto-hébergée, mono-tenant, vous pouvez choisir d'analyser une
application de démonstration/de préproduction hébergée localement :```bash
echo 'XALGORIX_ALLOW_LOCAL_TARGETS=true' | sudo tee -a /root/.xalgorix.env
sudo xalgorix --restart
Le propre écouteur du tableau de bord est **toujours** protégé, même avec cette option activée.
> **⚠️ Déploiements partagés / multi-tenant / hébergés : gardez cette option DÉSACTIVÉE.** L'activer
> permettrait au scan d'un utilisateur d'atteindre la machine de l'opérateur et son réseau interne.
> Elle est désactivée par défaut, donc aucune action n'est nécessaire pour rester en sécurité — ne définissez pas
> `XALGORIX_ALLOW_LOCAL_TARGETS` (ou fixez `XALGORIX_ALLOW_LOCAL_TARGETS=false`),
> et n'exposez pas la page Settings du moteur à des utilisateurs non fiables.
## 🔁 Workflow de l'interface Web
1. Ouvrez le tableau de bord à `http://127.0.0.1:9137`.
2. Allez dans Settings et confirmez le fournisseur LLM, la clé API, les limites de débit et les intégrations optionnelles.
3. Créez un scan depuis New Scan.
4. Choisissez un mode de scan.
5. Sélectionnez les phases de méthodologie lorsque vous souhaitez une exécution ciblée.
6. Définissez des filtres de sévérité lorsque seules certaines sévérités doivent être signalées en direct. Le filtre n'affecte que le flux du tableau de bord en temps réel et les notifications ; le rapport PDF et `/api/findings` incluent toujours toutes les vulnérabilités découvertes par l'agent.
7. Ajoutez le nom de l'entreprise et téléversez un logo pour des rapports personnalisés.
8. Surveillez la progression depuis Overview, Scan Detail ou Live Feed.
9. Ouvrez les détails des findings, téléchargez les rapports ou gérez les scans historiques depuis Scans and Reports.
## 🔀 Modes de scan
| Mode | Idéal pour |
| ---------------- | ------------------------------------------------------------------------------- |
| 🎯 Cible unique | Tester une URL ou un hôte connu. |
| 🌐 Wildcard / multi | Énumérer les cibles associées et scanner la surface d'attaque découverte. |
| 🧭 DAST | Tests assistés par navigateur pour les applications web, les flux d'authentification, les formulaires et le comportement à l'exécution. |
## 📂 Scannez votre code (aucune cible requise)
Pointez Xalgorix vers une base de code — une URL Git, un chemin local ou un zip téléversé — et
il scanne directement la source. Aucune URL déployée, aucune infrastructure à mettre en place.```bash
# Source review (SAST): audit the code, no running target required
xalgorix --source ./my-app --code-scan review
# Provision + DAST: build & run the app locally, then pentest the running instance
xalgorix --source https://github.com/org/app.git --code-scan provision
| Mode analyse de code | Ce qu'il fait | Niveau de vérification |
|---|---|---|
review | Lit le code source, trace les entrées utilisateur du point d'entrée → sink dangereux, et signale les vulnérabilités atteignables. Aucune cible en direct. | Vérifié par le code source — prouvé atteignable dans le code (clairement étiqueté comme non exploité à l'exécution). |
provision | Inspecte le dépôt, construit et exécute l'application sur un port de bouclage, puis lance un DAST guidé par boîte blanche contre l'instance en cours d'exécution. Retombe sur review si l'application ne peut pas être construite. | Vérifié par exploitation — reproduit contre l'application en cours d'exécution. |
--sourceaccepte une URL Git (clone superficiel), un répertoire local, ou un chemin vers une archive téléchargée/extraite. Dans l'interface Web / l'application hébergée, vous pouvez également téléverser un.zipde votre codebase (POST /api/upload-source).- Vous pouvez toujours combiner un dépôt et une cible en direct pour une augmentation classique en boîte blanche — ce chemin est inchangé. Les modes d'analyse de code sont destinés aux cas où la codebase est le sujet entier.
Le mode provision exécute les commandes de construction/démarrage de votre application dans le bac à sable de l'agent et ne penteste que le seul port de bouclage sur lequel il a démarré l'application — le tableau de bord et tout le reste sur la machine restent hors de portée.
🧭 Méthodologie
Xalgorix organise les tests autonomes en 22 phases.
| Phase | Focus |
|---|---|
| 1 | Reconnaissance |
| 2 | Découverte manuelle de vulnérabilités |
| 3 | Découverte de répertoires et de fichiers |
| 4 | Analyse CORS et des cookies |
| 5 | Test d'authentification et de session |
| 6 | Test d'injection |
| 7 | Test SSRF |
| 8 | IDOR et contrôle d'accès cassé |
| 9 | Test API et GraphQL |
| 10 | Test de téléversement de fichiers |
| 11 | Désérialisation et RCE |
| 12 | Conditions de course et logique métier |
| 13 | Reprise de sous-domaine |
| 14 | Test de redirection ouverte |
| 15 | Test de sécurité des e-mails |
| 16 | Cloud et infrastructure |
| 17 | Test WebSocket |
| 18 | Test spécifique au CMS |
| 19 | Détournement de liens cassés et usurpation de contenu |
| 20 | Vérification d'exploitation |
| 21 | Découverte de vulnérabilités nouvelles |
| 22 | Rapport final |
La sélection des phases dans l'interface Web vous permet d'exécuter chaque phase ou uniquement le sous-ensemble nécessaire pour un engagement spécifique.
📄 Rapports
Les rapports sont générés sous forme de fichiers PDF et peuvent inclure :
| Section | Contenu inclus |
|---|---|
| 📌 Résumé | Résumé exécutif, métadonnées de la cible, métadonnées de l'analyse et aperçu de la gravité. |
| 🐞 Résultats | Résultats vérifiés, détails CVSS, analyse technique et preuve d'exploitation. |
| 🔬 Preuves | Commandes de preuve de concept, scripts, notes de payload et observations de soutien. |
| 🩹 Remédiation | Conseils de correction et prochaines étapes priorisées. |
| 🎨 Marque | Nom de l'entreprise/cible et logo téléversé. |
Les rapports sont disponibles depuis la page de détail de l'analyse et la page Rapports. Les lignes de rapport prennent en charge l'ouverture, le téléchargement et la suppression.
🔧 Paramètres
La plupart des paramètres opérationnels peuvent être modifiés depuis l'interface Web sous Paramètres.
| Zone | Exemples |
|---|---|
| 🤝 Engagement | Limites de débit des requêtes du tableau de bord |
| 🧠 LLM | Modèle, clé API, base API, effort de raisonnement, nouvelles tentatives, itérations maximales |
| 📬 AgentMail | Pod et clé API |
| 🔔 Notifications | Webhook Discord et gravité minimale, jeton de bot Telegram, ID de chat, gravité minimale et résumés de fin d'analyse sur option |
| 🕵️ Proxy | URL du proxy, fichier proxy, rotation, vérification TLS |
| 🧱 Exécution | Espace de travail, chemin du navigateur, contrôles d'installation automatique |
| 🔐 Sécurité | Nom d'utilisateur du tableau de bord, mot de passe, hachage du mot de passe, adresse de liaison |
| 📈 Ressources | Seuils CPU/RAM/disque et budget de concurrence d'analyse |
Certains paramètres nécessitent un redémarrage car ils affectent le démarrage du processus ou la liaison du serveur. L'interface marque ces champs.
🧾 Variables d'environnement
🧱 Noyau
| Variable | Défaut | Description |
|---|---|---|
XALGORIX_LLM | aucun | ID de modèle natif du fournisseur utilisé pour les requêtes LLM. |
XALGORIX_LLM_PROVIDER | aucun | Fournisseur sélectionné par le tableau de bord, stocké séparément de l'ID du modèle. |
XALGORIX_API_KEY | aucun | Clé API requise du fournisseur LLM. |
XALGORIX_API_BASE | défaut du fournisseur | URL de base API personnalisée compatible OpenAI. |
XALGORIX_REASONING_EFFORT | high | Effort de raisonnement : none, low, medium, high ou xhigh (xhigh correspond à high pour Ollama). |
XALGORIX_LANGUAGE | en | Langue de sortie pour la prose générée par IA (raisonnement de l'agent, notes, résultats, contenu du rapport, chat post-analyse). en ou zh-CN. Les jetons techniques (payloads, commandes, URL, ID CVE/CWE) restent toujours dans leur forme originale. Les langues non latines s'affichent automatiquement dans le tableau de bord et le rapport HTML. |
XALGORIX_PDF_CJK_FONT | aucun | Chemin absolu vers une police TrueType (.ttf) avec des glyphes CJK, utilisée pour rendre les langues non latines (par ex. chinois simplifié) dans le rapport PDF exporté. Seul .ttf est pris en charge (pas .ttc/.otf). Sans elle, le PDF retombe sur les polices de base et les glyphes non latins ne seront pas rendus (le rapport HTML n'est pas affecté). |
XALGORIX_OLLAMA_COMPATIBLE | false | Applique la sémantique de raisonnement Ollama à un point de terminaison personnalisé sur un port non standard. Le port 11434 est détecté automatiquement. |
XALGORIX_LLM_MAX_RETRIES | 5 | Nombre de nouvelles tentatives pour les échecs LLM transitoires. |
XALGORIX_MEMORY_COMPRESSOR_TIMEOUT | 30 | Délai d'expiration en secondes pour la compression du contexte. |
XALGORIX_MAX_ITERATIONS | 0 | Plafond d'itérations de l'agent. 0 signifie illimité. |
XALGORIX_PPROF_ADDR | aucun | Profileur Go sur option. Lorsqu'il est défini (par ex. 127.0.0.1:6060), démarre un serveur pprof autonome à /debug/pprof/ sur cette adresse pour le diagnostic CPU/tas. Désactivé par défaut. Expose les internes du processus — liez le bouclage et atteignez-le via un tunnel SSH ; ne l'exposez jamais publiquement. |
GEMINI_API_KEY | aucun | Clé Gemini optionnelle pour l'enrichissement par recherche web. |
🔒 Web et sécurité
| Variable | Défaut | Description |
|---|---|---|
XALGORIX_BIND | 127.0.0.1 | Adresse d'écoute du serveur web. |
XALGORIX_ALLOW_LOCAL_TARGETS | false | Autorise l'analyse d'applications hébergées localement (localhost / 127.0.0.1 / IP privées) sur une installation auto-hébergée. L'écouteur propre du tableau de bord est toujours protégé. Laissez désactivé sur les déploiements partagés/hébergés. |
XALGORIX_USERNAME | aucun | Nom d'utilisateur du tableau de bord. |
XALGORIX_PASSWORD | aucun | Mot de passe du tableau de bord. |
XALGORIX_PASSWORD_HASH | aucun | Hachage de mot de passe bcrypt préféré. |
XALGORIX_WORKSPACE | répertoire courant | Racine de l'espace de travail pour l'exécution des analyses. |
🤝 Intégrations
| Variable | Défaut | Description |
|---|---|---|
AGENTMAIL_POD | aucun | Identifiant du pod AgentMail. |
AGENTMAIL_API_KEY | aucun | Clé API AgentMail. |
XALGORIX_DISCORD_WEBHOOK | aucun | Webhook Discord global. |
XALGORIX_DISCORD_MIN_SEVERITY | aucun | Gravité minimale envoyée à Discord. |
XALGORIX_TELEGRAM_BOT_TOKEN | aucun | Jeton de bot Telegram de @BotFather. |
XALGORIX_TELEGRAM_CHAT_ID | aucun | ID de chat/canal Telegram (numérique ou @nomutilisateur). |
XALGORIX_TELEGRAM_MIN_SEVERITY | aucun | Gravité minimale envoyée à Telegram. |
XALGORIX_NOTIFY_SCAN_COMPLETE | false | Envoie des résumés de fin d'analyse aux destinations Discord/Telegram configurées. Ceci est sur option et n'affecte pas les alertes par vulnérabilité. |
CAIDO_PORT | 0 | Port du proxy Caido. 0 signifie détection automatique. |
CAIDO_API_TOKEN | aucun | Jeton API Caido. |
🚦 Limites de débit, proxy et exécution
| Variable | Défaut | Description |
|---|---|---|
XALGORIX_RATE_LIMIT_REQUESTS | 60 | Requêtes du tableau de bord par fenêtre. |
XALGORIX_RATE_LIMIT_WINDOW | 60 | Fenêtre de limite de débit du tableau de bord en secondes. |
XALGORIX_RATE_RPS | 10 | Débit soutenu des requêtes sortantes. |
XALGORIX_RATE_BURST | 20 | Taille de rafale sortante. |
XALGORIX_USE_PROXY | false | Active le routage par proxy. |
XALGORIX_PROXY_URL | aucun | URL de proxy unique. Remplace le fichier proxy. |
XALGORIX_PROXY_FILE | aucun | Fichier contenant un proxy par ligne. |
XALGORIX_PROXY_ROTATION | roundrobin | Stratégie de rotation des proxys : roundrobin ou random. |
XALGORIX_TLS_SKIP_VERIFY | false | Ignore la vérification TLS pour le trafic de test. |
XALGORIX_DISABLE_BROWSER | false | Désactive l'automatisation du navigateur. |
XALGORIX_BROWSER_PATH | auto | Chemin d'exécutable Chrome/Chromium personnalisé. |
XALGORIX_ALLOW_AUTO_INSTALL | racine uniquement | Autorise l'installation automatique de paquets. |
XALGORIX_AUTO_INSTALL_SUDO | false | Autorise les installations automatiques préfixées par sudo. |
🔤 Préfixes de fournisseurs
Lorsque XALGORIX_API_BASE est vide, Xalgorix déduit les défauts du fournisseur à partir du préfixe du modèle.
| Préfixe | Base API par défaut |
|---|---|
openai/ | https://api.openai.com/v1 |
anthropic/ | https://api.anthropic.com |
deepseek/ | https://api.deepseek.com/v1 |
groq/ | https://api.groq.com/openai/v1 |
google/ | https://generativelanguage.googleapis.com/v1 |
gemini/ | https://generativelanguage.googleapis.com/v1 |
ollama/ | http://localhost:11434/v1 |
minimax/ | https://api.minimax.io/v1 |
Les noms de modèles ne sont pas codés en dur dans cette liste. La page Paramètres accepte les ID de modèles saisis afin que les modèles plus récents du fournisseur puissent être utilisés sans attendre une mise à jour du menu déroulant de l'interface.
💻 Référence CLI
| Indicateur | Alias | Description |
|---|---|---|
--web | -w | Démarre l'interface Web. |
--port <port> | -p | Port de l'interface Web. Défaut : 9137. |
--bind <addr> | aucun | Adresse de liaison. Défaut : 127.0.0.1. |
--target <target> | -t | URL, hôte, IP ou chemin cible. Répétable. |
--instruction <text> | -i | Instructions d'analyse personnalisées. |
--model <model> | -m | Remplace XALGORIX_LLM pour cette exécution. |
--update | -up | Met à jour vers la dernière version. |
--version | -v | Affiche la version. |
--start | aucun | Installe et démarre le service système. |
--stop | aucun | Arrête le service système. |
--restart | aucun | Redémarre le service système. |
--uninstall | aucun | Supprime le service système. |
--help | -h | Affiche l'aide. |
📡 Résumé de l'API
| Méthode | Point de terminaison | Objectif |
|---|---|---|
POST | /api/scan | Démarre ou enregistre une analyse. |
POST | /api/stop | Arrête toutes les analyses en cours. |
GET | /api/status | Statut global actuel. |
GET | /api/scans | Liste les analyses. |
GET | /api/scans/:id | Obtient le détail d'une analyse. |
DELETE | /api/scans/:id | Supprime une analyse et ses données de rapport. |
GET | /api/findings | Liste tous les résultats (dédupliqués entre les analyses). |
GET | /api/findings/summary | Total de gravité sur toutes les analyses. |
GET | /api/report/:id | Télécharge un rapport PDF. |
GET | /api/instances | Liste les instances en direct et historiques. |
GET | /api/instances/:id/events | Obtient l'historique des événements mis en mémoire tampon. |
POST | /api/instances/:id/stop | Arrête une instance spécifique. |
POST | /api/instances/:id/start | Démarre une analyse enregistrée ou terminée comme nouvelle exécution. |
POST | /api/instances/:id/restart | Redémarre avec la même configuration. |
POST | /api/instances/:id/pause | Met en pause une analyse en cours. |
POST | /api/instances/:id/resume | Reprend une analyse en pause. |
POST | /api/upload-logo | Téléverse un logo de rapport. |
POST | /api/upload-targets | Téléverse une liste de cibles. |
GET | /api/settings/environment | Liste les paramètres d'environnement modifiables. |
POST | /api/settings/environment | Enregistre les paramètres d'environnement. |
GET | /api/settings/llm | Obtient les paramètres LLM. |
POST | /api/settings/llm | Enregistre les paramètres LLM. |
GET | /api/settings/agentmail | Obtient les paramètres AgentMail. |
POST | /api/settings/agentmail | Enregistre les paramètres AgentMail. |
GET | /ws | Flux d'événements en direct WebSocket. |
💾 Stockage des données
Les données d'analyse en mode Web sont stockées sous :```text
~/xalgorix-data/
|-- _saved/
|-- logos/
|-- queue_state.json
-- <target>/ -- /
-- <scan-id>/ |-- scan.json -- report.pdf
Le serveur conserve les enregistrements historiques des scans sur le disque afin que l'interface puisse se rétablir après un rafraîchissement ou un redémarrage.
## 🧪 Développement
| Tâche | Commande |
| --------------------------- | ----------------------------- |
| 📦 Installer les dépendances de l'interface Web | `make webui-install` |
| 🔨 Tout compiler | `make build` |
| ✅ Exécuter les tests | `go test ./...` |
| 🖥️ Exécuter l'interface Web depuis la source | `go run ./cmd/xalgorix --web` |
| ⚡ Exécuter le serveur de développement frontend | `make webui-dev` |
## 🚨 Notes de sécurité
- Utilisez Xalgorix uniquement contre des cibles autorisées.
- N'effectuez pas de tests actifs contre des systèmes tiers sans autorisation.
- Examinez les instructions de scan avant de lancer.
- Configurez les limites de débit et les paramètres de proxy pour respecter les règles d'engagement.
- L'exposition du tableau de bord à l'extérieur nécessite une authentification.
- L'installation automatique est désactivée par défaut pour les utilisateurs non root et ne doit être activée que lorsque vous faites confiance à l'environnement.
## 📜 Licence
Xalgorix est publié sous la licence Apache 2.0. Voir [LICENSE](https://github.com/xalgord/xalgorix/blob/main/LICENSE).
## 🔗 Liens
| Ressource | Lien |
| ------------- | -------------------------------------------------------------------------------- |
| ☁️ Hébergé (Cloud) | [www.xalgorix.com](https://www.xalgorix.com/) |
| 📖 Documentation | [docs.xalgorix.com](https://docs.xalgorix.com) |
| 🐛 Problèmes | [github.com/xalgorix/xalgorix/issues](https://github.com/xalgorix/xalgorix/issues) |
| ☕ Support | [buymeacoffee.com/xalgord](https://buymeacoffee.com/xalgord) |


