证书透明度Certificate Transparency

你可以在我们的技术博客“证书透明的光明和黑暗面”:https://blog.appsecco.com/certificate-transparency-the-bright-side-and-the-dark-side-8aa47d9a6616上阅读有关证书透明度的更多信息。

1.证书透明度 - OSINT角度下的CT

按照CT的设计,证书透明度(CT)日志包含参与CA为任何给定域颁发的所有证书。SSL / TLS证书通常包含域名,子域名和电子邮件地址。这些日志可以公开获取,任何人都可以查看这些日志。这使的证书透明成为攻击者的宝库。

通过查看CT日志,攻击者可以以完全被动的方式收集有关组织基础结构的大量信息,即内部域,电子邮件地址。

2.搜索证书透明CT日志

有各种搜索引擎收集CT日志,让任何人搜索它们:

  1. https://crt.sh/
  2. https://censys.io/
  3. https://developers.facebook.com/tools/ct/
  4. https://google.com/transparencyreport/https/ct/

(1)使用crt.sh

  • 在crt.sh Web界面上https://crt.sh,使用类似于以下的搜索运算符来提取具有模式的任何域的证书(在本例中为example.com)。使用像这样的自由搜索算子可能会导致一些误报,但很难错过任何潜在的子域
%example.com

  • crt.sh提供RSS源,可以使用URL https://crt.sh/atom?q=%wikimedia.org查询

  • crt.sh为他们的数据提供PostgreSQL接口。下面的脚本使用crt.shPostgreSQL接口提取给定域名的子域

#!/bin/sh

# Script by Hanno Bock - https://github.com/hannob/tlshelpers/blob/master/getsubdomain

query="SELECT ci.NAME_VALUE NAME_VALUE FROM certificate_identity ci WHERE ci.NAME_TYPE = 'dNSName' AND reverse(lower(ci.NAME_VALUE)) LIKE reverse(lower('%.$1'));"

echo $query | \
    psql -t -h crt.sh -p 5432 -U guest certwatch | \
    sed -e 's:^ *::g' -e 's:^*\.::g' -e '/^$/d' | \
    sort -u | sed -e 's:*.::g'

https://github.com/appsecco/the-art-of-subdomain-enumeration/blob/master/crtsh_enum_psql.sh

3.跟踪组织的子域名

https://developers.facebook.com/tools/ct/

  • Facebook的证书透明度监控工具不仅可以搜索CT日志,而且还有订阅选项,每当在您订阅的域的CT日志中找到新证书时,将发送电子邮件警报
  • 这有助于域所有者跟踪为其管理的域颁发的证书,另一方面,攻击者可以使用它来跟踪他们所针对的组织的域,以快速了解创建的任何新子域

4.证书透明度的缺陷

  • 证书透明度日志只能增加不能减少,这意味着一旦SSL / TLS证书附加到CT日志,就无法删除它们
  • 明显缺点就是证书透明CT日志中找到的域/子域名可能已经不存在,因此无法解析为任何有效的IP地址

5.使用Massdns提取可解析子域

  • Massdns是一个超快的DNS解析器,可以在相当短的时间内解析大量的域名
  • Massdns可以与从CT日志中提取子域的脚本结合使用,以快速识别唯一可解析的域名
# ct.py - extracts domain names from CT Logs(shipped with massdns)

# massdns - will find resolvable domains & adds them to a file

./ct.py icann.org | ./bin/massdns -r resolvers.txt -t A -q -a -o -w icann_resolvable_domains.txt -

6.使用Censys.io 收集子域名数据

  • Censys.io汇总了作为scans.io项目的一部分收集的数据
  • Censys.io聚合SSL / TLS证书并允许我们搜索它们,因此它可能有助于我们发现新的子域

results matching ""

    No results matching ""