
Templates nuclei da edição comunitária, uma ferramenta simples que permite organizar todos os templates Nuclei oferecidos pela comunidade em um só lugar.

Templates nuclei da edição comunitária, uma ferramenta simples que permite organizar todos os templates do Nuclei oferecidos pela comunidade em um só lugar.
go install -v github.com/xm1k3/cent/v2@latest
após a instalação, execute cent init para inicializar o cent com os arquivos de configuração que você encontra
| Comando | Descrição |
|---|---|
| check | Verifica se os repositórios de templates ainda estão disponíveis |
| init | Inicializa o arquivo de configuração do Cent |
| summary | Exibe um resumo detalhado dos templates nuclei |
| update | Atualiza seu repositório |
| validate | Valida templates; se o template for inválido, ele é excluído da pasta |
| version | Exibe a versão do 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
Clone e insira todos os templates da comunidade na pasta cent-nuclei-templates
cent -p cent-nuclei-templates
Exemplo de saída:
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
Use a flag -k para manter a estrutura interna de pastas de cada repositório:
cent -p cent-nuclei-templates -k
Isso criará uma estrutura de pastas como:
cent-nuclei-templates/
cves/
CVE-2021-1234.yaml
vulnerabilities/
template.yaml
others/
uncategorized-template.yaml
Templates sem uma subpasta em seu repositório de origem são colocados em others/.
Use -k -r para também agrupar os templates pelo repositório de origem:
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
O comando summary fornece estatísticas detalhadas sobre sua coleção de templates 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"
}
Se você atualizou o arquivo cent.yaml adicionando novas pastas
exclude-dirs:
- ...
- dns
- ...
basta executar:
cent update -p cent-nuclei-templates -d
e o cent excluirá automaticamente todas as pastas dns presentes em cent-nuclei-templates sem clonar todos os repositórios do GitHub.
Exemplo de saída:
[D][-] Dir removed cent-nuclei-templates/dns
[D][-] Dir removed cent-nuclei-templates/dns/subdomain
O mesmo acontece com 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
Depois que o cent estiver configurado corretamente, você pode realizar uma varredura com o Nuclei.
Exemplo
nuclei -u https://example.com -t ./cent-nuclei-templates -tags cve
nuclei -l urls.txt -t ./cent-nuclei-templates -tags cve
Consulte aqui para obter mais documentação sobre o Nuclei
Você precisa configurar os parâmetros do cent em .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 os formatos podem ser misturados no mesmo arquivo de configuração. Quando commit é especificado, o cent clonará o repositório completo e fará checkout desse commit específico em vez de usar um clone raso. O exclude por repositório filtra os caminhos correspondentes desse repositório específico.
Isenção de responsabilidade: O desenvolvedor desta ferramenta não é responsável pela forma como a comunidade utiliza os templates de código aberto coletados nela. Esses templates não foram validados pela Project Discovery e são fornecidos como estão.
O Cent é distribuído sob a licença Apache-2.0