
Community edition nuclei templates、コミュニティが提供するすべてのNucleiテンプレートを一箇所に整理できるシンプルなツールです。

コミュニティ版のNucleiテンプレート。コミュニティが提供するすべてのNucleiテンプレートを1つの場所に整理できるシンプルなツールです。
go install -v github.com/xm1k3/cent/v2@latest
またはリリースからダウンロード
インストール後、cent init を実行して、こちら にある設定ファイルでcentを初期化してください。
| Command | Description |
|---|---|
| check | テンプレートリポジトリがまだ利用可能かどうかを確認します |
| init | cent設定ファイルを初期化します |
| summary | nucleiテンプレートの詳細なサマリーを表示します |
| update | リポジトリを更新します |
| validate | テンプレートを検証し、無効なテンプレートはフォルダから削除します |
| version | 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
すべてのコミュニティテンプレートをクローンし、cent-nuclei-templates フォルダに格納します。
cent -p cent-nuclei-templates
出力例:
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
各リポジトリの内部フォルダ構造を保持するには、-k フラグを使用します:
cent -p cent-nuclei-templates -k
これにより、次のようなフォルダ構造が作成されます:
cent-nuclei-templates/
cves/
CVE-2021-1234.yaml
vulnerabilities/
template.yaml
others/
uncategorized-template.yaml
ソースリポジトリにサブフォルダがないテンプレートは、others/ に配置されます。
テンプレートをソースリポジトリごとにグループ化するには、-k -r を使用します:
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
summary コマンドは、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"
}
cent.yaml ファイルを更新して新しいフォルダを追加した場合
exclude-dirs:
- ...
- dns
- ...
次のように実行するだけです:
cent update -p cent-nuclei-templates -d
すると、cent はすべてのGitHubリポジトリをクローンすることなく、cent-nuclei-templates 内に存在するすべての dns フォルダを自動的に削除します。
出力例:
[D][-] Dir removed cent-nuclei-templates/dns
[D][-] Dir removed cent-nuclei-templates/dns/subdomain
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
centが正しく設定されると、Nucleiでスキャンを実行できます。
例
nuclei -u https://example.com -t ./cent-nuclei-templates -tags cve
nuclei -l urls.txt -t ./cent-nuclei-templates -tags cve
Nucleiの詳細なドキュメントについては、こちら を参照してください。
.config/cent/.cent.yaml で cent のパラメータを設定する必要があります。
# 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/"
両方の形式は同じ設定ファイル内で混在させることができます。commit を指定すると、centはシャロークローンを使用せず、リポジトリ全体をクローンしてその特定のコミットをチェックアウトします。リポジトリごとの exclude は、その特定のリポジトリから一致するパスを除外します。
免責事項:このツールの開発者は、コミュニティがこのツール内に収集されたオープンソーステンプレートをどのように使用するかについて責任を負いません。これらのテンプレートはProject Discoveryによって検証されておらず、現状のまま提供されています。
CentはApache-2.0ライセンスの下で配布されています。