├── .gitattributes
├── AllForOne.py
├── LICENSE
├── PleaseUpdateMe.txt
├── README.md
└── requirements.txt
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/AllForOne.py:
--------------------------------------------------------------------------------
1 | import os
2 | import subprocess
3 | import shutil
4 | import time
5 | import requests
6 | from tqdm import tqdm
7 | from concurrent.futures import ThreadPoolExecutor, wait
8 | import glob
9 | from tabulate import tabulate
10 |
11 |
12 | print("\033[91m\033[93m ,-. _,---._ __ / \ _ _ _ ___ ___ ")
13 | print(r" / ) .-' `./ / \ /_\ | | | / __\__ _ __ /___\_ __ ___ ")
14 | print(r"( ( ,' `/ /| //_\\| | | / _\/ _ \| '__| // // '_ \ / _ \ ")
15 | print(r' \ `-" \ \ / | / _ \ | | / / | (_) | | / \_//| | | | __/ ')
16 | print(r" `. , \ \ / | \_/ \_/_|_| \/ \___/|_| \___/ |_| |_|\___| ")
17 | print(r" /`. ,'-`----Y | ")
18 | print(r" ( ; | ' ")
19 | print(r" | ,-. ,-' Git-HUB | / Nuclei Template Collector ")
20 | print(r" | | ( | BoX | / - AggressiveUser ")
21 | print(r" ) | \ `.___________|/ ")
22 | print(" `--' `--' \033[0m")
23 |
24 | def git_clone(url, destination):
25 | env = os.environ.copy()
26 | env['GIT_TERMINAL_PROMPT'] = '0'
27 | result = subprocess.run(['git', 'clone', url, destination], stdout=subprocess.DEVNULL, stderr=subprocess.PIPE, env=env)
28 | return result.returncode, result.stderr.decode().strip()
29 |
30 | def generate_destination_folder(url):
31 | folder_name = os.path.basename(url.rstrip('.git'))
32 | counter = 1
33 | while os.path.exists(os.path.join('TRASH', folder_name)):
34 | folder_name = f"{os.path.basename(url.rstrip('.git'))}_{counter}"
35 | counter += 1
36 | return folder_name
37 |
38 | def clone_repository(repo):
39 | destination = generate_destination_folder(repo)
40 | return_code, error_msg = git_clone(repo, os.path.join('TRASH', destination))
41 | if return_code != 0 or 'Username for' in error_msg:
42 | return repo
43 | return None
44 |
45 | def clone_repositories(file_url):
46 | response = requests.get(file_url)
47 | if response.status_code == 200:
48 | repositories = response.text.strip().split('\n')
49 | else:
50 | print('Failed to retrieve Repo List from the server.')
51 | return
52 |
53 | total_repos = len(repositories)
54 |
55 | os.makedirs('TRASH', exist_ok=True)
56 |
57 | failed_repos = []
58 |
59 | with ThreadPoolExecutor(max_workers=6) as executor:
60 | futures = [executor.submit(clone_repository, repo) for repo in repositories]
61 |
62 | with tqdm(total=total_repos, unit='repo', desc='Cloning repositories', ncols=80) as progress_bar:
63 | completed = 0
64 | while completed < total_repos:
65 | done, _ = wait(futures, return_when='FIRST_COMPLETED')
66 | completed += len(done)
67 | for future in done:
68 | failed_repo = future.result()
69 | if failed_repo:
70 | failed_repos.append(failed_repo)
71 | progress_bar.update(1)
72 | progress = progress_bar.n / total_repos * 100
73 | progress_bar.set_postfix({'Progress': f'{progress:.2f}%'})
74 | futures = [future for future in futures if not future.done()]
75 |
76 | progress_bar.close()
77 |
78 | print('Cloning process complete!\n')
79 |
80 | if failed_repos:
81 | print("\033[91mFailed to clone the following repositories:\033[0m")
82 | for repo in failed_repos:
83 | print(repo)
84 |
85 | template_folder = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Templates')
86 | os.makedirs(template_folder, exist_ok=True)
87 |
88 | for root, dirs, files in os.walk('TRASH'):
89 | for file in files:
90 | if file.endswith('.yaml'):
91 | source_path = os.path.join(root, file)
92 | cve_year = extract_cve_year(file)
93 | if cve_year:
94 | destination_folder = os.path.join(template_folder, f"CVE-{cve_year}")
95 | else:
96 | destination_folder = os.path.join(template_folder, "Vulnerability-Templates")
97 | os.makedirs(destination_folder, exist_ok=True)
98 | destination_path = os.path.join(destination_folder, file)
99 | shutil.copy2(source_path, destination_path)
100 | print('\nRemoving caches and temporary files.\n')
101 | shutil.rmtree('TRASH')
102 | time.sleep(2)
103 |
104 |
105 | def extract_cve_year(file_name):
106 | if file_name.startswith('CVE-') and file_name[4:8].isdigit():
107 | return file_name[4:8]
108 | return None
109 |
110 | def count_yaml_files(folder):
111 | count = 0
112 | for root, dirs, files in os.walk(folder):
113 | for file in files:
114 | if file.endswith('.yaml'):
115 | count += 1
116 | return count
117 |
118 |
119 | def summarize_templates():
120 |
121 | cve_folders = glob.glob(os.path.join(template_folder, 'CVE-*'))
122 | cve_yaml_count = 0
123 | for folder in cve_folders:
124 | cve_yaml_count += count_yaml_files(folder)
125 |
126 | vulnerability_templates_folder = os.path.join(template_folder, 'Vulnerability-Templates')
127 | vulnerability_yaml_count = count_yaml_files(vulnerability_templates_folder)
128 |
129 | total_yaml_count = cve_yaml_count + vulnerability_yaml_count
130 |
131 | data = [
132 | ["CVE Templates", cve_yaml_count],
133 | ["Other Vulnerability Templates", vulnerability_yaml_count],
134 | ["Total Templates", total_yaml_count]
135 | ]
136 |
137 | headers = ["Templates Type", "Templates Count"]
138 |
139 | table = tabulate(data, headers, tablefmt="fancy_grid")
140 |
141 | print(table)
142 |
143 |
144 | file_url = 'https://raw.githubusercontent.com/AggressiveUser/AllForOne/main/PleaseUpdateMe.txt'
145 |
146 | clone_repositories(file_url)
147 |
148 | template_folder = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Templates')
149 |
150 | summarize_templates()
151 |
152 | #Intro
153 | print('\033[91m\033[93mPlease show your support by giving star to my GitHub repository "AllForOne".')
154 | print('GITHUB: https://github.com/AggressiveUser/AllForOne\033[0m')
155 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 AggressiveUser
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/PleaseUpdateMe.txt:
--------------------------------------------------------------------------------
1 | https://github.com/pikpikcu/my-nuclei-templates
2 | https://github.com/SirBugs/Priv8-Nuclei-Templates
3 | https://github.com/projectdiscovery/nuclei-templates
4 | https://github.com/Linuxinet/mobile-nuclei-templates
5 | https://github.com/0xPugazh/my-nuclei-templates
6 | https://github.com/boobooHQ/private_templates
7 | https://github.com/thelabda/labdanuclei
8 | https://github.com/thelabda/nuclei-templates
9 | https://github.com/mosesrenegade/nuclei-templates
10 | https://github.com/kh4sh3i/nuclei-templates
11 | https://github.com/projectdiscovery/fuzzing-templates
12 | https://github.com/PedroF-369/nuclei_templates
13 | https://github.com/0x727/ObserverWard
14 | https://github.com/wr00t/templates
15 | https://github.com/b4dboy17/badboy_17-Nuclei-Templates-Collection
16 | https://github.com/0xSojalSec/nuclei-templates-websphere-portal-preauth-ssrf
17 | https://github.com/0xSojalSec/Nuclei-TemplatesNuclei-Templates-CVE-2017-17736
18 | https://github.com/0xSojalSec/kenzer-templates
19 | https://github.com/0xSojalSec/my-nuclei-templates-1
20 | https://github.com/0xSojalSec/nuclei-templates-5
21 | https://github.com/0xSojalSec/nuclei-templates-4
22 | https://github.com/0xSojalSec/templatesallnuclei
23 | https://github.com/0xSojalSec/Nuclei-Templates-Collection
24 | https://github.com/0xSojalSec/templates-nuclei-Oracle-OAM---XSS
25 | https://github.com/0xSojalSec/Nuclei-Templates-API-Linkfinder
26 | https://github.com/0xSojalSec/nuclei_templates-SymfonyRCE
27 | https://github.com/pdelteil/BugBountyReportTemplates
28 | https://github.com/0XParthJ/Nuclei-Templates
29 | https://github.com/0x727/ObserverWard_0x727
30 | https://github.com/0xAwali/Virtual-Host
31 | https://github.com/0xmaximus/final_freaking_nuclei_templates
32 | https://github.com/1dayluo/My-Nuclei-Templates
33 | https://github.com/1in9e/my-nuclei-templates
34 | https://github.com/5cr1pt/templates
35 | https://github.com/ARPSyndicate/kenzer-templates
36 | https://github.com/Akokonunes/Private-Nuclei-Templates
37 | https://github.com/Arvinthksrct/alltemplate
38 | https://github.com/AshiqurEmon/nuclei_templates
39 | https://github.com/CharanRayudu/Custom-Nuclei-Templates
40 | https://github.com/DoubleTakes/nuclei-templates
41 | https://github.com/Elsfa7-110/mynuclei-templates
42 | https://github.com/ExpLangcn/NucleiTP
43 | https://github.com/Harish4948/Nuclei-Templates
44 | https://github.com/Hunt2behunter/nuclei-templates
45 | https://github.com/Jagomeiister/nuclei-templates
46 | https://github.com/JoshMorrison99/url-based-nuclei-templates
47 | https://github.com/Kaue-Navarro/Templates-kaue-nuclei
48 | https://github.com/KeepHowling/all_freaking_nuclei_templates
49 | https://github.com/Lopseg/nuclei-c-templates
50 | https://github.com/MR-pentestGuy/nuclei-templates
51 | https://github.com/NightRang3r/misc_nuclei_templates
52 | https://github.com/NitinYadav00/My-Nuclei-Templates
53 | https://github.com/Odayex/Random-Nuclei-Templates
54 | https://github.com/PedroFerreira97/nuclei_templates
55 | https://github.com/R-s0n/Custom_Vuln_Scan_Templates
56 | https://github.com/Saimonkabir/Nuclei-Templates
57 | https://github.com/Saptak9983/Nuclei-Template
58 | https://github.com/ShangRui-hash/my-nuclei-templates
59 | https://github.com/freakyclown/Nuclei_templates
60 | https://github.com/SirAppSec/nuclei-template-generator-log4j
61 | https://github.com/Str1am/my-nuclei-templates
62 | https://github.com/SumedhDawadi/Custom-Nuclei-Template
63 | https://github.com/System00-Security/backflow
64 | https://github.com/adampielak/nuclei-templates
65 | https://github.com/aels/CVE-2022-37042
66 | https://github.com/alexrydzak/rydzak-nuclei-templates
67 | https://github.com/ayadim/Nuclei-bug-hunter
68 | https://github.com/badboy-sft/badboy_17-Nuclei-Templates-Collection
69 | https://github.com/binod235/nuclei-templates-and-reports
70 | https://github.com/blazeinfosec/nuclei-templates
71 | https://github.com/brinhosa/brinhosa-nuclei-templates
72 | https://github.com/c-sh0/nuclei_templates
73 | https://github.com/cipher387/juicyinfo-nuclei-templates
74 | https://github.com/clarkvoss/Nuclei-Templates
75 | https://github.com/coldrainh/nuclei-ByMyself
76 | https://github.com/d3sca/Nuclei_Templates
77 | https://github.com/daffainfo/my-nuclei-templates
78 | https://github.com/damon-sec/Nuclei-templates-Collection
79 | https://github.com/dk4trin/templates-nuclei
80 | https://github.com/drfabiocastro/certwatcher-templates
81 | https://github.com/ekinsb/Nuclei-Templates
82 | https://github.com/erickfernandox/nuclei-templates
83 | https://github.com/esetal/nuclei-bb-templates
84 | https://github.com/ethicalhackingplayground/erebus-templates
85 | https://github.com/geeknik/nuclei-templates-1
86 | https://github.com/geeknik/the-nuclei-templates
87 | https://github.com/glyptho/templatesallnuclei
88 | https://github.com/im403/nuclei-temp
89 | https://github.com/javaongsan/nuclei-templates
90 | https://github.com/justmumu/SpringShell
91 | https://github.com/kabilan1290/templates
92 | https://github.com/kh4sh3i/CVE-2022-23131
93 | https://github.com/luck-ying/Library-YAML-POC
94 | https://github.com/mastersir-lab/nuclei-yaml-poc
95 | https://github.com/mbskter/Masscan2Httpx2Nuclei-Xray
96 | https://github.com/medbsq/ncl
97 | https://github.com/meme-lord/Custom-Nuclei-Templates
98 | https://github.com/n1f2c3/mytemplates
99 | https://github.com/notnotnotveg/nuclei-custom-templates
100 | https://github.com/obreinx/nuceli-templates
101 | https://github.com/optiv/mobile-nuclei-templates
102 | https://github.com/p0ch4t/nuclei-special-templates
103 | https://github.com/panch0r3d/nuclei-templates
104 | https://github.com/peanuth8r/Nuclei_Templates
105 | https://github.com/pentest-dev/Profesional-Nuclei-Templates
106 | https://github.com/pikpikcu/nuclei-templates
107 | https://github.com/ping-0day/templates
108 | https://github.com/praetorian-inc/chariot-launch-nuclei-templates
109 | https://github.com/ptyspawnbinbash/template-enhancer
110 | https://github.com/rafaelcaria/Nuclei-Templates
111 | https://github.com/rafaelwdornelas/my-nuclei-templates
112 | https://github.com/rahulkadavil/nuclei-templates
113 | https://github.com/randomstr1ng/nuclei-sap-templates
114 | https://github.com/redteambrasil/nuclei-templates
115 | https://github.com/ree4pwn/my-nuclei-templates
116 | https://github.com/ricardomaia/nuclei-template-generator-for-wordpress-plugins
117 | https://github.com/sadnansakin/my-nuclei-templates
118 | https://github.com/securitytest3r/nuclei_templates_work
119 | https://github.com/sharathkramadas/k8s-nuclei-templates
120 | https://github.com/shifa123/detections
121 | https://github.com/sl4x0/NC-Templates
122 | https://github.com/smaranchand/nuclei-templates
123 | https://github.com/soapffz/myown-nuclei-poc
124 | https://github.com/soumya123raj/Nuclei
125 | https://github.com/souzomain/mytemplates
126 | https://github.com/tamimhasan404/Open-Source-Nuclei-Templates-Downloader
127 | https://github.com/test502git/log4j-fuzz-head-poc
128 | https://github.com/th3r4id/nuclei-templates
129 | https://github.com/thebrnwal/Content-Injection-Nuclei-Script
130 | https://github.com/thecyberneh/nuclei-templatess
131 | https://github.com/themoonbaba/private_templates
132 | https://github.com/rix4uni/BugBountyTips
133 | https://github.com/Lu3ky13/Authorization-Nuclei-Templates
134 | https://github.com/bug-vs-me/nuclei
135 | https://github.com/topscoder/nuclei-wordfence-cve
136 | https://github.com/toramanemre/apache-solr-log4j-CVE-2021-44228
137 | https://github.com/toramanemre/log4j-rce-detect-waf-bypass
138 | https://github.com/trickest/log4j
139 | https://github.com/trungkay2/Nuclei-template
140 | https://github.com/wasp76b/nuclei-templates
141 | https://github.com/xinZa1/template
142 | https://github.com/yarovit-developer/nuclei-templates
143 | https://github.com/yavolo/nuclei-templates
144 | https://github.com/z3bd/nuclei-templates
145 | https://github.com/zer0yu/Open-PoC
146 | https://github.com/zinminphyo0/KozinTemplates
147 | https://github.com/foulenzer/foulenzer-templates
148 | https://github.com/joanbono/nuclei-templates
149 | https://github.com/Nithissh0708/Custom-Nuclei-Templates
150 | https://github.com/ChiaraNRTT96/BountySkill
151 | https://github.com/bhataasim1/PersonalTemplates
152 | https://github.com/themastersunil/Nuclei-TamplatesBackup
153 | https://github.com/themastersunil/nucleiDB
154 | https://github.com/Linuxinet/nuclei-templates
155 | https://github.com/Aituglo/nuclei-templates
156 | https://github.com/abbycantcode/Nuclei-Template
157 | https://github.com/pacho15/mynuclei_templates
158 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # AllForOne - Nuclei Template Collector 👤
2 |
3 |
4 | Welcome to the "AllForOne" repository! :rocket: This repository contains a Python script that allows bug bounty hunters and security researchers to collect all Nuclei YAML templates from various public repositories, helping to streamline the process of downloading multiple templates using just a single repository.
5 |
6 | ## How it Works :gear:
7 |
8 | The script leverages the GitHub repositories which containing Nuclei Templates. It will clones them to your local machine, and extracts the templates, organizing them for easy access.
9 |
10 | ## 👋 Connect with me
11 |
12 | [](https://www.linkedin.com/in/AggressiveUser/) [](https://app.hackthebox.com/profile/17569) [](https://github.com/AggressiveUser) [](https://twitter.com/AggressiveUserX) [](https://t.me/AggressiveUser) [](mailto:AggressiveUser@OutLook.com)
13 |
14 | ## Getting Started :rocket:
15 |
16 | To get started, follow these steps:
17 |
18 | 1. Clone the repository:
19 | ```git clone https://github.com/AggressiveUser/AllForOne.git``` :computer:
20 |
21 | 2. Install the required dependencies:
22 | ```pip install -r requirements.txt``` :key:
23 |
24 | 3. Run the script:
25 | ```python AllForOne.py``` :snake:
26 |
27 | 4. Sit back and relax! The script will start collecting the Nuclei templates from public repositories.
28 |
29 |
30 | ## Result :file_folder:
31 |
32 | Once the script completes, it will display the total count of templates in a tabular format. It will create a folder named `Templates` in the repository's root directory. Inside this folder, you'll find subfolders for each cloned repository segregated as per publication year `CVE-20XX` and others as `Vulnerability-Templates`. Each template is stored as a separate file, enabling easy access and utilization for your bug bounty or security testing activities.
33 |
34 | ## Disclaimer :exclamation:
35 |
36 | Please ensure that you comply with all relevant laws, terms of service, and guidelines when using this tool. The Nuclei tool and the collected templates should be used responsibly and ethically. The creators of this script are not responsible for any misuse or illegal activities performed using the gathered templates.
37 |
38 | ## Contributions :raising_hand:
39 |
40 | Contributions to this project are welcome! If you have any updated and new github repo for nuclei templates, feel free to submit a pull request for `PleaseUpdateMe.txt`
41 |
42 | ## License :page_facing_up:
43 |
44 | This project is licensed under the [MIT License](https://github.com/AggressiveUser/AllForOne/blob/main/LICENSE).
45 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | tqdm
2 | requests
3 | tabulate
4 |
--------------------------------------------------------------------------------