工具介绍
本项目是一款漏洞库知识库的批量下载更新脚本,主要收集了GitHub上的一些优质漏洞库知识库,并提供一键下载及更新功能,便于在离线情况下的访问检索,适用于Windows平台。
目前收录
-
[adysec/POC]https://github.com/adysec/POC
-
[vulhub/vulhub]https://github.com/vulhub/vulhub
-
[Threekiii/Awesome-POC]https://github.com/Threekiii/Awesome-POC
-
[Mr-xn/Penetration_Testing_POC]https://github.com/Mr-xn/Penetration_Testing_POC
-
[ax1sX/SecurityList]https://github.com/ax1sX/SecurityList
-
[XiaomingX/data-cve-poc]https://github.com/XiaomingX/data-cve-poc
-
[trickest/cve]https://github.com/trickest/cve
-
[adysec/nuclei_poc]https://github.com/adysec/nuclei_poc
-
[coffeehb/Some-PoC-oR-ExP]https://github.com/coffeehb/Some-PoC-oR-ExP
-
[ycdxsb/PocOrExp_in_Github]https://github.com/ycdxsb/PocOrExp_in_Github
-
[zhzyker/exphub]https://github.com/zhzyker/exphub
使用说明
usage: run.py [-h] [--proxy PROXY] [--mode {ssh,git}] [--urlpath URLPATH] {init,upgrade} Bulk pull and update vulnerability databases positional arguments: {init,upgrade} 需要进行的操作,'init'或'upgrade' The operation that needs to be done, init or upgrade options: -h, --help show this help message and exit --proxy PROXY, -P PROXY 代理地址,默认为空 Proxy address, default is empty --mode {ssh,git}, -m {ssh,git} 拉取模式,'ssh'或'git',默认为'git' Pull mode, 'ssh' or 'git', defaults to 'git' --urlpath URLPATH, -p URLPATH url文件路径,默认为'./urls.txt' URL file path, which defaults to './urls.txt'
首次使用该项目,请先执行以下命令拉取项目进行初始化:
python run.py init
此后更新项目只需执行以下命令即可:
python run.py upgrade
为避免网络不稳定或项目过大导致的无法正常下载,建议使用’ssh’的模式拉取项目的,使用’ssh’模式拉取项目请先完成’ssh’配置。
[GitHub通过ssh方法下载详细配置过程]https://blog.csdn.net/boybs/article/details/124222148
项目预置默认库全部拉取下来预计需要15+GB左右的空间。
run.py
import subprocess import threading import platform import argparse def check_platform(): if platform.system() == "Windows": return True else: print(f"Sorry, {platform.system()} platform is not supported at the moment...") return False def threaded_function(command, thread_name): print(f"Thread {thread_name} start...") subprocess.Popen(f'start cmd.exe /K "{command}"', shell=True) print(f"Thread {thread_name} end...") def add_suffix(s) -> str: if s[-4:] != ".git": s += ".git" return s def ssh_mode(s): s = add_suffix(s) s = s.replace("https://github.com/", "git@github.com:") return s def git_mode(s) -> str: s = add_suffix(s) s = s.replace("git@github.com:", "https://github.com/") return s def get_repo_name(url) -> str: last_part = url.split('/')[-1] if last_part[-4:] == ".git": last_part = last_part[:-4] return last_part def import_urls(path, mode) -> list: urls = [] with open(path, "r") as f: data = f.readlines() for url in data: url = url.strip() if mode == "ssh": url = ssh_mode(url) elif mode == "git": url = git_mode(url) else: print(f"\033[31m[!] Error Mode: {mode} !\033[0m") return [] urls.append(url) return urls def run(commands): threads = [] for i, cmd in enumerate(commands): thread = threading.Thread(target=threaded_function, args=(cmd, f'Thread-{i+1}')) threads.append(thread) thread.start() for thread in threads: thread.join() if not check_platform(): exit(1) if __name__ == "__main__": parser = argparse.ArgumentParser(description="Bulk pull and update vulnerability databases") parser.add_argument('operate', choices=['init', 'upgrade'], type=str, help="The operation that needs to be done, init or upgrade") parser.add_argument('--proxy', '-P', type=str, default="", help="Proxy address, default is empty") parser.add_argument('--mode', '-m', type=str, choices=['ssh', 'git'], default="git", help="Pull mode, 'ssh' or 'git', defaults to 'git'") parser.add_argument('--urlpath', '-p', type=str, default="./urls.txt", help="URL file path, which defaults to './urls.txt'") args = parser.parse_args() commands = [] urls = import_urls(args.urlpath, args.mode) for url in urls: command = "git config --global core.autocrlf input && " if args.operate == "init": command += f"git {'' if args.proxy == '' else f'-c http.proxy={args.proxy}'} clone {url} {get_repo_name(url)}" elif args.operate == "upgrade": command += f"cd {get_repo_name(url)} && git {'' if args.proxy == '' else f'-c http.proxy={args.proxy}'} pull" commands.append(command) run(commands)
urls.txt
https://github.com/adysec/POC https://github.com/vulhub/vulhub https://github.com/Threekiii/Awesome-POC https://github.com/Mr-xn/Penetration_Testing_POC https://github.com/ax1sX/SecurityList https://github.com/XiaomingX/data-cve-poc https://github.com/trickest/cve https://github.com/adysec/nuclei_poc https://github.com/coffeehb/Some-PoC-oR-ExP https://github.com/ybdt/exp-hub https://github.com/ycdxsb/PocOrExp_in_Github https://github.com/zhzyker/exphub
其他
Q:如何增加或删除下载库
Q: How do I add or delete a download library?
A:在urls.txt文件中添加项目链接即可
A: Just add a link to the project in the urls.txt file
工具获取
https://github.com/YZBRH/VulnerabilityLibrary
文章来源:夜组安全














暂无评论内容