Quiver 是一个组织化的 shell 函数命名空间,可在终端中预填充命令,让你摆脱对笔记、复制、粘贴、编辑、再复制粘贴的依赖。Quiver 帮助你记住如何使用 arsenal 中的每个工具,并且不会将它们隐藏在难以维护或更新的脚本后面。相反,你可以使用 Quiver 为每种情况构建可组合的即时工作流。
Quiver 并未覆盖所有工具,它是我个人精选的收藏,我仍在不断添加和更新。针对不同类型的目标和 engagements,有太多工具可供选择,所以我只专注于那些维护良好且最新的工具。如果你希望加入自己偏好的工具,请随时在 issues 中提出。
经过数月 lockdown 期间的辛勤工作,我很高兴推出 Quiver 1.0 版本!此版本包含了许多优于先前版本的改进,例如每个命名空间的帮助与安装程序、自动填充变量(如 RHOST、RPORT、LHOST、LPORT、PROJECT、WORDLIST、URL)以及用于自定义设置的全局配置(例如你喜爱的单词列表菜单)。如果你之前一直在使用 Quiver,那么 1.0 中的许多变化是破坏性变更。请使用 qq-help 熟悉新命令。如果你之前将 Quiver 值存储在 .zshrc 中,现在大多数都可以通过 qq-vars-global 存储为全局变量。
Quiver 需要以下条件:
将仓库克隆到你的 OMZ 自定义插件文件夹。
git clone https://github.com/stevemcilwain/quiver.git ~/.oh-my-zsh/custom/plugins/quiver
编辑 ~/.zshrc 以加载该插件。
plugins=(git quiver)
执行 source ~/.zshrc 加载插件即可完成。首次加载时,Quiver 会安装几个核心包。
source ~/.zshrc
Quiver 将命令组织成以 qq- 开头的命名空间,例如 qq-enum-web 或 qq-recon-domains。使用 qq-help 即可查看所有命名空间的概览。每个命名空间也有自己的帮助命令,例如 qq-enum-web-help 提供可用命令的列表。所有命令都支持 Tab 补全和搜索。
每个命名空间都有一个 qq-<namespace>-install 命令,用于安装该命名空间相关的所有工具。你可以只安装自己需要的工具,或者使用 qq-install-all 运行所有命名空间的安装程序。
Quiver 旨在提供可组合的即时工作流。它取代了常见且痛苦的原始工作流:阅读笔记、找到命令、复制、粘贴、将值替换为目标值、复制、粘贴、运行。有些人严重依赖完全自动化的脚本或框架,这些脚本或框架运行工作流中的所有命令并输出格式良好的数据。虽然这些脚本在许多场景下表现出色,但它们往往脆弱、隐藏底层工具与技术,并且难以修改。相反,Quiver 为你提供了一个折中方案:你可以快速轻松地运行命令,输出组织良好,并根据目标和上下文即时组合你的工作流。
以下是漏洞赏金狩猎的示例工作流:
# 如果你有 Markdown 笔记,配置路径
qq-vars-global-set-notes
# 为赏金目标设置一些会话变量
qq-vars-set-project
qq-vars-set-domain
# 从赏金 URL 生成 scope 文件
qq-project-rescope
# 为其他终端会话保存变量,qq-vars-load
qq-vars-save
# 搜索目标文件
qq-recon-org-files
# 在下载的文件中搜索 URL
qq-recon-org-files-urls
# 挖掘 GitHub 仓库中的秘密
qq-recon-github-gitrob
# 检查 DNS 记录
qq-enum-dns-dnsrecon
# 查找 ASN 和网络
qq-recon-networks-amass-asns
qq-recon-networks-bgpview-ipv4
# 获取子域名
qq-recon-subs-subfinder
# 解析并处理子域名
qq-recon-subs-resolve-massdns
qq-recon-subs-resolve-parse
# 下载 robots.txt
qq-enum-web-dirs-robots
# 识别是否存在 WAF
qq-enum-web-waf
# 解析 SSL 证书
qq-enum-web-ssl-certs
# 爬取站点
qq-enum-web-gospider
# 暴力破解 URI
qq-enum-web-dirs-ffuf
# 阅读你的笔记
qq-notes