ASYquan/Web-Hacking-Toolbox

GitHub: ASYquan/Web-Hacking-Toolbox

一套可组合的 Bash 侦察脚本集,通过管道串联实现从子域名发现到目录枚举的完整 Web 资产探测流程。

Stars: 0 | Forks: 0

# Web Hacking 工具箱 用于 Bug Bounty 侦察和枚举的 Bash 脚本集合。每个脚本既可以独立使用(通过 CLI 标志),也可以从标准输入(stdin)读取数据,因此你可以将它们通过管道串联在一起。 所有脚本遵循相同的模式:使用标志传递目标以进行手动操作,或通过管道输入目标以实现自动化。 ## 脚本 - [github_secret_scan.sh](#github-secret-scan) - 扫描 GitHub 组织的仓库以查找泄露的机密信息 - [crtsh_subs.sh](#crtsh-subdomain-scraper) - 从证书透明度日志中提取子域名 - [puredns_brute.sh](#puredns-brute-force) - DNS 暴力破解子域名发现 - [alterx_permute.sh](#alterx-permutations) - 基于已知列表生成子域名排列组合 - [scope_filter.sh](#scope-filter) - 过滤域名列表,仅保留在范围内的目标 - [subfinder_httpx.sh](#subfinder--httpx-probe) - 发现子域名并探测存活主机 - [vhost_fuzz.sh](#vhost-fuzzing) - 通过 Host 头模糊测试发现虚拟主机 - [ferox_enum.sh](#feroxbuster-directory-enumeration) - 递归目录和文件暴力破解 ## 环境要求 不同的脚本需要不同的工具。请根据需要安装: | 工具 | 安装命令 | 使用脚本 | |------|---------|---------| | [Kingfisher](https://github.com/WithSecureLabs/kingfisher) | `pipx install kingfisher` | github_secret_scan | | [pureDNS](https://github.com/d3mondev/puredns) | `go install github.com/d3mondev/puredns/v2@latest` | puredns_brute | | [subfinder](https://github.com/projectdiscovery/subfinder) | `go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest` | subfinder_httpx | | [httpx](https://github.com/projectdiscovery/httpx) | `go install github.com/projectdiscovery/httpx/cmd/httpx@latest` | subfinder_httpx | | [alterx](https://github.com/projectdiscovery/alterx) | `go install github.com/projectdiscovery/alterx/cmd/alterx@latest` | alterx_permute | | [ffuf](https://github.com/ffuf/ffuf) | `go install github.com/ffuf/ffuf/v2@latest` | vhost_fuzz | | [feroxbuster](https://github.com/epi052/feroxbuster) | `sudo apt install feroxbuster` | ferox_enum | | curl, jq | `sudo apt install curl jq` | crtsh_subs, github_secret_scan | 字典:大多数脚本默认使用 `/usr/share/wordlists/SecLists-master/` 下的路径。如果你没有 SecLists,请获取它: ``` sudo git clone https://github.com/danielmiessler/SecLists.git /usr/share/wordlists/SecLists-master ``` ## GitHub 机密扫描 从 GitHub 组织拉取每一个仓库,并对每个仓库运行 Kingfisher。自动处理 API 分页。 ``` # 手动 ./github_secret_scan.sh -o TargetOrg -t ghp_yourtoken # 使用 env var export GITHUB_TOKEN=ghp_yourtoken ./github_secret_scan.sh -o TargetOrg # 自定义输出和速率限制延迟 ./github_secret_scan.sh -o TargetOrg -t ghp_yourtoken -f results.txt -d 2 ``` | 标志 | 描述 | 默认值 | |------|-------------|---------| | `-o` | GitHub 组织名称(必填) | | | `-t` | GitHub 个人访问令牌 | `$GITHUB_TOKEN` | | `-f` | 输出文件 | `kingfisher__secretscan.txt` | | `-p` | 每 API 页的仓库数(最大 100) | `100` | | `-d` | 扫描间隔延迟(秒) | `0` | ## crt.sh 子域名抓取器 查询 crt.sh 上的证书透明度日志以查找子域名。有两种模式:常规(非通配符)和通配符提取。 ``` # 获取非 wildcard 子域名 ./crtsh_subs.sh -d example.com # 获取 wildcard 子域名(去除 *. 前缀) ./crtsh_subs.sh -d example.com -w # Pipe 多个域名 cat domains.txt | ./crtsh_subs.sh # 保存到文件并同时输出到 stdout ./crtsh_subs.sh -d example.com -o subs.txt ``` | 标志 | 描述 | 默认值 | |------|-------------|---------| | `-d` | 目标域名 | | | `-w` | 通配符模式(提取通配符子域) | off | | `-o` | 输出文件 | 仅标准输出 | ## pureDNS 暴力破解 使用 pureDNS 暴力破解子域名,支持可配置的速率限制和解析器列表。 ``` # 手动 ./puredns_brute.sh -d example.com # 自定义速率限制 ./puredns_brute.sh -d example.com -R 500 -T 150 # Pipe 域名 cat targets.txt | ./puredns_brute.sh -R 500 ``` | 标志 | 描述 | 默认值 | |------|-------------|---------| | `-d` | 目标域名 | | | `-w` | DNS 字典 | `dns-Jhaddix.txt` | | `-r` | 解析器文件 | `/usr/share/wordlists/resolvers.txt` | | `-R` | 速率限制(公共解析器) | `1000` | | `-T` | 速率限制(可信解析器) | `300` | | `-o` | 输出文件 | `.puredns.txt` | ## alterx 排列组合 获取已知子域名列表并生成排列组合,以查找你可能遗漏的子域名。 ``` # 从文件 ./alterx_permute.sh -i known_subs.txt # 从另一个脚本 Piped ./crtsh_subs.sh -d example.com | ./alterx_permute.sh # 保存输出 ./alterx_permute.sh -i subs.txt -o permutations.txt ``` | 标志 | 描述 | 默认值 | |------|-------------|---------| | `-i` | 包含子域名的输入文件 | | | `-o` | 输出文件 | 仅标准输出 | | `-e` | 丰富模式 | on | ## 范围过滤器 使用正则表达式模式过滤域名列表。默认情况下,它保留匹配的行(在范围内)。使用 `-v` 反转匹配并改为丢弃匹配项。 ``` # 仅保留范围内域名 cat all_subs.txt | ./scope_filter.sh -s "example\.com" # 从文件,保存输出 ./scope_filter.sh -s "example\.com" -i all_subs.txt -o inscope.txt # 反转:移除特定域名 cat subs.txt | ./scope_filter.sh -s "staging\.example\.com" -v ``` | 标志 | 描述 | 默认值 | |------|-------------|---------| | `-s` | 范围的正则表达式模式(必填) | | | `-i` | 输入文件 | stdin | | `-o` | 输出文件 | 仅标准输出 | | `-v` | 反转匹配(保留不匹配项) | off | ## Subfinder + httpx 探测 使用 subfinder 发现子域名,并立即用 httpx 探测它们以获取状态码、标题、Web 服务器、ASN 信息等。基于 jhaddix 侦察单行命令。 ``` # 单个域名 ./subfinder_httpx.sh -d example.com # 从 apex 域名文件 ./subfinder_httpx.sh -f apex_domains.txt # Pipe 目标 cat apexes.txt | ./subfinder_httpx.sh # 自定义端口和输出目录 ./subfinder_httpx.sh -d example.com -p "80,443,8080" -o ./results/ ``` | 标志 | 描述 | 默认值 | |------|-------------|---------| | `-d` | 目标域名 | | | `-f` | 包含顶域的文件 | | | `-o` | 输出目录 | 当前目录 | | `-p` | 要探测的端口 | `80,8080,443,8443,4443,8888` | | `-t` | httpx 线程数 | `15` | | `-a` | 使用所有 subfinder 来源 | on | ## VHost 模糊测试 使用 ffuf 对 Host 头进行模糊测试,以发现未在 DNS 中公开列出的虚拟主机。 ``` # 手动 ./vhost_fuzz.sh -u https://example.com # 使用过滤 ./vhost_fuzz.sh -u https://example.com -fc 404,302 # Pipe 目标 cat live_hosts.txt | ./vhost_fuzz.sh -t 20 ``` | 标志 | 描述 | 默认值 | |------|-------------|---------| | `-u` | 目标 URL(必填) | | | `-w` | 字典 | `subdomains-top1million-5000.txt` | | `-o` | 输出文件 | `.vhosts.json` | | `-fc` | 过滤状态码 | | | `-fs` | 过滤响应大小 | | | `-t` | 线程数 | `40` | | `-r` | 速率限制(请求/秒) | 无限制 | ## Feroxbuster 目录枚举 使用 feroxbuster 进行递归目录和文件暴力破解。适用于查找隐藏端点、管理面板和备份文件。 ``` # 手动 ./ferox_enum.sh -u https://example.com # 使用扩展和速率限制 ./ferox_enum.sh -u https://example.com -t 5 -r 10 -e php,html # Pipe 目标 cat live_hosts.txt | ./ferox_enum.sh -t 3 -r 5 # 禁用递归 ./ferox_enum.sh -u https://example.com -n ``` | 标志 | 描述 | 默认值 | |------|-------------|---------| | `-u` | 目标 URL | | | `-w` | 字典 | `DirBuster small lowercase` | | `-t` | 线程数 | `1` | | `-r` | 速率限制(请求/秒) | `1` | | `-s` | 最大并发扫描数 | `5` | | `-o` | 输出文件 | `.ferox.txt` | | `-e` | 文件扩展名 | | | `-x` | 过滤状态码 | | | `-n` | 禁用递归 | off | | `-A` | 随机 User-Agent | on | | `-g` | 从响应中收集链接 | on | ## 串联脚本 真正的威力在于将它们通过管道串联在一起。以下是一些示例工作流程: **完整的子域名发现流程:** ``` # crt.sh -> permutations -> resolve -> probe ./crtsh_subs.sh -d example.com \ | ./alterx_permute.sh \ | ./scope_filter.sh -s "example\.com" \ > candidates.txt cat candidates.txt | ./puredns_brute.sh -d example.com ``` **发现并扫描:** ``` # 查找子域名,探测存活主机,然后对每个进行目录爆破 ./subfinder_httpx.sh -d example.com \ | grep -oP 'https?://[^\s]+' \ | ./ferox_enum.sh -t 3 -r 5 ``` **从范围文件进行多域名侦察:** ``` cat scope.txt | ./crtsh_subs.sh | sort -u > all_subs.txt cat all_subs.txt | ./subfinder_httpx.sh -p "80,443" ```
标签:AD攻击面, CTF工具, GitHub机密泄露, Windows内核, 侦察脚本, 域名枚举, 安全助手, 安全工具集, 实时处理, 密码管理, 应用安全, 批量查询, 漏洞搜索, 白帽子, 目录爆破, 秘密扫描, 结构化查询, 网络安全, 自动化安全, 资产探测, 运行时操纵, 隐私保护