¿Qué es Nuclei?
Escáner de vulnerabilidades moderno de ProjectDiscovery que usa plantillas YAML para simular condiciones del mundo real — cero falsos positivos por diseño.
Plantillas YAML
Formato simple para crear y personalizar escenarios de detección. Miles de plantillas de la comunidad.
Cero falsos positivos
Simula los pasos reales de explotación para verificar que la vulnerabilidad existe antes de reportarla.
Escaneo paralelo
Procesamiento ultrarrápido con agrupación de solicitudes para escanear cientos de hosts a la vez.
Multi-protocolo
TCP, DNS, HTTP, SSL, WHOIS, JavaScript, Code y más — un solo motor para todos los vectores.
CI/CD Ready
Integración nativa en pipelines para detección continua de vulnerabilidades y pruebas de regresión.
Comunidad activa
Miles de profesionales contribuyen plantillas para las vulnerabilidades más recientes y CVEs.
Protocolos soportados
HTTP / HTTPS
DNS
TCP / UDP
SSL / TLS
WHOIS
JavaScript
Code
WebSocket
Instalación en Ubuntu 24.04
Nuclei v3 se instala con
go install. Primero necesitas Go disponible en el sistema — la forma más sencilla en Ubuntu es via Snap.0
Instalar Go (via Snap)
sudo snap install go --classic — el flag --classic es necesario para que Go tenga acceso completo al sistema de archivos.1
Compilar e instalar Nuclei
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest — descarga dependencias y compila el binario. Espera a que vuelvas a ver el prompt antes de continuar.2
Verificar que el binario existe
ls ~/go/bin/nuclei — si devuelve la ruta en verde (o sin error), el binario está listo. Si la carpeta está vacía, ejecuta go env GOPATH para localizar la ruta real.3
Añadir Go/bin al PATH
echo 'export PATH=$PATH:$HOME/go/bin' >> ~/.bashrc y luego source ~/.bashrc para que el cambio sea permanente en todas las sesiones.4
Verificar la instalación
nuclei -version — debe mostrar Nuclei v3.x.x. Si el comando no se encuentra, comprueba el PATH con el paso anterior.bash — instalación completa paso a paso
# Paso 0: Instalar Go con Snap
sudo snap install go --classic
# Paso 1: Compilar e instalar Nuclei v3
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# Paso 2: Verificar binario
ls ~/go/bin/nuclei
# Paso 3: Añadir al PATH de forma permanente
echo 'export PATH=$PATH:$HOME/go/bin' >> ~/.bashrc
source ~/.bashrc
# Paso 4: Prueba final
nuclei -version
Diagnóstico de PATH — Si el Binario No Aparece
Si
~/go/bin/nuclei no existe tras la instalación, puede que Snap esté usando una ruta de GOPATH diferente.
problema
Snap de Go puede instalar los binarios en una ruta distinta a
~/go/bin/. El comando go install respeta la variable GOPATH, que puede diferir.
solución
Ejecuta
go env GOPATH para ver la ruta real. El binario estará en <GOPATH>/bin/nuclei. Añade esa ruta al PATH.
bash — localizar GOPATH dinámicamente
# Ver dónde Go guarda los binarios instalados
go env GOPATH
# Ejemplo de salida: /home/atu/go
# Añadir la ruta correcta al PATH
echo "export PATH=\$PATH:\$(go env GOPATH)/bin" >> ~/.bashrc
source ~/.bashrc
# Verificar
nuclei -version
Actualizar Plantillas — Paso Obligatorio
Nuclei sin plantillas no detecta nada. El primer uso siempre debe ser
nuclei -ut para descargar miles de reglas de la comunidad.bash
# Descargar/actualizar todas las plantillas de la comunidad
nuclei -ut
# Las plantillas se guardan en: ~/.local/nuclei-templates/
# Contiene miles de reglas: CVEs, exposures, misconfigurations, etc.
✅ Buena práctica: Ejecuta
nuclei -ut regularmente para tener siempre las plantillas más recientes. La comunidad añade nuevas detecciones cada día, especialmente para CVEs recientes.Las plantillas se organizan en categorías dentro de ~/.local/nuclei-templates/: cves/, exposures/, misconfiguration/, network/detection/, technologies/, vulnerabilities/ y más.
Sintaxis Básica
El uso fundamental de Nuclei es muy sencillo: objetivo (
-u o -list) + filtros opcionales de plantillas, severidad o etiquetas.| Comando | Qué hace |
|---|---|
| nuclei -u http://objetivo.com | Escaneo completo de un objetivo usando todas las plantillas disponibles. |
| nuclei -list objetivos.txt | Escanea una lista de objetivos guardados en un archivo .txt (uno por línea). |
| nuclei -u URL -t exposures/ | Usa solo un grupo específico de plantillas (carpeta o archivo YAML). |
| nuclei -u URL -severity critical,high | Filtra para buscar solo vulnerabilidades de severidad critical o high. |
| nuclei -u URL -tags wp-plugin | Solo plantillas etiquetadas con wp-plugin — ideal para WordPress. |
| nuclei -u URL -o resultados.txt | Guarda todos los hallazgos en un archivo de texto para auditoría. |
| nuclei -version | Muestra la versión instalada. Confirma que el binario es accesible. |
| nuclei -ut | Actualiza todas las plantillas de la comunidad a la última versión. |
bash — ejemplos de uso básico
# Escaneo básico (usa TODAS las plantillas — puede ser lento)
nuclei -u http://objetivo.com
# Escanear lista de hosts
nuclei -list hosts.txt
# Solo plantillas de exposición de datos
nuclei -u http://objetivo.com -t exposures/
# Solo vulnerabilidades críticas y altas
nuclei -u http://objetivo.com -severity critical,high
# Guardar resultados en archivo
nuclei -u http://172.26.0.143 -o resultados_escaneo.txt
Niveles de Severidad
Nuclei clasifica cada hallazgo por severidad. En auditorías reales, empieza siempre por critical y high.
critical
RCE, SQLi, auth bypass — acción inmediata
high
XSS, SSRF, IDOR — acción prioritaria
medium
Misconfigurations, info leaks
low
Versiones expuestas, headers faltantes
info
Detección de tecnología, fingerprinting
bash — filtrar por severidad
# Solo vulnerabilidades críticas
nuclei -u http://objetivo.com -severity critical
# Críticas y altas juntas
nuclei -u http://objetivo.com -severity critical,high
# Guardar solo hallazgos críticos
nuclei -u http://objetivo.com -severity critical -o criticos.txt
Escenarios de Laboratorio
Práctica real con entorno Ubuntu + Kali. Detecta tecnologías, busca archivos expuestos y escanea tu servidor local.
🔭 Detección de Tecnologías (muy rápido)
Detecta qué software corre en el objetivo: versiones de servidor, frameworks, CMS detectados. Usa solo las plantillas de
network/detection.
nuclei -u http://172.26.0.192 -t network/detection
📂 Fuzzing y Archivos Expuestos
Busca archivos de configuración expuestos, directorios sensibles y credenciales. Ideal si tienes un servidor web activo en el laboratorio.
nuclei -u http://localhost:8000 -tags config,exposure
🔴 WordPress — Plugins Vulnerables
Si el objetivo tiene WordPress, el tag
wp-plugin activa cientos de plantillas específicas para plugins con CVEs conocidos.
nuclei -u https://es.wordpress.org/ -tags wp-plugin
bash — escenarios de laboratorio Ubuntu/Kali
# 1. Detección de tecnologías en la red del lab
nuclei -u http://172.26.0.192 -t network/detection
# 2. Buscar archivos expuestos en servidor local
nuclei -u http://localhost:8000 -tags config,exposure
# 3. Escaneo WordPress completo
nuclei -u http://objetivo-wp.local -tags wp-plugin
# 4. Escaneo completo guardando resultados
nuclei -u http://172.26.0.143 -o resultados_escaneo.txt
Guardar Resultados
En cualquier auditoría de seguridad, los hallazgos deben documentarse. Nuclei ofrece varios formatos de salida.
bash — guardar y filtrar resultados
# Guardar en texto plano
nuclei -u http://objetivo.com -o resultados.txt
# Guardar en JSON (más fácil de procesar con scripts)
nuclei -u http://objetivo.com -json-export resultados.json
# Solo críticos y altos → guardar en archivo
nuclei -u http://objetivo.com -severity critical,high -o auditoria.txt
# Escanear lista y guardar
nuclei -list hosts.txt -severity critical,high -o hallazgos.txt
Integraciones
Nuclei se integra de forma nativa con las plataformas más comunes de DevSecOps para automatizar la detección en pipelines CI/CD.
🐛 Jira
📊 Splunk
🐙 GitHub
🔍 Elastic
🦊 GitLab
⚙️ CI/CD
ℹ️ CI/CD: Nuclei puede integrarse en pipelines de GitHub Actions, GitLab CI o Jenkins para ejecutar escaneos automáticos en cada pull request o despliegue — detectando vulnerabilidades antes de llegar a producción.
bash — flujo de trabajo completo de auditoría
# 1. Actualizar plantillas
nuclei -ut
# 2. Reconocimiento: detectar tecnologías
nuclei -u http://objetivo.com -t technologies/ -o tech_detect.txt
# 3. Buscar vulnerabilidades críticas y altas
nuclei -u http://objetivo.com -severity critical,high -o vulns_criticas.txt
# 4. Buscar archivos y configuraciones expuestas
nuclei -u http://objetivo.com -tags exposure,config,misconfig -o exposures.txt
# 5. CVEs específicos del stack detectado
nuclei -u http://objetivo.com -tags cve,wp-plugin -o cves.txt
⚠️ Uso ético: Nuclei es una herramienta de seguridad ofensiva. Úsala únicamente en sistemas sobre los que tengas autorización explícita — tu propio laboratorio, máquinas de CTF o entornos con contrato de auditoría. Escanear sistemas ajenos sin permiso es ilegal.