如何使用GSAN从HTTPS网站的SSL证书中提取子域名
字数 1086 2025-08-11 08:36:33
GSAN工具使用指南:从HTTPS网站SSL证书中提取子域名
工具概述
GSAN是一款专门用于从HTTPS网站的SSL证书中提取主题别名(Subject Alternative Names, SANs)的工具,能够帮助安全研究人员快速发现目标网站的子域名和相关虚拟服务器信息。
主要特点
- 非爆破式扫描:通过SSL证书而非暴力破解获取子域名
- 多格式输出:支持列表文件、CSV和JSON格式
- 集成CRT.SH:可从证书透明度日志中获取更多子域名
- 自签名证书支持:适用于各类证书环境
安装指南
前提条件
- Python环境(推荐Python 3.x)
安装方法
方法一:使用pip安装
pip install --user gsan
方法二:源码安装
git clone https://github.com/franccesco/getaltname.git
cd getaltname
python setup.py install
使用教程
1. 从CRT.SH获取子域名
基本命令
gsan crtsh 域名
示例
gsan crtsh facebook.com
高级选项
-m/--match-domain:仅匹配指定域名-o/--output:指定输出文件路径-t/--timeout:设置CRT.SH查询超时时间(秒)
完整命令示例
gsan crtsh facebook.com -m -o facebook_subs.txt -t 10
2. 直接从SSL证书提取子域名
基本命令
gsan scan 域名[:端口]
示例
gsan scan facebook.com starbucks.com:443
高级选项
-o/--output:指定输出文件路径-m/--match-domain:仅匹配指定域名-c/--crtsh:同时从CRT.SH获取结果-t/--timeout:设置连接超时时间(默认3秒)
完整命令示例
gsan scan facebook.com -m -c -o results.csv -t 5
3. 批量扫描多个域名
使用文本文件输入
gsan scan hosts.txt -o subdomains.csv
hosts.txt文件格式
domain1.com
domain2.com:8443
domain3.com
输出格式说明
1. 控制台输出格式
域名
↳↳ 子域名1
↳↳ 子域名2
...
2. CSV输出格式
包含域名和子域名的结构化数据,适合导入其他工具
3. JSON输出格式
结构化JSON数据,便于程序处理
实用技巧
- 端口指定:对于非443端口服务,使用
domain:port格式 - 结果过滤:使用
-m选项只显示与目标域名匹配的子域名 - 组合查询:使用
-c选项同时查询CRT.SH获取更全面结果 - 错误处理:无法连接的域名会在结果中标记
应用场景
- 渗透测试前期侦察:快速获取目标系统的子域名资产
- 安全监控:定期扫描发现新增的子域名
- 资产梳理:帮助企业梳理互联网资产
- 漏洞评估:扩大攻击面分析范围
注意事项
- 该工具仅从证书中提取信息,不会进行主动扫描或攻击
- 部分子域名可能已不再使用但仍存在于证书中
- 自签名证书可能包含内部域名信息
- 结果需要人工验证和整理
项目信息
- 许可证:MIT开源协议
- 项目地址:https://github.com/franccesco/getaltname
通过合理使用GSAN工具,安全研究人员可以高效地从SSL证书中提取有价值的子域名信息,为后续的安全评估工作奠定基础。