Entrada

Nuclei

Nuclei

Nuclei

Parece que este escaner se está convirtiendo en uno de los más usados por los investigadores de ciberseguridad, pentesters y actores maliciosos. Su potencia parece residir en la capacidad de crear plantillas customizadas para identificar vulnerabilidades web de todo tipo. Soporta intregaciones con otras herramientas de ciberseguridad y es altamente configurable. Además es opensource, el repositorio lo puede encontrar en network-scanners. Está escrito en Go.

Nuclei en Docker

Para no complicarme con la instalación decidí probarlo usando Docker. Un cliente me pidio que realizase una auditoría sobre uno de sus sitios web, he cambiado el dominio por sitioescaneado.red para no exponer información confindencial y me ha dado su permisos para mostrar los pocos resultados que tuve, dado que solo es una aplicación web y la tiene destrás de Cloudflare, que como ya imaginarás, impide la acción de bots si está bien configurado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
root@office ~# docker run projectdiscovery/nuclei:latest -u https://sitioescaneado.red                     __     _
   ____  __  _______/ /__  (_)
  / __ \/ / / / ___/ / _ \/ /
 / / / / /_/ / /__/ /  __/ /
/_/ /_/\__,_/\___/_/\___/_/   v3.4.7

		projectdiscovery.io

[INF] nuclei-templates are not installed, installing...
[INF] Successfully installed nuclei-templates at /root/nuclei-templates
[WRN] Found 1 templates with syntax error (use -validate flag for further examination)
[WRN] Found 9 templates with runtime error (use -validate flag for further examination)
[INF] Current nuclei version: v3.4.7 (latest)
[INF] Current nuclei-templates version: v10.2.7 (latest)
[WRN] Scan results upload to cloud is disabled.
[INF] New templates added in latest release: 55
[INF] Templates loaded for current scan: 8263
[INF] Executing 8060 signed templates from projectdiscovery/nuclei-templates
[WRN] Loading 203 unsigned templates for scan. Use with caution.
[INF] Targets loaded for current scan: 1
[INF] Templates clustered: 1777 (Reduced 1671 Requests)
[dns-waf-detect:cloudflare] [dns] [info] sitioescaneado.red
[INF] Using Interactsh Server: oast.online
[waf-detect:cloudflare] [http] [info] https://sitioescaneado.red
[tls-version] [ssl] [info] sitioescaneado.red:443 ["tls13"]
[robots-txt] [http] [info] https://sitioescaneado.red/robots.txt
[form-detection] [http] [info] https://sitioescaneado.red/Identity/Account/Login?ReturnUrl=%2F
[robots-txt-endpoint] [http] [info] https://sitioescaneado.red/robots.txt
[xss-deprecated-header] [http] [info] https://sitioescaneado.red ["1; mode=block"]
[tech-detect:bootstrap] [http] [info] https://sitioescaneado.red/Identity/Account/Login?ReturnUrl=%2F
[tech-detect:cloudflare] [http] [info] https://sitioescaneado.red/Identity/Account/Login?ReturnUrl=%2F
[tech-detect:cloudflare] [http] [info] https://sitioescaneado.red
[rdap-whois:registrationDate] [http] [info] https://rdap.identitydigital.services/rdap/domain/sitioescaneado.red ["2025-07-03T23:32:20.831Z"]
[rdap-whois:lastChangeDate] [http] [info] https://rdap.identitydigital.services/rdap/domain/sitioescaneado.red ["2025-07-31T09:38:51.757Z"]
[rdap-whois:expirationDate] [http] [info] https://rdap.identitydigital.services/rdap/domain/sitioescaneado.red ["2026-07-03T23:32:20.831Z"]
[rdap-whois:nameServers] [http] [info] https://rdap.identitydigital.services/rdap/domain/sitioescaneado.red ["rita.ns.cloudflare.com","rodney.ns.cloudflare.com"]
[rdap-whois:secureDNS] [http] [info] https://rdap.identitydigital.services/rdap/domain/sitioescaneado.red ["false"]
[rdap-whois:status] [http] [info] https://rdap.identitydigital.services/rdap/domain/sitioescaneado.red ["client transfer prohibited"]
[caa-fingerprint] [dns] [info] sitioescaneado.red
[nameserver-fingerprint] [dns] [info] sitioescaneado.red ["rita.ns.cloudflare.com.","rodney.ns.cloudflare.com."]
[http-missing-security-headers:cross-origin-resource-policy] [http] [info] https://sitioescaneado.red/Identity/Account/Login?ReturnUrl=%2F
[http-missing-security-headers:permissions-policy] [http] [info] https://sitioescaneado.red/Identity/Account/Login?ReturnUrl=%2F
[http-missing-security-headers:x-permitted-cross-domain-policies] [http] [info] https://sitioescaneado.red/Identity/Account/Login?ReturnUrl=%2F
[http-missing-security-headers:clear-site-data] [http] [info] https://sitioescaneado.red/Identity/Account/Login?ReturnUrl=%2F
[http-missing-security-headers:cross-origin-embedder-policy] [http] [info] https://sitioescaneado.red/Identity/Account/Login?ReturnUrl=%2F
[http-missing-security-headers:cross-origin-opener-policy] [http] [info] https://sitioescaneado.red/Identity/Account/Login?ReturnUrl=%2F
[ssl-issuer] [ssl] [info] sitioescaneado.red:443 ["Google Trust Services"]
[ssl-dns-names] [ssl] [info] sitioescaneado.red:443 ["sitioescaneado.red","*.sitioescaneado.red"]
[wildcard-tls] [ssl] [info] sitioescaneado.red:443 ["CN: sitioescaneado.red","SAN: [sitioescaneado.red *.sitioescaneado.red]"]
[INF] Scan completed in 7m. 27 matches found.

Podemos usar nuclei epecificando un Template, esto es casi mandatorio por dos motivos principalmente, uno para no generar demasiado ruido y dos para optimizar la búsqueda de vulnerabilidades.

1
2
3
docker run projectdiscovery/nuclei:latest -timeout 5 \
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)AppleWebKit/537.36 (KHTML, >
-rl 5 --proxy http://192.168.2.13:8118 -t cves -v -u htps://sitioescaneado.red

Como casi cualquier herramienta que realiza peticiones a terceros tenemos opciones para limitar el escaneo y optimizarlo

Algunos flags básicos de optimización:

  • -rl 20 Número peticiones por segundo
  • -timeout 5 Por defecto es 10
  • -c 5 Número de hilos/threads
  • -H ‘User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36’ Cabeceras/Headers En este caso el user agent.
  • t Usar un template
  • tags Filtro basado en el campo de etiquetas disponible en la plantilla

Nuclei Templates Top 10 statistics

TAGCOUNTAUTHORCOUNTDIRECTORYCOUNTSEVERITYCOUNTTYPECOUNT
cve3288dhiyaneshdk1882http8967info4190file435
panel1342daffainfo868cloud657high2446dns26
xss1257princechaddha854file435medium2379  
wordpress1181dwisiswant0806dast255critical1425  
exposure1107ritikchaddha649workflows202low318  
wp-plugin1032pussycat0x532code198unknown56  
osint841pikpikcu352network145    
tech803pdteam310javascript71    
rce786pdresearch269ssl38    
lfi777iamnoooob257dns23    

En esta tabla tienes las estadísticas de los templates más utilizados

Conclusiones

Hay una versión pro y otra Enterprise, supongo que de pago que prometen más integraciones, Webhooks, más velocidad, etc. Muchos de los reportes que me ha proporcionado, no difieren mucho de los que puede proporciona el escaner de Zap u otras herramientas automáticas. Las herramientas automáticas pueden ser un punto de inicio para escarbar pero soy de los que opina que no puedes dejar el trabajo automatizado y confiar que todo sea perfecto. Especialmente en cuestiones como:

  • Falsos positivos -> Te hará perder tiempo, la vulnerabilidad parece presente, pero en realidad tras realizar las acciones pertinentes se revelea como negativo.
  • Falsos negativos -> Podría significar una falla grave en la seguridad además obviamente de la detección. Una vulnerabilidad Zero-Day se clasifica dentro de esta categoría.

Una herramienta que se puede considerar top para la edad que tiene este software, pero siempre hay que pensar que es una herramienta que puede descubrir cosas que el auditor haya pasado por alto pero no para hacer la auditoría. Para tener resultados adecuados creo que es mejor crear una plantilla dirigida a la web que se quiera auditar.

Esta entrada está licenciada bajo CC BY 4.0 por el autor.