Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
VHostScan — 一个虚拟主机扫描器,可执行反向查询,能与跳板工具结合使用,检测全能捕获场景,绕过通配符、别名和动态默认页面。 | Kitploit
工具/GitHubGitHub/codingo/vhostscan
侦察漏洞扫描器DNS和子域名枚举信息收集Web安全渗透测试
GitHubcodingo/vhostscan

VHostScan

一个虚拟主机扫描器,可执行反向查询,能与跳板工具结合使用,检测全能捕获场景,绕过通配符、别名和动态默认页面。

查看仓库
1.3k23841年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

VHostScan

一个虚拟主机扫描器,可与 pivot 工具配合使用,可检测 catch-all 场景、别名和动态默认页面。首次在 2017 年 9 月的 SecTalks BNE 上展示(PPT)。

这是 Codingo 原始 VHostScan 的增强版本,包含额外改进、现代化代码库以及更丰富的词表,以实现更好的虚拟主机发现。

Build Status Python 3.8+ PEP8 License Twitter Twitter

此增强版本的新特性

  • 现代化代码库:升级至 Python 3.8+,加入类型提示和现代实践
  • 增强的词表:针对云、渗透测试和现代基础设施的新专用词表
  • 改进的错误处理:更佳的错误处理和更稳健的扫描
  • 性能优化:扫描更快捷,效率更高
  • 扩展文档:全面的词表文档和使用示例

主要优势

  • 在 catch-all 场景中快速高亮唯一内容
  • 在页面含有动态内容(如时间)的 catch-all 场景中定位异常值
  • 通过调整匹配的唯一深度来识别别名
  • 词表支持标准词汇和用于输入基础主机名的变量(例如,词表中的 dev.%s 会作为 dev.BASE_HOST 运行)
  • 支持 HTTP 和 HTTPS
  • 能够设置 Web 服务器的真实端口,以便在通过 ssh/nc 进行 Pivot 时在头部中使用
  • 添加简单响应头以绕过部分 WAF 产品
  • 通过反向查找识别新目标并追加到词表中

产品对比

VHOSTScan 功能对比图

在 Docker 上安装(推荐)

  1. git clone https://github.com/codingo/VHostScan.git
  2. cd VHostScan
  3. docker build -t vhostscan .

然后运行应用程序 docker run --rm -it vhostscan -t

安装要求

VHostScan 需要 Python 3.8 或更高版本。使用以下命令安装:

root@kitploit:~
$ pip install VHostScan

或者从源码安装:

root@kitploit:~
$ git clone https://github.com/codingo/VHostScan.git
$ cd VHostScan
$ pip install .

用于开发:

root@kitploit:~
$ pip install -e .

之后依赖项将被安装,VHostScan 将被添加到您的路径中。

用法

使用示例

注意,许多示例引用了 10.10.10.29。此 IP 指的是 BANK.HTB,一个来自 HackTheBox(https://www.hackthebox.eu/)的已退役目标机器。

快速示例

最简单的示例,对 example.com 使用默认词表,默认端口为 80:

root@kitploit:~
$ VHostScan -t example.com

带 SSL 的快速示例

如果连接需要 SSL,可以使用:

root@kitploit:~
$ VHostScan -t example.com --ssl

VHOSTScan 词表示例

端口转发

假设您有一个 SSH 端口转发,监听在本地 4444 端口,将流量转发到 example.com 开发机器的 80 端口。您可以这样使用,让 VHostScan 通过 localhost:4444 连接,但格式化头部请求,使其适合直接连接 80 端口:

root@kitploit:~
$ VHostScan -t localhost -b example.com -p 4444 -r 80

STDIN

VHostScan 支持从其他应用程序通过管道传入数据,并将传递给 VHostScan 的信息视为词表数据。例如:

root@kitploit:~
$ cat bank.htb | VHostScan -t 10.10.10.29

VHOSTScan STDIN 示例

STDIN 和词表

您仍然可以在使用 stdin 的同时指定词表。在这种情况下,词表信息将追加到 stdin 中。例如:

root@kitploit:~
$ echo -e 'a.example.com\b.example.com' | VHostScan -t localhost -w ./wordlists/wordlist.txt

模糊逻辑

这是一个启用模糊逻辑的示例。您可以看到最后一个比较比前两个更相似(它是在比较内容,而不是实际哈希值):

VHOSTScan 模糊逻辑示例

增强词表

VHostScan 现在包含几个针对不同场景的专用词表。原始词表由 Codingo 基于实际渗透测试经验创建,此增强版本包含了针对现代基础设施的额外专用词表。

可用词表

  • virtual-host-scanning.txt(默认)— 通用虚拟主机扫描(Codingo 原始)
  • simple.txt — 最小词表,用于快速扫描(Codingo 原始)
  • hackthebox.txt — HTB 机器特定子域名(Codingo 原始)
  • common-vhosts.txt — 常见的虚拟主机和云服务扩展列表(增强版)
  • pentest-focused.txt — 专注于渗透测试和安全评估的主机(新)
  • cloud-modern.txt — 现代云基础设施、容器和 DevOps 工具(新)

关于每个词表的详细信息,请参阅 WORDLISTS.md。

词表使用示例

对安全评估使用渗透测试专用词表:

root@kitploit:~
$ VHostScan -t target.com -w ./wordlists/pentest-focused.txt

结合多个词表进行全面扫描:

root@kitploit:~
$ VHostScan -t target.com -w "./wordlists/common-vhosts.txt,./wordlists/cloud-modern.txt"

对现代基础设施使用云专用词表:

root@kitploit:~
$ VHostScan -t example.com -w ./wordlists/cloud-modern.txt --ssl

运行测试

本项目包含一小批测试。运行测试非常简单:

root@kitploit:~
pip install -r test-requirements.txt
python3 setup.py test

如果您考虑为项目添加新功能,请考虑同时贡献一些测试。经过良好测试的代码库是健康的代码库。:)

致谢

  • 原作者:Codingo — VHostScan 的创建者
  • 原始项目:VHostScan
  • 增强功能:社区改进,包括额外的词表和代码现代化
  • 贡献者:所有为改进 VHostScan 做出贡献的优秀人士

增强版改进

此增强版本包括:

  • 现代化的 Python 3.8+ 代码库,带有类型提示
  • 针对现代基础设施的额外专用词表
  • 改进的错误处理和性能优化
  • 扩展的文档和使用示例
  • 更好的云和容器环境支持

VHostScan 最初由 Codingo 创建,并于 2017 年 9 月在 SecTalks BNE 首次展示。此增强版本在此基础上为现代渗透测试和漏洞赏金狩猎带来了额外改进。

下载工具
参数描述
-h, --help显示帮助信息并退出
-t TARGET_HOSTS设置目标主机。
-b BASE_HOST设置在词表替换中使用的主机(默认为 TARGET)。
-w WORDLISTS设置要使用的词表。可以以逗号分隔的格式指定多个词表(例如 -w "./wordlists/simple.txt, ./wordlists/hackthebox.txt",默认为 ./wordlists/virtual-host-scanning.txt)。可用词表:simple.txt、hackthebox.txt、common-vhosts.txt、pentest-focused.txt、cloud-modern.txt、virtual-host-scanning.txt。
-p PORT设置要使用的端口(默认 80)。
-r REAL_PORTWeb 服务器的真实端口,当端口不是 80 时在头部中使用(参见 RFC2616 14.23),在通过 ssh/nc 进行 Pivot 时很有用(默认为 PORT)。
--ignore-http-codes IGNORE_HTTP_CODES逗号分隔的 HTTP 状态码列表,在虚拟主机扫描中忽略(默认 404)。
--ignore-content-length IGNORE_CONTENT_LENGTH忽略指定长度的内容长度。
--prefix PREFIX为词表中的每个项目添加前缀,例如添加 dev-<word>、test-<word> 等
--suffix SUFFIX为词表中的每个项目添加后缀,例如添加 <word>dev、<word>dev 等
--first-hit返回第一个成功结果。仅在确定没有 catch-all 配置的场景中使用(如 CTF)。
--unique-depth UNIQUE_DEPTH显示出现 x 次的页面内容的可能匹配(默认为 1)。
--ssl若设置,则连接将使用 HTTPS 而非 HTTP。
--fuzzy-logic若设置,则将所有唯一内容回复进行比较,并给出每对的相似度比率。这有助于在默认页面不是静态(例如包含时间)的情况下隔离虚拟主机。
--no-lookups禁用反向查找(识别新目标并追加到词表,默认开启)。
--rate-limit每次扫描之间的延迟时间,单位为秒(默认 0)。
--random-agent若设置,则每次扫描将使用预先定义列表中的随机用户代理。
--user-agent指定用于扫描的用户代理。
--waf若设置,则会发送简单的 WAF 绕过头部。
-oN OUTPUT_NORMAL当使用 -oN 选项并指定文件名参数时,将正常输出写入文件。
-oG OUTPUT_GREPABLE当使用 -oG 选项并指定文件名参数时,将可 grep 的输出写入文件。
-oJ OUTPUT_JSON当使用 -oJ 选项并指定文件名参数时,将 JSON 输出写入文件。
-v VERBOSE增加工具的输出以显示进度