用于自动化各种渗透测试任务的自定义 Bash 和 Python 脚本,包括使用 Metasploit 进行侦察、扫描、枚举和恶意载荷创建。适用于 Ubuntu。对 Kali Linux 提供有限支持。
用于自动化各类渗透测试任务的自定义 Bash 和 Python 脚本,包括侦察、扫描、枚举以及使用 Metasploit 创建恶意载荷。适用于 Ubuntu。对 Kali Linux 提供有限支持。
cd ~
git clone https://github.com/leebaird/discover
cd discover/
./discover.sh
~/.discover/operator-name。该名字会写入每条审计日志行。如需稍后更改,请编辑或删除该文件并重启 Discover。config/zshrc)cd ~/discover/config/
./install.sh
| 主机 | install.sh 的作用 |
|---|---|
| Ubuntu / 其他(包括 macOS) | 将 zshrc 复制到 ~/.bash_aliases 并加载它 |
Kali(通过 /etc/os-release 检测) | 将 zshrc 追加到 ~/.zshrc |
还会将 tmux.conf 安装到 ~/.tmux.conf,将 vimrc 安装到 ~/.vimrc。
实用命令(安装后 / 新 shell 中):
| 命令 | 用途 |
|---|---|
n | 网络摘要(外部/内部 IP、DNS、MAC、网卡;不带 TIME-WAIT 的 ss;ping 8.8.8.8) |
s | cd ~/discover 并显示简短的 git status(不拉取) |
m / ms | 启动 MSF 数据库 + 控制台 / 停止 MSF 数据库 |
web / web2 | 在 80 端口(sudo)/ 8000 端口启动 HTTP 服务器 |
now | 格式化的日期/时间(不会覆盖 date) |
update | Grok 更新 + 完整的 apt 升级链 |
bh、th、smb、sip | BloodHound、theHarvester、smbserver、IP 排序 |
网络身份信息(IP、DNS、MAC)是在你运行 n / web / upload 时计算的——而不是在 shell 启动时——因此新 shell 能保持快速,并且在 VPN/wifi 变更后这些值仍保持最新。
注意事项
~/.bash_aliases。install.sh 会再次追加,可能导致该块重复;请编辑 ~/.zshrc,或只安装一次。~/.bash_aliases,除非你从 ~/.zshrc 中加载它。RECON
1. Domain
2. Person
SCANNING
3. Generate target list
4. CIDR
5. List
6. IP, range, or URL
7. Rerun Nmap scripts and MSF aux
WEB
8. Insecure direct object reference
9. Open multiple tabs in Firefox
10. Nikto
11. SSL
MISC
12. Generate a malicious payload
13. Start a Metasploit listener
14. CVE lookup
15. Parse XML
16. Dev
17. Notes
18. Update
19. Exit
RECON
1. Passive
2. Breaches
3. Find registered domains
4. Google dorks
5. Web search
6. Active
7. Open report
8. Previous menu
注意:Passive 和 Active 不能以 root 身份运行。
$HOME/data/<domain>/ HTML 报告。使用 Amass、ARIN、DNSRecon、dnstwist、Metasploit、subfinder、Shodan CTL(免费 CT 主机名;无需 API 密钥)、theHarvester、Whois 以及多个网站。
$HOME/.theHarvester/api-keys.yaml)。$HOME/data/<domain>/ 构建 HTML 报告。pages/registered-domains.htm。没有注册邮箱的域名不会出现在该页面上。tools/company-manual.tsv 覆盖);找到时显示社交资料链接。在 Reports > Audit 上,Import(仅限 Discover 托管)针对当前交互。
| 选项 | 作用 |
|---|---|
| Operator scans | 合并另一位操作员的解包报告(主机扫描、截图、Active 数据、其审计行) |
| Names | 合并 tools/names-manual.tsv(Name、Title、Phone;# 注释;已填写的职位/电话优先) |
| Names, titles, and emails | 将外部姓名转储合并到 Names 和 Emails |
| Subdomains | 现有来源(Firefox / Pentest-Tools / TSV)或 CSV subdomain,ip,category;可选对新公共主机执行 Active |
CLI(相同后端):
bash recon/import-names.sh --report /home/user/data/example.com --json
bash recon/import-names-titles-emails.sh --report /home/user/data/example.com --source /path/to/dump --json
bash recon/import-subdomains.sh --report /home/user/data/example.com \
--mode team-csv --import /home/user/team-hosts.csv --json
# existing: --mode existing --import firefox|/path/to/export
# optional CSV: --run-active
CSV 列表会跳过已存在于 tools/subdomains 中的主机。IP 为空时则执行 dig。地址为 1.1.1.1 的主机,或解析到 1.1.1.1 的主机,会被排除。类别:优先使用 Discover 规则,否则使用 CSV。从不写入 recon/subdomain-categories.tsv。
域名菜单选项 6。在被动(以及可选的导入子域名)之后运行。
Enter the location of a previous Discover scan:
/home/user/data/example.com
tools/subdomains 读取公共主机名(存储的 RFC1918 地址会被跳过)。dig A @1.1.1.1。私有、回环、链路本地或 0.0.0.0 的应答会被排除在 httpx 之外,并添加到 tools/private-subs(tools/dns-private.tsv)。已存储的公共 IP 不会被更改。不使用 VPN DNS。tools/httpx.jsonl);存活 = 200–399、401、403 或 405。recon/active-tech.py 合并。产物位于 tools/ 下(httpx.jsonl、whatweb.json、gowitness/、software-cves-cache.json)。
仅在 operator 模式下(通过 Open report / Active 在 http://127.0.0.1:17322/… 打开报告),带有 HTTP 状态的 Subdomains 公共行会获得主机扫描展开控件(在 ?software= / ?cve= 过滤视图中同样如此)。手动以 file:// 打开时从不显示折叠箭头。Export → Client 是例外:该包显示相同的工具菜单,但没有 Run,也没有 ⓘ 按钮,且 TXT / HTM / WEB 是普通链接(WEB 打开 web.htm)。可展开的行会显示主机扫描 框(从最安静到最响亮):
| 工具 | 作用 | 显示时机 |
|---|---|---|
| robots | 获取 /robots.txt 并列出 Disallow 路径(与 multiTabs 思路相同,然后是 robots.txt 中的 Directories);TXT = 原始正文,WEB = 在 Firefox 中打开 Disallow 目录(Client 导出:web.htm) | 展开时始终显示 |
| nmap | 仅 TCP:nmap -Pn -n --open -sTV -p <ports> --stats-every 20 <host>。带 UDP 时:sudo nmap --privileged -Pn -n --open -sTV -sUV -p T:<tcp>,U:<udp> --stats-every 20 <host>(Shodan 传输,否则使用 Discover 的 UDP= 列表;端口 53 始终为 TCP+UDP)。如有需要,UDP 会在主机扫描终端中提示输入 sudo。如果原始 UDP sendto 被阻止(通常是 VPN/TUN),TXT 会发出警告,并且不会将 tcpwrapped 保留为 UDP 指纹。TXT;web 在 Firefox 中打开每个 http/https SERVICE(ssl/unknown 视为 https;Client 导出:web.htm) | 受门控: 该 IP 的 Shodan 端口,或行 URL 为 http/https(即使 Shodan 为空,80 或 443 也算)。无 HTTP 预检查 |
| nuclei | 模板侦察(产品标签),然后从参与项目的软件-CVE 缓存 + CISA KEV 自动执行 Pass 2 CVE/KEV(仅本地 nuclei 模板) | 受门控: 通过 ?software= 或 行指纹(Technologies / 标题 / Web 服务器 / 主机名)已知产品。未知产品时隐藏 |
| droopescan | CMS 枚举(scan drupal / ...;-e a -t 4 --hide-progressbar);TXT 会丢弃百分比条行 | 受门控: 通过 ?software= 或 行指纹识别出受支持的 CMS(Drupal、Joomla、Moodle、Silverstripe — 不包括 WordPress) |
| WPScan | WordPress 检查(被动插件检测 + 适度枚举) | 受门控: 通过 ?software= 或 行指纹识别出 WordPress。可选 WPSCAN_API_TOKEN 用于漏洞数据库 |
| nikto | Web 服务器检查(请求超时 5s,FAILURES=8,maxtime 8m,硬停止 9m);扫描实际运行时报告 TXT + HTM | 展开时始终显示 |
| transom | Web 服务器检查(请求超时 10s,硬停止 11m);完整 URL 仅扫描该源;扫描实际运行时报告 TXT + HTM | 展开时始终显示 |
| feroxbuster | 内容发现(与 ffuf 相同的字典选择器;无递归;自动退出;10 线程,20 req/s,5s 超时,10m 时间限制);报告 TXT + WEB | 展开时始终显示 |
| ffuf | 内容发现(安静默认值);报告 TXT + WEB(在 Firefox 中打开每个发现;Client 导出:web.htm) | 展开时始终显示 |
每个框在一行中显示工具名称和蓝色 Run 按钮,以及上次运行时间和绿色输出按钮(TXT / HTM / WEB,视情况而定)。每个框右上角的 Unicode ⓘ 会打开一个模态框,说明该工具的作用、出现时机、Run 的功能、安全检查以及输出。Export → Client 会省略 Run 和 ⓘ。