如何使用CTFR并利用证书透明日志获取HTTPS网站子域名
字数 1000 2025-08-11 08:36:31
使用CTFR工具通过证书透明日志获取HTTPS网站子域名
关于CTFR工具
CTFR是一款功能强大的子域名枚举工具,它能够在几秒钟内获取HTTPS网站的所有子域名。该工具的最大特点是:
- 不使用传统的字典攻击技术
- 不依赖暴力破解方法
- 通过查询证书透明度日志来获取子域名信息
证书透明度(CT)背景
证书透明度(Certificate Transparency, CT)是谷歌推出的一个项目,旨在解决SSL证书系统中的结构缺陷:
-
解决的问题:
- 修复SSL证书系统的结构缺陷
- 增强HTTPS连接的可靠性和有效性
- 防止网站欺骗、服务器冒充和中间人攻击
-
工作原理:
- 所有证书颁发机构(CA)必须将颁发的证书记录到公共日志中
- 这些日志是公开可查的
- 每个HTTPS网站的子域名都会在证书中体现
环境准备
系统要求
- Python 3+环境
- pip3包管理工具
安装步骤
-
安装pip3(Ubuntu/Debian系统):
sudo apt-get install python3-pip -
克隆CTFR项目:
git clone https://github.com/UnaPibaGeek/ctfr.git -
安装依赖:
cd ctfr pip3 install -r requirements.txt
使用Docker运行
-
拉取Docker镜像:
docker pull unapibageek/ctfr -
运行容器(示例):
docker container run --rm unapibageek/ctfr -d starbucks.com
工具参数说明
| 参数 | 缩写 | 描述 | 是否必须 |
|---|---|---|---|
--domain |
-d |
指定目标域名 | 是 |
--output |
-o |
指定输出文件路径 | 否 |
使用示例
-
基本用法:
python3 ctfr.py -d example.com -
将结果保存到文件:
python3 ctfr.py -d facebook.com -o /path/to/subdomains.txt
工作原理详解
CTFR通过以下步骤获取子域名:
- 查询证书透明度日志
- 获取目标域名的所有证书记录
- 从证书中提取所有包含目标域名的条目
- 解析出所有子域名
优势与局限
优势
- 高效快速:几秒钟内可获取结果
- 无需爆破:不依赖字典或暴力破解
- 全面性:能发现不常见的子域名
- 隐蔽性:不会对目标服务器产生大量请求
局限
- 仅适用于HTTPS网站
- 只能获取已申请证书的子域名
- 可能无法获取内部或未公开的子域名
许可证
CTFR遵循GPL-3.0开源许可证协议。
项目地址
GitHub仓库:https://github.com/UnaPibaGeek/ctfr
安全注意事项
- 仅将本工具用于合法授权的安全测试
- 未经授权扫描他人网站可能违反法律
- 获取的子域名信息应妥善保管
- 建议在测试前获取书面授权
通过以上方法,安全研究人员可以高效地枚举目标网站的子域名,为后续的安全评估提供基础信息。