关于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:【GitHub传送门

参考资料

https://en.wikipedia.org/wiki/Subject_Alternative_Name

https://gfycat.com/AnotherDizzyDodobird

本文作者:Alpha_h4ck, 转自FreeBuf