Volver a actualizaciones
Nuevo releaseSep 19, 2026

xalgorix v4.6.78

Agentes autónomos de pentesting con IA: reconocimiento en tiempo real, detección de vulnerabilidades y orquestación de explotación. Go + TypeScript.

Compartir
Xalgorix — Plataforma de Pruebas de Penetración Autónoma con IA

Go License Platform Hosted GitHub stars GitHub forks GitHub release

Ask DeepWiki

xalgorix/xalgorix | Trendshift

Xalgorix — Pentester de IA de código abierto que demuestra vulnerabilidades

La mayoría de los escáneres detectan. Xalgorix demuestra. Un agente LLM autónomo ejecuta una metodología completa de pentesting, y luego un verificador independiente reexplica cada hallazgo antes de que se reporte — así obtienes pruebas, no un montón de dudas por clasificar. Autoalojado, privado y con tu propio LLM. Construido en Go + TypeScript.

🚀 Inicio Rápido · 💡 Por qué Xalgorix · ✨ Características · 🎯 Casos de Uso · ☁️ Nube Alojada · 📖 Documentación


📸 Capturas de pantalla

🖥️ Panel autoalojado — se ejecuta localmente en 127.0.0.1:9137

Panel de resumenDetalle del escaneoHallazgos
Panel de resumen de XalgorixDetalle del escaneo de XalgorixHallazgos de Xalgorix

☁️ Panel de nube alojada — la versión totalmente gestionada en www.xalgorix.com

Panel de nube alojada de Xalgorix mostrando puntuación de seguridad, tendencias de vulnerabilidades, métricas de remediación y problemas abiertos por categoría

🚀 Inicio Rápido

Instalar (una línea):```bash curl -sSL https://www.xalgorix.com/install | bash

Esto descarga el binario precompilado para tu plataforma (Linux o macOS, amd64/arm64) desde la última versión. Luego ejecuta el asistente de configuración interactivo:```bash
xalgorix --setup

Elige tu proveedor, confirma un modelo e introduce la clave de API cuando se te solicite. Para obtener los mejores resultados, utiliza un modelo de frontera actual con razonamiento sólido, buen rendimiento en contextos largos y llamadas a herramientas fiables, como el modelo GPT, Claude o Gemini más capaz y reciente disponible para ti. Los modelos más pequeños o locales siguen siendo compatibles, pero pueden requerir más supervisión durante escaneos autónomos prolongados. Xalgorix almacena la clave de forma privada en ~/.xalgorix.env (modo 0600) y puede lanzar el panel por ti. Ollama local no necesita clave de API.

Si eliges no lanzarlo de inmediato, inícialo más tarde con xalgorix --web y abre http://127.0.0.1:9137. Puedes cambiar de proveedor u opciones avanzadas en cualquier momento en Settings → LLM, o volver a ejecutar xalgorix --setup.

O ejecuta con Docker — todo incluido, sin necesidad de toolchain:```bash docker run --rm -p 9137:9137
--privileged
-v xalgorix-data:/data
xalgord/xalgorix:latest

`--privileged` otorga al conjunto de herramientas el mismo acceso tipo host que tiene cuando se ejecuta de forma nativa como root. El sandbox predeterminado de Docker elimina capacidades (como `NET_ADMIN`) y aplica un filtro seccomp, lo que rompe herramientas de bajo nivel (cambios de iptables/route, ARP-spoof/MITM, VPNs tun/tap, depuradores basados en ptrace, ajuste de interfaz de masscan). Dado que una imagen no puede otorgarse a sí misma estas capacidades, deben establecerse en tiempo de ejecución. El contenedor es un sandbox de escaneo desechable y aislado de la red que se ejecuta como root — privileged es la postura prevista; nunca expongas el dashboard públicamente sin autenticación. ¿Prefieres el mínimo privilegio? Cambia `--privileged` por `--cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=SYS_PTRACE --security-opt seccomp=unconfined`.

Abre `http://localhost:9137`. **No necesitas una clave de LLM para empezar** — el dashboard se inicia sin una; configura el modelo + la clave de API en **Settings → LLM** (persiste en el volumen `/data`). Si no pasas `XALGORIX_USERNAME`/`XALGORIX_PASSWORD`, se genera una contraseña de administrador aleatoria y se imprime en los logs del contenedor en la primera ejecución.

**Lo más fácil — Docker Compose** (mapea el puerto + un volumen persistente por ti):```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

La imagen incluye un extenso conjunto de herramientas de seguridad ofensiva preinstaladas (nmap, nuclei, httpx, subfinder, katana, ffuf, gobuster, sqlmap, masscan, dalfox, feroxbuster, y más) y mantiene todos los gestores de paquetes (apt, go, cargo, pipx, npm) disponibles para que el agente aún pueda autoinstalar cualquier cosa que falte en tiempo de ejecución. Se ejecuta como root dentro del contenedor por diseño — trata el contenedor como un sandbox de escaneo desechable y aislado de la red y nunca expongas el panel sin autenticación. Las imágenes se publican tanto para amd64 como para arm64.

O compila desde el código fuente (requiere Go 1.26+ y 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]
> ¿Prefieres cero configuración? Una versión totalmente gestionada se ejecuta en [www.xalgorix.com](https://www.xalgorix.com/) — escaneo con un clic, sin instalación ni claves de API.

### 🤖 Revisa pull requests automáticamente — GitHub App gratuita

¿Quieres una revisión de seguridad en cada pull request con cero configuración? Instala la **[Xalgorix GitHub App](https://github.com/apps/xalgorix)**. Lee el diff de cada PR y comenta una revisión de seguridad — inyección, autenticación rota/IDOR, SSRF, secretos, patrones inseguros — directamente en el pull request. Se actualiza en su lugar con los nuevos commits, y puedes comentar **`@xalgorix review`** para volver a ejecutarla bajo demanda. Sin archivo de workflow, sin clave de API, sin cuenta — y es gratis.

<div align="center">

[**➕ Añadir Xalgorix a GitHub →**](https://github.com/apps/xalgorix/installations/new)

</div>

Para el control de merges y pentests completos verificados por explotación en CI, usa el [escáner alojado](https://www.xalgorix.com/) o la GitHub Action.

> [!IMPORTANT]
> Usa Xalgorix solo en sistemas que poseas o para los que tengas permiso explícito de probar.

> [!TIP]
> ¿Prefieres no autoalojarlo? Una versión totalmente gestionada está disponible en [www.xalgorix.com](https://www.xalgorix.com/) — escaneo con un clic, sin instalación ni claves de API.

## 📚 Contenido

| | | |
| --- | --- | --- |
| 📸 [Capturas de pantalla](#-screenshots) | 🔩 [Configuración](#-configuration) | 🧾 [Variables de entorno](#-environment-variables) |
| 🚀 [Inicio rápido](#-quick-start) | 🆙 [Actualización](#-upgrading-from-previous-versions) | 🔤 [Prefijos de proveedor](#-provider-prefixes) |
| 🔎 [Descripción general](#-overview) | 🏃 [Ejecución](#-running) | 💻 [Referencia de CLI](#-cli-reference) |
| 💡 [Por qué Xalgorix](#-why-xalgorix) | 🧰 [Modo servicio](#-service-mode) | 📡 [Resumen de la API](#-api-summary) |
| 🎯 [Casos de uso](#-use-cases) | 🔁 [Flujo de trabajo de la interfaz web](#-web-ui-workflow) | 💾 [Almacenamiento de datos](#-data-storage) |
| ✨ [Características](#-features) | 🔀 [Modos de escaneo](#-scan-modes) | 🧪 [Desarrollo](#-development) |
| 📥 [Instalación](#-installation) | 📂 [Escanea tu código](#-scan-your-code-no-target-needed) | 🚨 [Notas de seguridad](#-safety-notes) |
| 🧭 [Metodología](#-methodology) | 📄 [Informes](#-reports) | 📜 [Licencia](#-license) |
| 🔧 [Ajustes](#-settings) | 🔗 [Enlaces](#-links) | |

## 🔎 Descripción general

Xalgorix es una plataforma autoalojada de pruebas de penetración con IA para pruebas de seguridad autorizadas, evaluación de vulnerabilidades y flujos de trabajo de bug bounty. Combina un agente autónomo impulsado por LLM, automatización de navegador, herramientas de terminal, una exhaustiva metodología de pruebas de 22 fases, telemetría en vivo por WebSocket, gestión de hallazgos con puntuación CVSS, generación de informes PDF con marca e integraciones para AgentMail, Discord y Telegram.

A diferencia de los escáneres DAST solo en la nube, Xalgorix se ejecuta completamente en tu máquina. Tú aportas tu propio proveedor de LLM (OpenAI, Anthropic, DeepSeek, Gemini, Groq, Ollama, MiniMax) y controlas el modelo, el esfuerzo de razonamiento, los límites de velocidad y la configuración del proxy. Ningún dato de escaneo, clave de API o información del objetivo sale de tu infraestructura.

La experiencia predeterminada es la interfaz web. Desde un único panel local puedes iniciar escaneos, monitorizar ejecuciones activas, inspeccionar hallazgos, configurar ajustes de modelo/proveedor, gestionar variables de entorno, generar informes PDF con marca y eliminar o reanudar escaneos históricos.

## 💡 Por qué Xalgorix

La mayoría de los escáneres **detectan**. Xalgorix **demuestra**. Un agente autónomo trabaja a través de una metodología de 22 fases, y luego un verificador independiente vuelve a probar cada hallazgo candidato antes de que se reporte — así obtienes resultados verificados por explotación con evidencia, no un muro de "quizás" que triar.

- 🧠 **Un agente de IA, no un motor de plantillas** — razona sobre flujos de autenticación, lógica de negocio, IDOR/BOLA y exploits encadenados que los escáneres de firmas pasan por alto.
- ✅ **Hallazgos verificados por explotación** — un verificador independiente reproduce cada hallazgo de forma autónoma; los no concluyentes se marcan para revisión, nunca se disfrazan como confirmados.
- 🔒 **Autoalojado y privado** — se ejecuta en tu máquina con tu propia clave de LLM; ningún dato del objetivo, clave o hallazgo sale de tu infraestructura.
- 🧩 **Trae tu propio LLM** — OpenAI, Anthropic, DeepSeek, Gemini, Groq, Ollama o MiniMax — o cualquier pasarela compatible con OpenAI como [LiteLLM](#-litellm--openai-compatible-gateways-github-copilot-claude-opus-codex-openrouter-azure-local-models) (GitHub Copilot, Codex, OpenRouter, Azure). Tú controlas el modelo, el esfuerzo de razonamiento y el coste.
- 📄 **Informes listos para auditoría** — PDFs con marca, puntuaciones CVSS, prueba de concepto y remediación.

### 📊 Cómo se compara

|                                              | **Xalgorix**             | Escáneres de plantillas (p. ej. Nuclei) | Escáneres de rastreo (p. ej. OWASP ZAP) | DAST comercial        |
| -------------------------------------------- | ------------------------ | ------------------------------- | ---------------------------------- | ---------------------- |
| Enfoque                                     | Agente de IA autónomo      | Firmas / plantillas          | Spider + reglas activas              | Firmas + heurísticas |
| Cobertura de lógica de negocio / IDOR / bypass de autenticación | ✅                       | Limitada                         | Limitada                            | Parcial                |
| Verificado por explotación (demuestra el impacto)             | ✅ verificador independiente  | ❌                              | ❌                                 | Parcial                |
| Carga de falsos positivos                          | Baja (demostrados)             | Dependiente de la plantilla              | Alta                               | Media                 |
| Autoalojado / los datos permanecen locales               | ✅                       | ✅                              | ✅                                 | Normalmente en la nube          |
| Trae tu propio LLM                           | ✅                       | —                               | —                                  | ❌                     |
| Informes PDF con marca                          | ✅                       | ❌                              | Básicos                              | ✅                     |
| Coste                                         | Código abierto + tu LLM   | Gratis                            | Gratis                               | $$$                    |

> Comparación orientativa — Nuclei y ZAP son excelentes en lo que hacen. Xalgorix añade la capa de descubrimiento con razonamiento intensivo y verificación por explotación por encima.

### ☁️ Autoalojado vs Nube alojada

Xalgorix es gratuito y de código abierto — autoalójalo para siempre, sin condiciones. La [nube alojada](https://www.xalgorix.com/) ejecuta el **mismo** motor verificado por explotación; existe para quienes prefieren no gestionar claves de API, infraestructura y facturas impredecibles de LLM. Ambos son de primera clase — elige lo que te convenga.

|                                    | **Autoalojado** (este repositorio)              | **[Nube alojada](https://www.xalgorix.com/)**   |
| ---------------------------------- | ---------------------------------------- | ----------------------------------------------- |
| Precio para empezar                     | Gratis, Apache-2.0                         | Nivel gratuito · un escaneo completo desde $1               |
| Clave de API del LLM                        | Aporta y gestiona la tuya                  | Incluida — nada que gestionar                      |
| Coste por escaneo                      | Tokens de LLM en bruto — variable, puede dispararse     | 1 crédito por host activo — predecible            |
| Configuración y operación                        | Tú instalas, actualizas y ejecutas el conjunto de herramientas  | Nada que ejecutar — escaneo en ~60s                   |
| Infraestructura fuera de banda (SSRF/RCE ciego) | Levanta tu propio servidor OOB             | OOB gestionado incluido                            |
| Programación · equipo · RBAC           | Hazlo tú mismo                           | Integrado                                        |
| Actualizaciones                            | `git pull` + recompilar                     | Siempre en el motor más reciente                     |
| Residencia de datos / sin conexión           | ✅ permanece en tu infraestructura · air-gap OK       | Se ejecuta en nuestra infraestructura (DPA disponible)               |

**Autoalójalo si** los datos deben permanecer en tu red, quieres control total, o vas a ejecutar sin conexión/air-gapped — es exactamente para eso. **Usa la nube si** prefieres saltarte las claves de API, la infraestructura y las facturas sorpresa de tokens, y pagar solo por los hosts activos que realmente escaneas.

<div align="center">

[**☁️ Prueba la nube alojada — gratis →**](https://www.xalgorix.com/) &nbsp;·&nbsp; [**⚖️ Compara el coste real (calculadora) →**](https://www.xalgorix.com/hosted-vs-self-hosted)

</div>

Si Xalgorix te ahorra un ciclo de triaje, por favor **[⭐ dale una estrella al repositorio](https://github.com/xalgorix/xalgorix)** — realmente ayuda a que otros lo encuentren.

## 🎯 Casos de uso

| Caso de uso | Cómo ayuda Xalgorix |
| -------- | ------------------ |
| **Pruebas de penetración** | Ejecuta una metodología completa de 22 fases contra objetivos autorizados. El agente de IA se encarga del reconocimiento, el descubrimiento de vulnerabilidades, las pruebas de inyección, SSRF, IDOR, bypass de autenticación, condiciones de carrera y más — y luego verifica los hallazgos antes de reportarlos. |
| **Caza de bug bounties** | Apunta Xalgorix a un objetivo dentro del alcance y deja que el agente enumere la superficie de ataque, pruebe clases de vulnerabilidad comunes y exponga hallazgos verificados con puntuaciones CVSS y evidencia de prueba de concepto. |
| **Operaciones de red team** | Usa los modos de escaneo comodín y multiobjetivo para mapear la superficie de ataque externa de una organización. El DAST asistido por navegador maneja flujos de autenticación, formularios y comportamiento en tiempo de ejecución que los escáneres estáticos pasan por alto. |
| **Investigación de seguridad** | La fase de descubrimiento de vulnerabilidades novedosas lleva al agente más allá de la coincidencia de plantillas conocidas. Trae tu propio LLM (OpenAI, Anthropic, DeepSeek, Gemini, Ollama, MiniMax) para controlar la profundidad de razonamiento y el coste. |
| **Pruebas de seguridad continuas** | Ejecútalo como servicio del sistema con `xalgorix --start`. Escanea según una programación, transmite hallazgos a Discord o Telegram y genera informes PDF con marca para las partes interesadas. |
| **Automatización de DAST** | Pruebas impulsadas por navegador para aplicaciones web — flujos de autenticación, formularios, contenido renderizado con JavaScript y comportamiento en tiempo de ejecución. Se integra con Caido para la inspección del tráfico del proxy. |

## ✨ Características

| Área           | Capacidades                                                                                                                |
| -------------- | --------------------------------------------------------------------------------------------------------------------------- |
| 📊 Panel      | Interfaz web local en `127.0.0.1:9137` por defecto, gestión de escaneos, estado en vivo, acciones de escaneo masivo y recuperación de escaneos históricos. |
| 🔍 Escaneo       | Flujos de objetivo único, DAST, comodín y multiobjetivo con fases de metodología seleccionables.                                   |
| 📡 Telemetría en vivo | Llamadas a herramientas, mensajes del agente, hallazgos, errores, actividad HTTP y actividad del LLM a través de WebSockets.                              |
| 🐞 Hallazgos       | Páginas de detalle de escaneo, filtros de severidad, detalles de CVSS, índice de hallazgos y flujos de trabajo de hallazgos verificados.                           |
| 📄 Informes      | Informes PDF con marca con nombre del objetivo/empresa, logotipo subido, lista de informes, acciones de abrir/descargar/eliminar.                     |
| 🔔 Integraciones   | Bandejas de entrada de prueba de AgentMail, correos de verificación, flujos de OTP, eventos de triaje de correo, notificaciones de Discord y Telegram.            |
| ⚙️ Configuración  | Ajustes del panel para LLM, AgentMail, Discord, Telegram, proxy, tiempo de ejecución, navegador, autenticación, límites de velocidad y recursos.       |
| 🛡️ Seguridad en tiempo de ejecución | Límites de instancias conscientes de los recursos y enlace solo a loopback a menos que el acceso externo se configure explícitamente con autenticación.         |

## 📥 Instalación

Las rutas más rápidas no necesitan ningún conjunto de herramientas.

### ⚡ Instalación en una línea (binario precompilado)```bash
curl -sSL https://www.xalgorix.com/install | bash

Descarga el binario de la última versión para tu plataforma (Linux o macOS, amd64/arm64) y lo instala en /usr/local/bin (o ~/.local/bin sin sudo). Sobrescríbelo con XALGORIX_INSTALL_DIR o fija una versión con XALGORIX_VERSION=vX.Y.Z.

Completa la configuración inicial de forma interactiva—sin necesidad de editar manualmente el archivo de entorno:```bash xalgorix --setup

El asistente conserva la configuración existente al volver a ejecutarse, oculta la entrada de la clave de API en una terminal y, opcionalmente, lanza la interfaz web al finalizar.

### 🐳 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 (o el más restrictivo --cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=SYS_PTRACE --security-opt seccomp=unconfined) otorga al conjunto de herramientas un acceso similar al del host. El sandbox predeterminado de Docker elimina capacidades y filtra llamadas al sistema, lo que rompe las herramientas de bajo nivel (cambios de iptables/route/interfaz, ARP-spoof/MITM, VPNs tun/tap, depuradores basados en ptrace). Una imagen no puede otorgarse estos permisos a sí misma — son una decisión en tiempo de ejecución — así que pasa el flag, o usa el docker-compose.yml proporcionado, que lo establece por ti.

La imagen viene con todo incluido: un extenso conjunto de herramientas de seguridad ofensiva está preinstalado (nmap, nuclei, httpx, subfinder, dnsx, naabu, katana, ffuf, gobuster, dalfox, feroxbuster, sqlmap, masscan, nikto, whatweb, hydra, y más), además de Chromium para DAST asistido por navegador. También mantiene disponible el conjunto completo de gestores de paquetes (apt, go, cargo, pipx, npm), por lo que el agente autoinstala cualquier cosa que falte en tiempo de ejecución. Los datos de escaneo persisten en el volumen /data, y el servidor se enlaza a 0.0.0.0 dentro del contenedor — establece XALGORIX_USERNAME/XALGORIX_PASSWORD antes de exponerlo más allá de localhost.

El contenedor se ejecuta como root por diseño (el motor solo habilita la autoinstalación en tiempo de ejecución para uid 0, y las instalaciones de apt/go/cargo necesitan acceso de escritura al sistema). Trátalo como un sandbox de escaneo desechable y aislado de la red. Las mismas etiquetas publican un manifiesto multiplataforma para linux/amd64 y linux/arm64, por lo que Docker selecciona la imagen nativa automáticamente.

En la primera ejecución, si no configuras la autenticación del panel, el contenedor genera una contraseña de administrador aleatoria y la imprime en los logs (la imagen se enlaza a 0.0.0.0, algo que el motor no hará sin autenticación). Establece XALGORIX_USERNAME + XALGORIX_PASSWORD (o XALGORIX_PASSWORD_HASH) para usar las tuyas propias. El binario nunca se autoactualiza dentro del contenedor (XALGORIX_NO_AUTO_UPDATE=1) — descarga una nueva etiqueta de imagen para actualizar. El motor nuclei y sus plantillas de vulnerabilidades se actualizan a la última versión en cada compilación de la imagen (el CI de release y redeploy.sh lo fuerzan); pasa --build-arg NUCLEI_VERSION=vX.Y.Z para fijar el motor, o NUCLEI_REFRESH=0 ./redeploy.sh para reutilizar la caché de Docker.

📋 Requisitos (compilar desde el código fuente)

RequisitoNotas
SOLinux o macOS (amd64/arm64).
Go1.26 o superior.
Node.js + npmRequerido al compilar la interfaz web React incluida desde el código fuente.
Herramientas de seguridadSe instalan bajo demanda solo cuando la autoinstalación está habilitada.

Comprueba tu versión de Go:```bash go version

### 🔨 Compilar desde el código fuente```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 compila la interfaz web de React en internal/web/static y, a continuación, compila el binario de Go.

📦 Instalación con Go```bash

GOPROXY=direct GOSUMDB=off go install github.com/xalgord/xalgorix/v4/cmd/xalgorix@latest

## 🔩 Configuración

Xalgorix carga la configuración en este orden. Las fuentes posteriores sobrescriben las anteriores.

| Orden | Fuente                                                         |
| ----- | -------------------------------------------------------------- |
| 1     | `/etc/xalgorix.env`                                            |
| 2     | `/home/<sudo-user>/.xalgorix.env` cuando se lanza mediante `sudo` |
| 3     | `~/.xalgorix.env`                                              |
| 4     | Variables de entorno ya presentes en el proceso                |

Crea el archivo de entorno local:```bash
nano ~/.xalgorix.env

🧩 Configuración mínima

Para obtener los mejores resultados de escaneo autónomo, seleccione un modelo de frontera actual. El ID de modelo a continuación es un ejemplo concreto; se pueden introducir IDs de modelos compatibles más recientes sin esperar a una versión de Xalgorix.```bash XALGORIX_LLM=openai/gpt-5.6 XALGORIX_API_KEY=your_openai_api_key

### 🔌 Ejemplos de Proveedores

OpenAI:```bash
XALGORIX_LLM=openai/gpt-5.6
XALGORIX_API_KEY=sk-...

Proveedor personalizado compatible con OpenAI:```bash XALGORIX_LLM=custom/security-model XALGORIX_API_BASE=https://your-provider.example/v1 XALGORIX_API_KEY=your_provider_api_key

#### 🌉 Pasarelas compatibles con LiteLLM / OpenAI (GitHub Copilot, Claude Opus, Codex, OpenRouter, Azure, modelos locales)

Debido a que `XALGORIX_API_BASE` acepta cualquier endpoint `/v1/chat/completions` compatible con OpenAI,
Xalgorix funciona con un proxy de [LiteLLM](https://docs.litellm.ai/) sin configuración adicional — no
se necesitan cambios del lado de Xalgorix. LiteLLM gestiona la autenticación del proveedor upstream (inicio de sesión
de dispositivo de Copilot, claves de Azure, OpenRouter, Ollama, etc.); Xalgorix simplemente habla OpenAI con la pasarela.

Ejecutar LiteLLM (ejemplo 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

Apúntale Xalgorix — usa el prefijo custom/ para que el nombre del modelo se envíe tal cual y se utilice el protocolo de chat-completions de OpenAI:```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

El mismo patrón cubre GitHub Copilot Business/CLI, Claude Opus, modelos estilo Codex,
OpenRouter, Azure OpenAI y modelos locales de Ollama — cualquier cosa que LiteLLM pueda enrutar. Mantén el
prefijo `custom/` (o `openai/`) y un `XALGORIX_API_BASE` que no sea de Anthropic/Gemini para que Xalgorix
use la forma de solicitud estándar de OpenAI que LiteLLM espera.

### 🔔 Integraciones Opcionales```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

🔐 Autenticación del Panel de Control```bash

XALGORIX_USERNAME=admin XALGORIX_PASSWORD=change-this-password

> [!TIP]
> Prefiere `XALGORIX_PASSWORD_HASH` para despliegues en producción.

## 🆙 Actualización desde versiones anteriores

Esta versión incluye una pasada de estabilidad y aislamiento del espacio de trabajo con un cambio incompatible y algunos ajustes nuevos que vale la pena conocer.

### 💥 Cambio incompatible: el espacio de trabajo predeterminado se movió a `~/.xalgorix/data/`

La salida de escaneo, las notas, las programaciones y otros artefactos generados ahora se encuentran en `~/.xalgorix/data/` en lugar de `$CWD` (el directorio desde el que se lanzó el binario).

Para conservar el comportamiento anterior, apunta `XALGORIX_DATA_DIR` a tu directorio de trabajo actual:```bash
export XALGORIX_DATA_DIR=$(pwd)

Se emite una advertencia [MIGRATION] al iniciar cuando se detectan marcadores heredados (notes.json, _schedules/, vulnerabilities.json o directorios YYYY-MM-DD/scan-*) en $CWD y XALGORIX_DATA_DIR no está establecido. Xalgorix nunca lee, copia ni elimina esos archivos heredados automáticamente; la advertencia es informativa y solo se activa una vez por proceso.

🆕 Nueva variable de entorno

VariablePredeterminadoDescripción
XALGORIX_LLM_MAX_INFLIGHT4 × EffectiveMaxInstancesLimita las llamadas LLM salientes simultáneas en todos los escaneos en ejecución. Mínimo 1. Los procesos en espera cancelados no consumen un slot.

🩺 Nuevos contadores del endpoint de estado

GET /api/status ahora expone:

CampoSignificado
panics_recoveredPánicos de goroutines, manejadores HTTP y herramientas que fueron recuperados sin fallar.
path_rejectionsEscrituras en el sistema de archivos rechazadas por Path_Policy (fuera de data_dir / ~/.xalgorix/ / /tmp).
watchdog_killsSubprocesos terminados por el watchdog de tiempo límite estricto por herramienta.
admission_refusalsSolicitudes de admisión de escaneo denegadas debido al límite de concurrencia.
llm_inflight_capValor efectivo de XALGORIX_LLM_MAX_INFLIGHT para este proceso.
data_dirData_Dir resuelto en uso.
allow_listRaíces del sistema de archivos aceptadas por Path_Policy.

🏃 Ejecución

🪟 Interfaz web```bash

xalgorix --web

Abrir:```text
http://127.0.0.1:9137

Utilice un puerto diferente:```bash xalgorix --web --port 8080

### 🌐 Acceso externo

Vincular a otra interfaz solo después de habilitar la autenticación del panel de control:```bash
XALGORIX_USERNAME=admin XALGORIX_PASSWORD=change-this xalgorix --web --bind 0.0.0.0

[!WARNING] El servidor rechaza el enlace externo sin autenticación del panel de control.

🏹 Escaneo CLI```bash

xalgorix --target https://example.com

Con instrucciones personalizadas:```bash
xalgorix --target https://app.example.com --instruction "Focus on SQL injection, IDOR, and auth bypass. Avoid destructive tests."

🧰 Modo Servicio

Instalar e iniciar como un servicio del sistema:```bash sudo xalgorix --start

Gestionar el servicio:```bash
sudo xalgorix --restart
sudo xalgorix --stop
sudo xalgorix --uninstall

Ver registros:```bash journalctl -u xalgorix -f

### 🌍 Acceso remoto al servicio

Expón el servicio a navegadores remotos solo después de habilitar la autenticación del panel:```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

Luego abre http://<server-ip>:9137.

Si el proceso está escuchando pero la página aún no carga de forma remota, permite el puerto TCP 9137 en el firewall del servidor o en el grupo de seguridad de la nube.

🏠 Escaneo de objetivos locales/internos

Por defecto, Xalgorix se niega a escanear direcciones de loopback, localhost, rangos privados o sus propias direcciones de interfaz — son la máquina en la que se ejecuta Xalgorix, no un objetivo. En una máquina autoalojada y de inquilino único puedes optar por escanear una aplicación de demostración/staging alojada localmente:```bash echo 'XALGORIX_ALLOW_LOCAL_TARGETS=true' | sudo tee -a /root/.xalgorix.env sudo xalgorix --restart

El propio listener del dashboard está **siempre** protegido, incluso con esto habilitado.

> **⚠️ Despliegues compartidos / multiinquilino / alojados: mantenga esto DESACTIVADO.** Habilitarlo
> permitiría que el escaneo de un usuario alcance la propia máquina del operador y la red interna.
> Está desactivado por defecto, por lo que no se necesita ninguna acción para mantenerse seguro — no establezca
> `XALGORIX_ALLOW_LOCAL_TARGETS` (ni fije `XALGORIX_ALLOW_LOCAL_TARGETS=false`),
> y no exponga la página de Settings del motor a usuarios no confiables.

## 🔁 Flujo de trabajo de la Web UI

1. Abra el dashboard en `http://127.0.0.1:9137`.
2. Vaya a Settings y confirme el proveedor de LLM, la clave de API, los límites de tasa y las integraciones opcionales.
3. Cree un escaneo desde New Scan.
4. Elija un modo de escaneo.
5. Seleccione las fases de la metodología cuando desee una ejecución enfocada.
6. Establezca filtros de severidad cuando solo ciertas severidades deban reportarse en vivo. El filtro afecta únicamente al feed del dashboard en tiempo real y a las notificaciones; el informe PDF y `/api/findings` siempre incluyen todas las vulnerabilidades que el agente descubrió.
7. Agregue el nombre de la empresa y suba un logo para informes con marca.
8. Monitoree el progreso desde Overview, Scan Detail o Live Feed.
9. Abra los detalles de los hallazgos, descargue informes o gestione escaneos históricos desde Scans and Reports.

## 🔀 Modos de escaneo

| Modo             | Ideal para                                                                        |
| ---------------- | ------------------------------------------------------------------------------- |
| 🎯 Objetivo único    | Probar una URL o host conocido.                                                  |
| 🌐 Comodín / múltiple | Enumerar objetivos relacionados y escanear la superficie de ataque descubierta.         |
| 🧭 DAST             | Pruebas asistidas por navegador para aplicaciones web, flujos de autenticación, formularios y comportamiento en tiempo de ejecución. |

## 📂 Escanee su código (no se necesita objetivo)

Apunte Xalgorix a una base de código — una URL de Git, una ruta local o un zip subido — y
escanea el código fuente directamente. Sin URL desplegada, sin infraestructura que levantar.```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
Modo de escaneo de códigoQué haceNivel de verificación
reviewLee el código fuente, rastrea la entrada del usuario desde el punto de entrada → sink peligroso, y reporta vulnerabilidades alcanzables. Sin objetivo en vivo.Verificado por código fuente — probado como alcanzable en el código (claramente etiquetado como no explotado en tiempo de ejecución).
provisionInspecciona el repositorio, compila y ejecuta la aplicación en un puerto de loopback, luego ejecuta DAST guiado por caja blanca contra la instancia en ejecución. Recurre a review si la aplicación no se puede compilar.Verificado por explotación — reproducido contra la aplicación en ejecución.
  • --source acepta una URL de Git (clonada superficialmente), un directorio local, o una ruta a un archivo subido/extraído. En la interfaz web / aplicación alojada también puedes subir un .zip de tu base de código (POST /api/upload-source).
  • Todavía puedes combinar un repositorio y un objetivo en vivo para el clásico aumento de caja blanca — esa ruta no ha cambiado. Los modos de escaneo de código son para cuando la base de código es el sujeto completo.

El modo provision ejecuta los comandos de compilación/inicio de tu aplicación en el sandbox del agente y solo hace pentesting del único puerto de loopback en el que levantó la aplicación — el panel y todo lo demás en la máquina quedan fuera del alcance.

🧭 Metodología

Xalgorix organiza las pruebas autónomas en 22 fases.

FaseEnfoque
1Reconocimiento
2Descubrimiento manual de vulnerabilidades
3Descubrimiento de directorios y archivos
4Análisis de CORS y cookies
5Pruebas de autenticación y sesión
6Pruebas de inyección
7Pruebas de SSRF
8IDOR y control de acceso roto
9Pruebas de API y GraphQL
10Pruebas de carga de archivos
11Deserialización y RCE
12Condiciones de carrera y lógica de negocio
13Toma de control de subdominios
14Pruebas de redirección abierta
15Pruebas de seguridad de correo electrónico
16Nube e infraestructura
17Pruebas de WebSocket
18Pruebas específicas de CMS
19Secuestro de enlaces rotos y suplantación de contenido
20Verificación de explotación
21Descubrimiento de vulnerabilidades novedosas
22Informe final

La selección de fases en la interfaz web te permite ejecutar todas las fases o solo el subconjunto necesario para un compromiso específico.

📄 Informes

Los informes se generan como archivos PDF y pueden incluir:

SecciónContenido incluido
📌 ResumenResumen ejecutivo, metadatos del objetivo, metadatos del escaneo y visión general de severidad.
🐞 HallazgosHallazgos verificados, detalles de CVSS, análisis técnico y prueba de explotación.
🔬 EvidenciaComandos de prueba de concepto, scripts, notas de payloads y observaciones de respaldo.
🩹 RemediaciónGuía de corrección y próximos pasos priorizados.
🎨 BrandingNombre de la empresa/objetivo y logo subido.

Los informes están disponibles desde la página de detalle del escaneo y la página de Informes. Las filas de informes admiten apertura, descarga y eliminación.

🔧 Configuración

La mayoría de los ajustes operativos se pueden cambiar desde la interfaz web en Configuración.

ÁreaEjemplos
🤝 CompromisoLímites de tasa de solicitudes del panel
🧠 LLMModelo, clave de API, base de API, esfuerzo de razonamiento, reintentos, iteraciones máximas
📬 AgentMailPod y clave de API
🔔 NotificacionesWebhook de Discord y severidad mínima, token de bot de Telegram, ID de chat, severidad mínima, y resúmenes de finalización de escaneo opcionales
🕵️ ProxyURL del proxy, archivo de proxy, rotación, verificación TLS
🧱 RuntimeEspacio de trabajo, ruta del navegador, controles de autoinstalación
🔐 SeguridadNombre de usuario del panel, contraseña, hash de contraseña, dirección de enlace
📈 RecursosUmbrales de CPU/RAM/disco y presupuesto de concurrencia de escaneo

Algunos ajustes requieren un reinicio porque afectan el inicio del proceso o el enlace del servidor. La interfaz marca esos campos.

🧾 Variables de Entorno

🧱 Núcleo

VariablePredeterminadoDescripción
XALGORIX_LLMningunoID de modelo nativo del proveedor usado para solicitudes LLM.
XALGORIX_LLM_PROVIDERningunoProveedor seleccionado por el panel, almacenado por separado del ID de modelo.
XALGORIX_API_KEYningunoClave de API del proveedor LLM requerida.
XALGORIX_API_BASEpredeterminado del proveedorURL base de API compatible con OpenAI personalizada.
XALGORIX_REASONING_EFFORThighEsfuerzo de razonamiento: none, low, medium, high, o xhigh (xhigh se asigna a high para Ollama).
XALGORIX_LANGUAGEenIdioma de salida para la prosa generada por IA (razonamiento del agente, notas, hallazgos, contenido del informe, chat posterior al escaneo). en o zh-CN. Los tokens técnicos (payloads, comandos, URLs, IDs de CVE/CWE) siempre permanecen en su forma original. Los idiomas no latinos se renderizan en el panel y el informe HTML automáticamente.
XALGORIX_PDF_CJK_FONTningunoRuta absoluta a una fuente TrueType (.ttf) con glifos CJK, usada para renderizar idiomas no latinos (p. ej. chino simplificado) en el informe PDF exportado. Solo se admite .ttf (no .ttc/.otf). Sin ella, el PDF recurre a las fuentes principales y los glifos no latinos no se renderizarán (el informe HTML no se ve afectado).
XALGORIX_OLLAMA_COMPATIBLEfalseAplicar la semántica de razonamiento de Ollama a un endpoint personalizado en un puerto no estándar. El puerto 11434 se detecta automáticamente.
XALGORIX_LLM_MAX_RETRIES5Número de reintentos para fallos transitorios del LLM.
XALGORIX_MEMORY_COMPRESSOR_TIMEOUT30Tiempo de espera en segundos para la compresión de contexto.
XALGORIX_MAX_ITERATIONS0Límite de iteraciones del agente. 0 significa ilimitado.
XALGORIX_PPROF_ADDRningunoGenerador de perfiles Go opcional. Cuando se establece (p. ej. 127.0.0.1:6060), inicia un servidor pprof independiente en /debug/pprof/ en esa dirección para diagnóstico de CPU/montón. Deshabilitado por defecto. Expone las partes internas del proceso — enlaza a loopback y accede a través de un túnel SSH; nunca lo expongas públicamente.
GEMINI_API_KEYningunoClave de Gemini opcional para enriquecimiento de búsqueda web.

🔒 Web y Seguridad

VariablePredeterminadoDescripción
XALGORIX_BIND127.0.0.1Dirección de escucha del servidor web.
XALGORIX_ALLOW_LOCAL_TARGETSfalsePermitir el escaneo de aplicaciones alojadas localmente (localhost / 127.0.0.1 / IPs privadas) en una instalación autoalojada. El propio listener del panel siempre está protegido. Déjalo desactivado en despliegues compartidos/alojados.
XALGORIX_USERNAMEningunoNombre de usuario del panel.
XALGORIX_PASSWORDningunoContraseña del panel.
XALGORIX_PASSWORD_HASHningunoHash de contraseña bcrypt preferido.
XALGORIX_WORKSPACEdirectorio actualRaíz del espacio de trabajo para la ejecución del escaneo.

🤝 Integraciones

VariablePredeterminadoDescripción
AGENTMAIL_PODningunoIdentificador del pod de AgentMail.
AGENTMAIL_API_KEYningunoClave de API de AgentMail.
XALGORIX_DISCORD_WEBHOOKningunoWebhook global de Discord.
XALGORIX_DISCORD_MIN_SEVERITYningunoSeveridad mínima enviada a Discord.
XALGORIX_TELEGRAM_BOT_TOKENningunoToken de bot de Telegram de @BotFather.
XALGORIX_TELEGRAM_CHAT_IDningunoID de chat/canal de Telegram (numérico o @username).
XALGORIX_TELEGRAM_MIN_SEVERITYningunoSeveridad mínima enviada a Telegram.
XALGORIX_NOTIFY_SCAN_COMPLETEfalseEnviar resúmenes de fin de escaneo a los destinos de Discord/Telegram configurados. Esto es opcional y no afecta las alertas por vulnerabilidad.
CAIDO_PORT0Puerto del proxy Caido. 0 significa detección automática.
CAIDO_API_TOKENningunoToken de API de Caido.

🚦 Límites de Tasa, Proxy y Runtime

VariablePredeterminadoDescripción
XALGORIX_RATE_LIMIT_REQUESTS60Solicitudes del panel por ventana.
XALGORIX_RATE_LIMIT_WINDOW60Ventana de límite de tasa del panel en segundos.
XALGORIX_RATE_RPS10Tasa de solicitudes salientes sostenida.
XALGORIX_RATE_BURST20Tamaño de ráfaga saliente.
XALGORIX_USE_PROXYfalseHabilitar el enrutamiento por proxy.
XALGORIX_PROXY_URLningunoURL de proxy única. Anula el archivo de proxy.
XALGORIX_PROXY_FILEningunoArchivo que contiene un proxy por línea.
XALGORIX_PROXY_ROTATIONroundrobinEstrategia de rotación de proxy: roundrobin o random.
XALGORIX_TLS_SKIP_VERIFYfalseOmitir la verificación TLS para el tráfico de pruebas.
XALGORIX_DISABLE_BROWSERfalseDeshabilitar la automatización del navegador.
XALGORIX_BROWSER_PATHautoRuta personalizada del ejecutable de Chrome/Chromium.
XALGORIX_ALLOW_AUTO_INSTALLsolo rootPermitir la instalación automática de paquetes.
XALGORIX_AUTO_INSTALL_SUDOfalsePermitir autoinstalaciones con prefijo sudo.

🔤 Prefijos de Proveedor

Cuando XALGORIX_API_BASE está vacío, Xalgorix infiere los valores predeterminados del proveedor a partir del prefijo del modelo.

PrefijoBase de API predeterminada
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

Los nombres de los modelos no están codificados de forma rígida a esta lista. La página de Configuración acepta IDs de modelo escritos para que se puedan usar modelos de proveedores más recientes sin esperar a una actualización del menú desplegable de la interfaz.

💻 Referencia de CLI

BanderaAliasDescripción
--web-wIniciar la interfaz web.
--port <port>-pPuerto de la interfaz web. Predeterminado: 9137.
--bind <addr>ningunoDirección de enlace. Predeterminado: 127.0.0.1.
--target <target>-tURL, host, IP o ruta del objetivo. Repetible.
--instruction <text>-iInstrucciones de escaneo personalizadas.
--model <model>-mAnular XALGORIX_LLM para esta ejecución.
--update-upActualizar a la última versión.
--version-vMostrar versión.
--startningunoInstalar e iniciar el servicio del sistema.
--stopningunoDetener el servicio del sistema.
--restartningunoReiniciar el servicio del sistema.
--uninstallningunoEliminar el servicio del sistema.
--help-hMostrar ayuda.

📡 Resumen de la API

MétodoEndpointPropósito
POST/api/scanIniciar o guardar un escaneo.
POST/api/stopDetener todos los escaneos en ejecución.
GET/api/statusEstado global actual.
GET/api/scansListar escaneos.
GET/api/scans/:idObtener detalle del escaneo.
DELETE/api/scans/:idEliminar un escaneo y sus datos de informe.
GET/api/findingsListar todos los hallazgos (deduplicados entre escaneos).
GET/api/findings/summaryRecuento de severidad en todos los escaneos.
GET/api/report/:idDescargar un informe PDF.
GET/api/instancesListar instancias activas e históricas.
GET/api/instances/:id/eventsObtener el historial de eventos en búfer.
POST/api/instances/:id/stopDetener una instancia específica.
POST/api/instances/:id/startIniciar un escaneo guardado o completado como una nueva ejecución.
POST/api/instances/:id/restartReiniciar con la misma configuración.
POST/api/instances/:id/pausePausar un escaneo en ejecución.
POST/api/instances/:id/resumeReanudar un escaneo pausado.
POST/api/upload-logoSubir un logo de informe.
POST/api/upload-targetsSubir una lista de objetivos.
GET/api/settings/environmentListar ajustes de entorno editables.
POST/api/settings/environmentGuardar ajustes de entorno.
GET/api/settings/llmObtener ajustes de LLM.
POST/api/settings/llmGuardar ajustes de LLM.
GET/api/settings/agentmailObtener ajustes de AgentMail.
POST/api/settings/agentmailGuardar ajustes de AgentMail.
GET/wsFlujo de eventos en vivo por WebSocket.

💾 Almacenamiento de Datos

Los datos de escaneo en modo web se almacenan en:```text ~/xalgorix-data/ |-- _saved/ |-- logos/ |-- queue_state.json -- <target>/ -- / -- <scan-id>/ |-- scan.json -- report.pdf

El servidor mantiene registros históricos de escaneos en disco para que la interfaz de usuario pueda recuperarse tras un refresco o reinicio.

## 🧪 Desarrollo

| Tarea                        | Comando                       |
| --------------------------- | ----------------------------- |
| 📦 Instalar dependencias de la interfaz web | `make webui-install`          |
| 🔨 Compilar todo            | `make build`                  |
| ✅ Ejecutar pruebas                   | `go test ./...`               |
| 🖥️ Ejecutar la interfaz web desde el código fuente      | `go run ./cmd/xalgorix --web` |
| ⚡ Ejecutar el servidor de desarrollo del frontend     | `make webui-dev`              |

## 🚨 Notas de seguridad

- Utiliza Xalgorix únicamente contra objetivos autorizados.
- No ejecutes pruebas activas contra sistemas de terceros sin permiso.
- Revisa las instrucciones de escaneo antes de lanzarlo.
- Configura los límites de velocidad y los ajustes de proxy para que coincidan con las reglas del encargo.
- Exponer el panel de control externamente requiere autenticación.
- La instalación automática está deshabilitada por defecto para usuarios no root y solo debe habilitarse cuando confíes en el entorno.

## 📜 Licencia

Xalgorix se distribuye bajo la Licencia Apache 2.0. Consulta [LICENSE](https://github.com/xalgord/xalgorix/blob/main/LICENSE).

## 🔗 Enlaces

| Recurso      | Enlace                                                                             |
| ------------- | -------------------------------------------------------------------------------- |
| ☁️ Alojado (Cloud) | [www.xalgorix.com](https://www.xalgorix.com/)                                   |
| 📖 Documentación | [docs.xalgorix.com](https://docs.xalgorix.com)                                   |
| 🐛 Problemas        | [github.com/xalgorix/xalgorix/issues](https://github.com/xalgorix/xalgorix/issues) |
| ☕ Apoyo       | [buymeacoffee.com/xalgord](https://buymeacoffee.com/xalgord)                     |

Categorías