在不可解析的域名中搜索虚拟主机。
git clone https://github.com/dariusztytko/vhosts-sieve.git
pip3 install -r vhosts-sieve/requirements.txt
获取子域名列表(例如使用 Amass)
$ amass enum -v -passive -o domains.txt -d example.com -d example-related.com
使用 vhosts-sieve.py 查找虚拟主机
$ python3 vhosts-sieve.py -d domains.txt -o vhosts.txt
日志目录: None
最大解析域名数: -1
最大扫描IP数: -1
最大待检虚拟主机候选数: -1
扫描端口: [80, 443, 8000, 8008, 8080, 8443]
SNI 启用: False
线程数: 16
HTTP 超时: 5.0s
TCP 超时: 3.0s
详细模式: False
用户代理: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
正在解析 12 个域名...
正在扫描 1 个 IP...
正在查找虚拟主机(活跃IP: 1,虚拟主机候选: 7)...
已保存结果(4 个虚拟主机)
输出文件包含按以下格式发现的虚拟主机
165.22.264.81 80 http False zxcv.example.com 301
165.22.264.81 443 https False zxcv.example.com 200 dev.example.com 200 admin.example.com 401
每行包含以下信息:
发现的虚拟主机的响应可以被记录(-l,--logs-dir 选项)。
发现虚拟主机需执行以下步骤:
虚拟主机候选验证按以下方式执行:
请注意,响应状态码不被考虑。主要假设是,只要与参考响应不同,就值得详细分析。即使是 4xx 和 5xx 响应。
对于 HTTPS 协议,通过 Host 头和 SNI(TLS 扩展)发送虚拟主机候选名称可能有用。 这允许通过配置不良的 SNI 代理。 使用 --enable-sni 选项启用 SNI 模式。
对于拥有数千个子域名的大型网络,检查所有虚拟主机候选可能需要数小时。以下选项可用于加速:
此外,建议使用 -v(详细模式)选项以持续查看结果。
请参见 CHANGELOG