如何使用GSAN从HTTPS网站的SSL证书中提取子域名
2023-4-26 19:3:0 Author: FreeBuf(查看原文) 阅读量:21 收藏

 关于GSAN 

GSAN这款工具能够帮助广大研究人员从HTTPS网站的SSL证书中直接提取主题别名,并向我们提供DNS名称(子域名)和虚拟服务器的相关信息。
该工具支持从HTTPS网站提取子域名,并返回一个列表文件或CSV/JSON格式的扫描结果输出。该工具并不是一个子域名爆破工具,而是一个自动化域名扫描发现工具。

 功能介绍 

1、从HTTPS网站的SSL证书中直接提取主题别名;
2、子域名提取/枚举;
3、支持使用文本文件或直接在终端窗口中以命令形式定义多个主机:端口;
4、CSV或JSON格式输出,方便导入到其他工具中;
5、支持筛选出与正在分析的域名所不匹配的域名;
6、支持与CRT.SH集成,因此可以从同一实体的证书中提取更多子域名;
7、适用于自签名证书;

 工具安装 

由于该工具基于Python开发,因此我们首先需要在本地设备上安装并配置好Python环境。

pip安装

我们可以使用pip命令完成GSAN的安装:
$ pip install --user gsan

源码获取

广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://github.com/franccesco/getaltname.git

(向右滑动,查看更多)

 工具使用 

我们有两种方法来执行GSAN,并从CRT.SH获取子域名信息:
Usage: gsan [OPTIONS] COMMAND [ARGS]...

Get subdomain names from SSL Certificates.

Options:
--version 显示工具版本信息
--help 显示工具帮助信息和退出

Commands:
crtsh 从crt.sh获取域名信息
scan 根据输入参数或文本文件扫描指定域名,格式为:主机[:端口号]

(向右滑动,查看更多)

从CRT.SH获取子域名信息

$ gsan crtsh --help
Usage: gsan crtsh [OPTIONS] [DOMAINS]...

Get domains from crt.sh

Options:
-m, --match-domain Match domain name only.
-o, --output TEXT Output to path/filename.
-t, --timeout INTEGER Set timeout for CRT.SH
--help Show this message and exit.

$ gsan crtsh facebook.com
[+] Getting subdomains for facebook.com
[+] Getting subdomains for facebook.com
[+] Results:

FACEBOOK.COM
↳ newdev.facebook.com
↳ dewey.vip.facebook.com
↳ secure.trunkstable.facebook.com
↳ facebook.com
↳ secure.intern.facebook.com
-- SNIP --
↳ channel.facebook.com
↳ extools.facebook.com
↳ china--facebook.com
↳ adtools.facebook.com
↳ ak.facebook.com

(向右滑动,查看更多)

直接从SSL证书提取子域名信息

$ gsan scan --help
Usage: gsan scan [OPTIONS] [HOSTNAMES]...

Scan domains from input or a text file, format is HOST[:PORT].

e.g: gsan scan domain1.com domain2.com:port

You can also pass a text file instead, just replace the first domain
argument for a file. eg: gsan scan filename.txt

If no ports are defined, then gsan assumes the port 443 is available.

Options:
-o, --output TEXT Output to path/filename.
-m, --match-domain Match domain name only.
-c, --crtsh Include results from CRT.SH
-t, --timeout INTEGER Set timeout [default: 3]
--help Show this message and exit.

$ gsan scan facebook.com starbucks.com:443
[+] Getting subdomains for facebook.com
[+] Getting subdomains for starbucks.com
[+] Results:

FACEBOOK.COM
↳ facebook.com
↳ facebook.net
↳ fbcdn.net
↳ fbsbx.com
↳ m.facebook.com
↳ messenger.com
↳ xx.fbcdn.net
↳ xy.fbcdn.net
↳ xz.fbcdn.net

STARBUCKS.COM
↳ starbucks.com
↳ beta.starbucks.com
↳ app.starbucks.fr
↳ starbucks.fr
↳ app.starbucks.co.uk
↳ starbucks.ie
↳ app.starbucks.com
↳ fr.starbucks.ca
↳ preview.starbucks.com
↳ starbucks.ca
↳ app.starbucks.com.br
↳ app.starbucks.ie
↳ starbucks.com.br
↳ fr.app.starbucks.ca
↳ starbucks.de
↳ starbucks.co.uk
↳ app.starbucks.de
↳ app.starbucks.ca

(向右滑动,查看更多)

gsan scan hosts.txt -o subdomains.csv
[+] Getting subdomains for facebook.com
[+] Getting subdomains for starbucks.com
[+] Getting subdomains for fakedomain.com
[!] Unable to connect to host fakedomain.com
[+] Getting subdomains for amazon.com
FACEBOOK.COM
facebook.com
facebook.net
-- SNIP --
xy.fbcdn.net
xz.fbcdn.net

STARBUCKS.COM
starbucks.com
beta.starbucks.com
-- SNIP --
app.starbucks.de
app.starbucks.ca

AMAZON.COM
amazon.co.uk
uedata.amazon.co.uk
-- SNIP --
bz.peg.a2z.com
origin2-amazon.co.jp


[+] Contents dumped into CSV file: subdomains.csv

(向右滑动,查看更多)

工具运行截图

 许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

项目地址

GSAN:https://github.com/franccesco/getaltname

参考资料

https://en.wikipedia.org/wiki/Subject_Alternative_Name
https://gfycat.com/AnotherDizzyDodobird
精彩推荐


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651223275&idx=4&sn=143ce3c91808617a9c73b5ca38e925c9&chksm=bd1de6608a6a6f76d8df51b65bedbbb38b0ecff5d5bc2d29791fcf057ca3120d9d4ee7c956e0#rd
如有侵权请联系:admin#unsafe.sh