├── .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 | AllForOne - Nuclei Template Collector 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 | [![LinkedIn](https://img.shields.io/badge/-LinkedIn-blue?style=flat-square&logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/AggressiveUser/)](https://www.linkedin.com/in/AggressiveUser/) [![Hack The Box](https://img.shields.io/badge/-Hack%20The%20Box-green?style=flat-square&logo=hack-the-box&logoColor=white&link=https://app.hackthebox.com/profile/17569)](https://app.hackthebox.com/profile/17569) [![GitHub](https://img.shields.io/badge/-GitHub-black?style=flat-square&logo=github&link=https://github.com/AggressiveUser)](https://github.com/AggressiveUser) [![Twitter](https://img.shields.io/badge/-Twitter-blue?style=flat-square&logo=twitter&logoColor=white&link=https://twitter.com/AggressiveUserX)](https://twitter.com/AggressiveUserX) [![Telegram](https://img.shields.io/badge/-Telegram-blue?style=flat-square&logo=telegram&logoColor=white&link=https://t.me/AggressiveUser)](https://t.me/AggressiveUser) [![Email](https://img.shields.io/badge/-Email-red?style=flat-square&logo=Microsoft&logoColor=white&link=mailto:AggressiveUser@OutLook.com)](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 | --------------------------------------------------------------------------------