
Plantillas de Nuclei de la edición comunitaria, una herramienta sencilla que te permite organizar todas las plantillas de Nuclei que ofrece la comunidad en un solo lugar.

Plantillas Nuclei de la edición comunitaria, una herramienta sencilla que te permite organizar todas las plantillas Nuclei ofrecidas por la comunidad en un solo lugar.
go install -v github.com/xm1k3/cent/v2@latest
Después de la instalación ejecuta cent init para inicializar cent con los archivos de configuración que encuentras
| Command | Description |
|---|---|
| check | Comprueba si los repositorios de plantillas siguen disponibles |
| init | Inicializa el archivo de configuración de Cent |
| summary | Imprime un resumen detallado de las plantillas de Nuclei |
| update | Actualiza tu repositorio |
| validate | Valida plantillas; si la plantilla no es válida, se elimina de la carpeta |
| version | Imprime la versión de cent |
Flags:
--config string config file (default is .config/cent/.cent.yaml)
-r, --by-repo Group templates by repository (use with -k)
-C, --console Print console output
-k, --keep-folders Keep templates organized in folders by category
-p, --path string Root path to save the templates (default "cent-nuclei-templates")
-t, --threads int Number of threads to use when cloning repositories (default 10)
-T, --timeout int Timeout in minutes for each git clone (default 2)
cent -h
cent check -h
cent init -h
cent update -h
cent summary -h
cent validate -h
cent version
Clona e inserta todas las plantillas de la comunidad en la carpeta cent-nuclei-templates
cent -p cent-nuclei-templates
Ejemplo de salida:
cent started
[CLONED] https://github.com/projectdiscovery/nuclei-templates
[CLONED] https://github.com/0xSojalSec/nuclei-templates-4
[CLONED] https://github.com/0xPugazh/my-nuclei-templates
[CLONED] https://github.com/0xSojalSec/my-nuclei-templates-1
[CLONED] https://github.com/0x727/ObserverWard
[CLONED] https://github.com/0xAwali/Blind-SSRF
[CLONED] https://github.com/0x727/ObserverWard_0x727
[CLONED] https://github.com/0xAwali/Virtual-Host
[CLONED] https://github.com/0xSojalSec/Nuclei-Templates-API-Linkfinder
...
...
...
cent finished, you can find all your nuclei-templates in cent-nuclei-templates
Usa la opción -k para mantener la estructura de carpetas interna de cada repositorio:
cent -p cent-nuclei-templates -k
Esto creará una estructura de carpetas como:
cent-nuclei-templates/
cves/
CVE-2021-1234.yaml
vulnerabilities/
template.yaml
others/
uncategorized-template.yaml
Las plantillas que no tengan una subcarpeta en su repositorio de origen se colocarán en others/.
Usa -k -r para agrupar también las plantillas por su repositorio de origen:
cent -p cent-nuclei-templates -k -r
cent-nuclei-templates/
projectdiscovery/nuclei-templates/
cves/
CVE-2021-1234.yaml
vulnerabilities/
template.yaml
user/repo-name/
others/
custom-template.yaml
El comando summary proporciona estadísticas detalladas sobre tu colección de plantillas de Nuclei:
# Display summary in table format
cent summary
# Display summary in JSON format
cent summary --json
# Limit number of tags displayed (default: 25)
cent summary --limit 10
# Search for specific data in summary
cent summary --search cve
cent summary --search wordpress
cent summary --search critical
# Update summary data
cent summary update
# Update with custom path
cent summary update -p /path/to/templates
=== NUCLEI TEMPLATES SUMMARY ===
+-------------------+-------+
| METRIC | COUNT |
+-------------------+-------+
| Total Templates | 3249 |
| CVE Templates | 3821 |
| Invalid Templates | 1 |
| Valid Templates | 3248 |
+-------------------+-------+
=== SEVERITY DISTRIBUTION ===
+----------+-------+
| SEVERITY | COUNT |
+----------+-------+
| CRITICAL | 582 |
| HIGH | 877 |
| MEDIUM | 877 |
| LOW | 63 |
| INFO | 744 |
+----------+-------+
=== TOP TAGS ===
+---------------+-------+
| TAG | COUNT |
+---------------+-------+
| cve | 1909 |
| xss | 569 |
| wordpress | 487 |
| lfi | 459 |
| wp-plugin | 450 |
+---------------+-------+
{
"metrics": {
"total_templates": 3249,
"cve_templates": 3821,
"invalid_templates": 1,
"valid_templates": 3248
},
"severity_distribution": {
"CRITICAL": 582,
"HIGH": 877,
"MEDIUM": 877,
"LOW": 63,
"INFO": 744
},
"tags": {
"cve": 1909,
"xss": 569,
"wordpress": 487
},
"last_updated": "2024-01-15 14:30:25"
}
Si has actualizado el archivo cent.yaml añadiendo nuevas carpetas
exclude-dirs:
- ...
- dns
- ...
solo ejecuta:
cent update -p cent-nuclei-templates -d
y cent eliminará automáticamente todas las carpetas dns presentes en cent-nuclei-templates sin clonar todos los repositorios de GitHub.
Ejemplo de salida:
[D][-] Dir removed cent-nuclei-templates/dns
[D][-] Dir removed cent-nuclei-templates/dns/subdomain
Lo mismo con exclude-files
cent update -p cent-nuclei-templates -f
# Initialize with default configuration
cent init
# Initialize with custom URL
cent init --url https://example.com/config.yaml
# Overwrite existing configuration
cent init --overwrite
# Check if configuration file exists
cent init check
# Check if all template repositories are accessible
cent check
# Remove inaccessible repositories from config
cent check --remove
Una vez que cent se haya configurado correctamente, puedes realizar un escaneo con Nuclei.
Ejemplo
nuclei -u https://example.com -t ./cent-nuclei-templates -tags cve
nuclei -l urls.txt -t ./cent-nuclei-templates -tags cve
Consulta aquí para obtener más documentación sobre Nuclei
Debes configurar los parámetros de cent en .config/cent/.cent.yaml
# Directories to exclude
exclude-dirs:
- .git
# Files to exclude
exclude-files:
- README.md
- .gitignore
- .pre-commit-config.yaml
- LICENSE
# Add github urls (simple format)
community-templates:
- https://github.com/projectdiscovery/nuclei-templates
- https://github.com/other/repo
# Extended format: pin a repo to a specific commit
- url: https://github.com/user/repo
commit: abc123f
# Extended format: per-repo exclude
- url: https://github.com/user/repo2
exclude:
- "workflows/"
- "fuzzing/"
Ambos formatos se pueden combinar en el mismo archivo de configuración. Cuando se especifica commit, cent clonará el repositorio completo y hará checkout de ese commit específico en lugar de usar un clon superficial. El exclude por repositorio filtra las rutas coincidentes de ese repositorio específico.
Descargo de responsabilidad: El desarrollador de esta herramienta no es responsable de cómo la comunidad utiliza las plantillas de código abierto recopiladas en ella. Estas plantillas no han sido validadas por Project Discovery y se proporcionan tal cual.
Cent se distribuye bajo la Licencia Apache-2.0