
xalgorix v4.5.124
Agentes autónomos de pentesting con IA — reconocimiento en tiempo real, detección de vulnerabilidades y orquestación de explotación. Go + TypeScript.
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 pentest y, a continuación, un verificador independiente re-explota cada hallazgo antes de que se informe — para que obtengas pruebas, no un montón de "puede ser" que triar. Autoalojado, privado y con tu propio LLM. Construido en Go + TypeScript.
Inicio rápido · Por qué Xalgorix · Características · Casos de uso · Cloud alojado · Documentación
Quick Start
Instalación (una línea):```bash curl -sSL https://www.xalgorix.com/install | bash
Esto descarga el binario precompilado para tu plataforma (Linux amd64/arm64) desde la última versión. Luego apúntalo a tu proveedor de LLM en `~/.xalgorix.env`:```bash
XALGORIX_LLM=minimax/MiniMax-M3
XALGORIX_API_KEY=your_provider_api_key
Inicie el panel y abra http://127.0.0.1:9137:```bash
xalgorix --web
**O ejecuta con Docker — baterías incluidas, sin necesidad de cadena de herramientas:**```bash
docker run --rm -p 9137:9137 \
--privileged \
-v xalgorix-data:/data \
xalgord/xalgorix:latest
--privileged le da al conjunto de herramientas el mismo acceso similar al del 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 estas capacidades a sí misma, deben establecerse en tiempo de ejecución. El contenedor es un sandbox de escaneo desechable, aislado de la red, que se ejecuta como root: privilegiado es la postura prevista; nunca expongas el panel públicamente sin autenticación. ¿Prefieres el menor 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 panel se lanza sin una; establece el modelo y la clave de API en Settings → LLM (se guarda en el volumen /data). Si no pasas XALGORIX_USERNAME/XALGORIX_PASSWORD, se genera una contraseña de administrador aleatoria y se imprime en los registros del contenedor en el primer arranque.
La forma más fácil — Docker Compose (mapea el puerto y un volumen persistente por ti):```bash curl -sSLO https://raw.githubusercontent.com/xalgord/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 amplio conjunto de herramientas ofensivas de seguridad preinstaladas (nmap, nuclei, httpx, subfinder, katana, ffuf, gobuster, sqlmap, masscan, dalfox, feroxbuster y más) **y** mantiene disponibles todos los gestores de paquetes (apt, go, cargo, pipx, npm) para que el agente pueda autoinstalar cualquier cosa que falte en tiempo de ejecución. Se ejecuta como root dentro del contenedor por diseño: trate el contenedor como un sandbox de escaneo desechable y aislado de la red, y nunca exponga el panel sin autenticación. (Imagen amd64; el instalador anterior cubre arm64).
**O compilar desde el código fuente** (necesita Go 1.25+ y Node.js):```bash
git clone https://github.com/xalgord/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 encuentra en www.xalgorix.com — clic para escanear, sin instalación ni claves API requeridas.
Revisa pull requests automáticamente — app gratuita de GitHub
¿Quieres una revisión de seguridad en cada pull request sin configuración? Instala la app de GitHub Xalgorix. Lee el diff de cada PR y comenta una revisión de seguridad — inyección, auth/IDOR roto, SSRF, secretos, patrones inseguros — directamente en el pull request. Se actualiza en el sitio con nuevos commits, y puedes comentar @xalgorix review para volver a ejecutarla bajo demanda. Sin archivo de workflow, sin clave API, sin cuenta — y es gratuita.
Para control de merges y pentests completos con verificación de exploits en CI, usa el escáner alojado o la GitHub Action.
[!IMPORTANT] Usa Xalgorix solo en sistemas que te pertenezcan o para los que tengas permiso explícito de prueba.
[!TIP] ¿Prefieres no auto-alojarla? Una versión totalmente gestionada está disponible en www.xalgorix.com — clic para escanear, sin instalación ni claves API requeridas.
Contenido
- Inicio rápido
- Resumen
- Por qué Xalgorix
- Casos de uso
- Capturas de pantalla
- Características
- Instalación
- Configuración
- Actualización desde versiones anteriores
- Ejecución
- Modo servicio
- Flujo de trabajo de la interfaz web
- Modos de escaneo
- Metodología
- Informes
- Ajustes
- Variables de entorno
- Prefijos de proveedores
- Referencia de CLI
- Resumen de API
- Almacenamiento de datos
- Desarrollo
- Notas de seguridad
- Licencia
- Enlaces
Resumen
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 basado en LLM, automatización de navegador, herramientas de terminal, una metodología integral de prueba de 22 fases, telemetría WebSocket en vivo, 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 íntegramente 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 tasa y la configuración del proxy. Ningún dato de escaneo, clave 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, supervisar 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 prueba. Un agente autónomo recorre una metodología de 22 fases y, después, un verificador independiente vuelve a probar cada hallazgo candidato antes de que se informe; así obtienes resultados verificados mediante exploits con evidencia, no una pared de «quizás» que clasificar.
- 🧠 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 por firmas pasan por alto.
- ✅ Hallazgos verificados mediante exploits — un verificador independiente reproduce cada hallazgo; los no concluyentes se marcan para revisión, nunca se presentan 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 puerta de enlace compatible con OpenAI como LiteLLM (GitHub Copilot, Codex, OpenRouter, Azure). Tú controlas el modelo, el esfuerzo de razonamiento y el coste.
- 📄 Informes listos para auditoría — PDF con marca con 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 autónomo de IA | Firmas / plantillas | Spider + reglas activas | Firmas + heurísticas |
| Cobertura de lógica de negocio / IDOR / bypass de autenticación | ✅ | Limitada | Limitada | Parcial |
| Verificado mediante exploit (prueba el impacto) | ✅ verificador independiente | ❌ | ❌ | Parcial |
| Carga de falsos positivos | Baja (comprobado) | Dependiente de plantillas | 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 | Gratuito | Gratuito | $$$ |
Comparación orientativa: Nuclei y ZAP son excelentes en lo que hacen. Xalgorix añade encima la capa de descubrimiento y verificación de exploits basada en razonamiento.
Si Xalgorix te ahorra un ciclo de triaje, por favor ⭐ da una estrella al repositorio — de verdad 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, descubrimiento de vulnerabilidades, pruebas de inyección, SSRF, IDOR, bypass de autenticación, condiciones de carrera y más; luego verifica los hallazgos antes de informar. |
| Caza de bug bounty | Apunta Xalgorix a un objetivo dentro del alcance y deja que el agente enumere la superficie de ataque, pruebe clases de vulnerabilidades comunes y muestre hallazgos verificados con puntuaciones CVSS y evidencia de prueba de concepto. |
| Operaciones de equipo rojo | 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 empuja 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 del razonamiento y el coste. |
| Pruebas de seguridad continuas | Ejecútalo como servicio del sistema con xalgorix --start. Escanea según un horario, transmite hallazgos a Discord o Telegram y genera informes PDF con marca para las partes interesadas. |
| Automatización DAST | Pruebas dirigidas por navegador para aplicaciones web: flujos de autenticación, formularios, contenido renderizado por JavaScript y comportamiento en tiempo de ejecución. Se integra con Caido para inspección del tráfico proxy. |
Capturas de pantalla
| Panel de resumen | Detalle del escaneo | Hallazgos |
|---|---|---|
![]() | ![]() | ![]() |
Características
| Área | Capacidades |
|---|---|
| Panel | Interfaz web local en 127.0.0.1:9137 de forma predeterminada, gestión de escaneos, estado en vivo, acciones masivas de escaneo 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 de LLM a través de WebSockets. |
| Hallazgos | Páginas de detalle del escaneo, filtros por severidad, detalles de CVSS, índice de hallazgos y flujos de trabajo de hallazgos verificados. |
| Informes | Informes PDF con marca con nombre de objetivo/empresa, logotipo cargado, lista de informes y acciones de abrir/descargar/eliminar. |
| Integraciones | Bandejas de entrada de prueba de AgentMail, correos de verificación, flujos 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 tasa y recursos. |
| Seguridad en tiempo de ejecución | Límites de instancias sensibles a los recursos y vinculación solo a loopback a menos que se configure explícitamente acceso externo con autenticación. |
Instalación
Las rutas más rápidas no necesitan ninguna cadena 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 `amd64`/`arm64`) y lo instala en `/usr/local/bin` (o `~/.local/bin` sin sudo). Sobrescribe con `XALGORIX_INSTALL_DIR` o fija una versión con `XALGORIX_VERSION=vX.Y.Z`.
### Docker```bash
docker run --rm -p 9137:9137 \
--privileged \
-e XALGORIX_LLM=minimax/MiniMax-M3 \
-e XALGORIX_API_KEY=your_provider_api_key \
-v xalgorix-data:/data \
ghcr.io/xalgord/xalgorix:latest
--privileged (o la opción más restringida --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 syscalls, lo que rompe herramientas de bajo nivel (cambios de iptables/route/interfaces, ARP-spoof/MITM, VPNs tun/tap, depuradores basados en ptrace). Una imagen no puede otorgarse estas capacidades a sí misma — son una decisión de tiempo de ejecución — así que pasa la bandera, o usa el docker-compose.yml proporcionado, que lo establece por ti.
La imagen viene con todo incluido: un extenso conjunto de herramientas ofensivas de seguridad 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), de modo 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 con apt/go/cargo necesitan acceso de escritura al sistema). Trátalo como un sandbox de escaneo desechable y aislado de la red. Está publicado para amd64; usa el instalador de una línea para hosts arm64.
En el primer arranque, si no estableces la autenticación del panel, el contenedor genera una contraseña de administrador aleatoria y la imprime en los registros (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. El binario nunca se autoactualiza dentro del contenedor (XALGORIX_NO_AUTO_UPDATE=1) — descarga una nueva etiqueta de imagen para actualizar.
Requisitos (compilar desde el código fuente)
| Requisito | Notas |
|---|---|
| Linux | Plataforma principal compatible. |
| Go | 1.25 o más reciente. |
| Node.js + npm | Necesario al compilar la interfaz web React incluida desde el código fuente. |
| Herramientas de seguridad | Instaladas 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/xalgord/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 luego compila el binario de Go.
Instalar 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 a las anteriores.
| Orden | Fuente |
| ----- | -------------------------------------------------------------- |
| 1 | `/etc/xalgorix.env` |
| 2 | `/home/<sudo-user>/.xalgorix.env` cuando se lanza a través de `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```bash
XALGORIX_LLM=minimax/MiniMax-M3 XALGORIX_API_KEY=your_provider_api_key
### Ejemplos de proveedores
OpenAI:```bash
XALGORIX_LLM=openai/gpt-5.4
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 [LiteLLM](https://docs.litellm.ai/) de serie — no
hacen falta cambios en el 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 solo habla OpenAI con la pasarela.
Ejecuta LiteLLM (ejemplo `config.yaml`):```yaml
model_list:
- model_name: claude-opus-4-8
litellm_params:
model: github_copilot/claude-opus-4.8 # or openrouter/…, azure/…, ollama/…
general_settings:
master_key: sk-local-litellm-key
Apunta Xalgorix hacia él: usa el prefijo custom/ para que el nombre del modelo se envíe tal cual y se use el protocolo de chat-completions de OpenAI:```bash
XALGORIX_LLM=custom/claude-opus-4-8 # 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 una `XALGORIX_API_BASE` no 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```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 incorpora una pasada de estabilidad y aislamiento del espacio de trabajo, con un cambio incompatible y algunos parámetros nuevos que vale la pena conocer.
### Cambio incompatible: el espacio de trabajo predeterminado se ha movido a `~/.xalgorix/data/`
La salida de escaneos, notas, 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 inicio cuando se detectan marcadores heredados (notes.json, _schedules/, vulnerabilities.json o directorios YYYY-MM-DD/scan-*) en $CWD y XALGORIX_DATA_DIR no está definido. 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
| Variable | Default | Description |
|---|---|---|
XALGORIX_LLM_MAX_INFLIGHT | 4 × EffectiveMaxInstances | Limita las llamadas LLM salientes simultáneas en todos los escaneos en ejecución. Mínimo 1. Los solicitantes cancelados no consumen una ranura. |
Nuevos contadores del endpoint de salud
GET /api/status ahora expone:
| Field | Meaning |
|---|---|
panics_recovered | Pánicos de goroutines, manejadores HTTP y herramientas que se recuperaron sin provocar un bloqueo. |
path_rejections | Escrituras al sistema de archivos rechazadas por Path_Policy (fuera de data_dir / ~/.xalgorix/ / /tmp). |
watchdog_kills | Subprocesos terminados por el watchdog de tiempo de espera máximo por herramienta. |
admission_refusals | Solicitudes de admisión de escaneo denegadas debido al límite de concurrencia. |
llm_inflight_cap | Valor efectivo de XALGORIX_LLM_MAX_INFLIGHT para este proceso. |
data_dir | Data_Dir resuelto en uso. |
allow_list | Raíces del sistema de archivos aceptadas por Path_Policy. |
Running
Web UI```bash
xalgorix --web
Abrir:```text
http://127.0.0.1:9137
Usa un puerto diferente:```bash xalgorix --web --port 8080
### Acceso Externo
Enlazar a otra interfaz solo después de habilitar la autenticación del panel:```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.
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 de servicio
Instale e inicie como un servicio del sistema:```bash sudo xalgorix --start
Gestione el servicio:```bash
sudo xalgorix --restart
sudo xalgorix --stop
sudo xalgorix --uninstall
Ver registros:```bash journalctl -u xalgorix -f
### Acceso remoto al servicio
Exponga 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 loopback, localhost, rangos privados o las direcciones de su propia interfaz: son la máquina en la que se ejecuta Xalgorix, no un objetivo. En un equipo autohospedado y de un solo inquilino puedes optar por escanear una aplicación de demostración/pruebas alojada localmente:```bash
echo 'XALGORIX_ALLOW_LOCAL_TARGETS=true' | sudo tee -a /root/.xalgorix.env
sudo xalgorix --restart
El propio listener del panel está **siempre** protegido, incluso con esta opción habilitada.
> **⚠️ Despliegues compartidos / multiinquilino / alojados: mantén esta opción DESACTIVADA.** Habilitarla
> permitiría que el escaneo de un usuario llegara a la máquina del operador y a la red interna.
> Está desactivada por defecto, por lo que no se necesita ninguna acción para mantenerse seguro — no establezcas
> `XALGORIX_ALLOW_LOCAL_TARGETS` (o fija `XALGORIX_ALLOW_LOCAL_TARGETS=false`),
> y no expongas la página de Configuración del motor a usuarios no confiables.
## Flujo de trabajo de la interfaz web
1. Abre el panel en `http://127.0.0.1:9137`.
2. Ve a Configuración y confirma el proveedor de LLM, la clave de API, los límites de tasa y las integraciones opcionales.
3. Crea un escaneo desde Nuevo escaneo.
4. Elige un modo de escaneo.
5. Selecciona las fases de metodología cuando quieras una ejecución enfocada.
6. Establece filtros de severidad cuando solo ciertas severidades deban reportarse en vivo. El filtro afecta únicamente al feed del panel en tiempo real y a las notificaciones; el informe PDF y `/api/findings` siempre incluyen todas las vulnerabilidades que el agente descubrió.
7. Añade el nombre de la empresa y sube un logotipo para informes personalizados.
8. Supervisa el progreso desde Vista general, Detalle del escaneo o Feed en vivo.
9. Abre los detalles de los hallazgos, descarga informes o gestiona escaneos históricos desde Escaneos e informes.
## Modos de escaneo
| Modo | Ideal para |
| ---------------- | ------------------------------------------------------------------------------- |
| Objetivo único | Prueba de una URL u host conocidos. |
| Wildcard / multi | Enumera objetivos relacionados y escanea la superficie de ataque descubierta. |
| DAST | Pruebas asistidas por navegador: apps web, flujos auth, formularios y runtime. |
## Escanea tu código (no se necesita objetivo)
Apunta 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ódigo | Qué hace | Nivel de verificación |
|---|---|---|
review | Lee el código fuente, rastrea la entrada del usuario desde el punto de entrada → sumidero peligroso, e informa vulnerabilidades alcanzables. Sin objetivo en vivo. | Verificado por código fuente — con alcance demostrable en el código (claramente marcado como no explotado en tiempo de ejecución). |
provision | Inspecciona el repositorio, compila y ejecuta la aplicación en un puerto de loopback, y luego ejecuta DAST guiado por whitebox 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. |
--sourceacepta una URL de Git (clonado superficial), un directorio local o una ruta a un archivo subido/extraído. En la Web UI / aplicación alojada también puedes subir un.zipde tu código base (POST /api/upload-source).- Aún puedes combinar un repositorio y un objetivo en vivo para la aumentación clásica de whitebox — esa ruta no cambia. Los modos de escaneo de código son para cuando el código base es todo el sujeto.
El modo
provisionejecuta los comandos de compilación/inicio de tu aplicación en el sandbox del agente y solo pentesta el único puerto de loopback en el que levantó la aplicación — el dashboard y todo lo demás en la máquina quedan fuera del alcance.
Metodología
Xalgorix organiza las pruebas autónomas en 22 fases.
| Fase | Enfoque |
|---|---|
| 1 | Reconocimiento |
| 2 | Descubrimiento manual de vulnerabilidades |
| 3 | Descubrimiento de directorios y archivos |
| 4 | Análisis de CORS y cookies |
| 5 | Pruebas de autenticación y sesión |
| 6 | Pruebas de inyección |
| 7 | Pruebas de SSRF |
| 8 | IDOR y control de acceso roto |
| 9 | Pruebas de API y GraphQL |
| 10 | Pruebas de subida de archivos |
| 11 | Deserialización y RCE |
| 12 | Condiciones de carrera y lógica de negocio |
| 13 | Toma de subdominios |
| 14 | Pruebas de redirección abierta |
| 15 | Pruebas de seguridad de correo electrónico |
| 16 | Nube e infraestructura |
| 17 | Pruebas de WebSocket |
| 18 | Pruebas específicas de CMS |
| 19 | Secuestro de enlaces rotos y suplantación de contenido |
| 20 | Verificación de exploits |
| 21 | Descubrimiento de vulnerabilidades novedosas |
| 22 | Informe final |
La selección de fases en la Web UI te permite ejecutar todas las fases o solo el subconjunto necesario para un encargo específico.
Informes
Los informes se generan como archivos PDF y pueden incluir:
| Sección | Contenido incluido |
|---|---|
| Resumen | Resumen ejecutivo, metadatos del objetivo, metadatos del escaneo y visión general de severidad. |
| Hallazgos | Hallazgos verificados, detalles CVSS, análisis técnico y prueba de explotación. |
| Evidencia | Comandos de prueba de concepto, scripts, notas de payload y observaciones de apoyo. |
| Remediación | Guía de corrección y próximos pasos priorizados. |
| Marca | Nombre de la empresa/objetivo y logotipo 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 abrir, descargar y eliminar.
Configuración
La mayoría de los ajustes operativos se pueden cambiar desde la Web UI en Configuración.
| Área | Ejemplos |
|---|---|
| Encargo | Límites de tasa de solicitudes del dashboard |
| LLM | Modelo, clave de API, base de API, esfuerzo de razonamiento, reintentos, iteraciones máximas |
| AgentMail | Pod y clave de API |
| Notificaciones | Webhook de Discord y severidad mínima, token de bot de Telegram, ID de chat y severidad mínima |
| Proxy | URL de proxy, archivo de proxy, rotación, verificación TLS |
| Runtime | Workspace, ruta del navegador, controles de autoinstalación |
| Security | Usuario del dashboard, contraseña, hash de contraseña, dirección de enlace |
| Recursos | Umbrales 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 UI marca esos campos.
Variables de Entorno
Núcleo
| Variable | Por defecto | Descripción |
|---|---|---|
XALGORIX_LLM | none | ID de modelo nativo del proveedor utilizado para solicitudes LLM. |
XALGORIX_LLM_PROVIDER | none | Proveedor seleccionado por el dashboard, almacenado por separado del ID de modelo. |
XALGORIX_API_KEY | none | Clave de API del proveedor LLM requerida. |
XALGORIX_API_BASE | predeterminado del proveedor | URL base de API personalizada compatible con OpenAI. |
XALGORIX_REASONING_EFFORT | high | Esfuerzo de razonamiento: none, low, medium, high o xhigh (xhigh se asigna a high para Ollama). |
XALGORIX_OLLAMA_COMPATIBLE | false | Aplica 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_RETRIES | 5 | Número de reintentos para fallos transitorios de LLM. |
XALGORIX_MEMORY_COMPRESSOR_TIMEOUT | 30 | Tiempo de espera en segundos para la compresión de contexto. |
XALGORIX_MAX_ITERATIONS | 0 | Límite de iteraciones del agente. 0 significa ilimitado. |
GEMINI_API_KEY | none | Clave Gemini opcional para el enriquecimiento de búsqueda web. |
Web y Seguridad
| Variable | Por defecto | Descripción |
|---|---|---|
XALGORIX_BIND | 127.0.0.1 | Dirección de escucha del servidor web. |
XALGORIX_ALLOW_LOCAL_TARGETS | false | Permite escanear aplicaciones alojadas localmente (localhost / 127.0.0.1 / IPs privadas) en una instalación autoalojada. El listener propio del dashboard siempre está protegido. Mantener desactivado en despliegues compartidos/hosted. |
XALGORIX_USERNAME | none | Nombre de usuario del dashboard. |
XALGORIX_PASSWORD | none | Contraseña del dashboard. |
XALGORIX_PASSWORD_HASH | none | Hash de contraseña bcrypt preferido. |
XALGORIX_WORKSPACE | directorio actual | Raíz del workspace para la ejecución de escaneos. |
Integraciones
| Variable | Por defecto | Descripción |
|---|---|---|
AGENTMAIL_POD | none | Identificador de pod de AgentMail. |
AGENTMAIL_API_KEY | none | Clave de API de AgentMail. |
XALGORIX_DISCORD_WEBHOOK | none | Webhook global de Discord. |
XALGORIX_DISCORD_MIN_SEVERITY | none | Severidad mínima enviada a Discord. |
XALGORIX_TELEGRAM_BOT_TOKEN | none | Token de bot de Telegram de @BotFather. |
XALGORIX_TELEGRAM_CHAT_ID | none | ID de chat/canal de Telegram (numérico o @usuario). |
XALGORIX_TELEGRAM_MIN_SEVERITY | none | Severidad mínima enviada a Telegram. |
CAIDO_PORT | 0 | Puerto del proxy Caido. 0 significa autodetección. |
CAIDO_API_TOKEN | none | Token de API de Caido. |
Límites de Tasa, Proxy y Runtime
| Variable | Por defecto | Descripción |
|---|---|---|
XALGORIX_RATE_LIMIT_REQUESTS | 60 | Solicitudes del dashboard por ventana. |
XALGORIX_RATE_LIMIT_WINDOW | 60 | Ventana de límite de tasa del dashboard en segundos. |
XALGORIX_RATE_RPS | 10 | Tasa sostenida de solicitudes salientes. |
XALGORIX_RATE_BURST | 20 | Tamaño de ráfaga saliente. |
XALGORIX_USE_PROXY | false | Habilita el enrutamiento a través de proxy. |
XALGORIX_PROXY_URL | none | URL de proxy única. Sobrescribe el archivo de proxy. |
XALGORIX_PROXY_FILE | none | Archivo que contiene un proxy por línea. |
XALGORIX_PROXY_ROTATION | roundrobin | Estrategia de rotación de proxy: roundrobin o random. |
XALGORIX_TLS_SKIP_VERIFY | false | Omite la verificación TLS para el tráfico de pruebas. |
XALGORIX_DISABLE_BROWSER | false | Desactiva la automatización del navegador. |
XALGORIX_BROWSER_PATH | auto | Ruta personalizada del ejecutable de Chrome/Chromium. |
XALGORIX_ALLOW_AUTO_INSTALL | solo root | Permite la instalación automática de paquetes. |
XALGORIX_AUTO_INSTALL_SUDO | false | Permite 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.
| Prefijo | Base 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 modelo no están codificados en esta lista. La página de Configuración acepta IDs de modelo escritos, por lo que los modelos más nuevos del proveedor se pueden usar sin esperar a que se actualice el desplegable de la UI.
Referencia de CLI
| Opción | Alias | Descripción |
|---|---|---|
--web | -w | Inicia la Web UI. |
--port <port> | -p | Puerto de la Web UI. Predeterminado: 9137. |
--bind <addr> | none | Dirección de enlace. Predeterminado: 127.0.0.1. |
--target <target> | -t | URL objetivo, host, IP o ruta. Repetible. |
--instruction <text> | -i | Instrucciones de escaneo personalizadas. |
--model <model> | -m | Sobrescribe XALGORIX_LLM para esta ejecución. |
--update | -up | Actualiza a la última versión. |
--version | -v | Muestra la versión. |
--start | none | Instala e inicia el servicio del sistema. |
--stop | none | Detiene el servicio del sistema. |
--restart | none | Reinicia el servicio del sistema. |
--uninstall | none | Elimina el servicio del sistema. |
--help | -h | Muestra la ayuda. |
Resumen de la API
| Método | Endpoint | Propósito |
|---|---|---|
POST | /api/scan | Inicia o guarda un escaneo. |
POST | /api/stop | Detiene todos los escaneos en ejecución. |
GET | /api/status | Estado global actual. |
GET | /api/scans | Lista los escaneos. |
GET | /api/scans/:id | Obtiene el detalle de un escaneo. |
DELETE | /api/scans/:id | Elimina un escaneo y sus datos de informe. |
GET | /api/findings | Lista todos los hallazgos (deduplicados entre escaneos). |
GET | /api/findings/summary | Conteo de severidad en todos los escaneos. |
GET | /api/report/:id | Descarga un informe en PDF. |
GET | /api/instances | Lista instancias activas e históricas. |
GET | /api/instances/:id/events | Obtiene el historial de eventos en búfer. |
POST | /api/instances/:id/stop | Detiene una instancia específica. |
POST | /api/instances/:id/start | Inicia un escaneo guardado o completado como una nueva ejecución. |
POST | /api/instances/:id/restart | Reinicia con la misma configuración. |
POST | /api/instances/:id/pause | Pausa un escaneo en ejecución. |
POST | /api/instances/:id/resume | Reanuda un escaneo pausado. |
POST | /api/upload-logo | Sube un logotipo para informes. |
POST | /api/upload-targets | Sube una lista de objetivos. |
GET | /api/settings/environment | Lista los ajustes de entorno editables. |
POST | /api/settings/environment | Guarda los ajustes de entorno. |
GET | /api/settings/llm | Obtiene los ajustes de LLM. |
POST | /api/settings/llm | Guarda los ajustes de LLM. |
GET | /api/settings/agentmail | Obtiene los ajustes de AgentMail. |
POST | /api/settings/agentmail | Guarda los ajustes de AgentMail. |
GET | /ws | Flujo 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 guarda registros históricos de escaneos en disco para que la interfaz pueda recuperarse tras una actualización o reinicio.
## Desarrollo
| Tarea | Comando |
| ----------------------------------------------- | ------------------------------ |
| Instalar dependencias de la Web UI | `make webui-install` |
| Compilar todo | `make build` |
| Ejecutar pruebas | `go test ./...` |
| Ejecutar la Web UI desde el código fuente | `go run ./cmd/xalgorix --web` |
| Ejecutar el servidor de desarrollo del frontend | `make webui-dev` |
## Notas de seguridad
- Utilice Xalgorix únicamente contra objetivos autorizados.
- No realice pruebas activas contra sistemas de terceros sin permiso.
- Revise las instrucciones de escaneo antes de iniciarlo.
- Configure los límites de velocidad y los ajustes de proxy para cumplir con las reglas del compromiso.
- Exponer el panel de control externamente requiere autenticación.
- La autoinstalación está deshabilitada por defecto para usuarios no root y solo debe habilitarse cuando confíe en el entorno.
## Licencia
Xalgorix se distribuye bajo la Licencia Apache 2.0. Consulte [LICENSE](https://github.com/xalgord/xalgorix/blob/HEAD/LICENSE).
## Enlaces
| Recurso | Enlace |
| ------------- | -------------------------------------------------------------------------------- |
| Alojado (nube) | [www.xalgorix.com](https://www.xalgorix.com/) |
| Documentación | [docs.xalgorix.com](https://docs.xalgorix.com) |
| Incidencias | [github.com/xalgord/xalgorix/issues](https://github.com/xalgord/xalgorix/issues) |
| Soporte | [buymeacoffee.com/xalgord](https://buymeacoffee.com/xalgord) |


