26

子域名枚举的艺术深度剖析

 4 years ago
source link: https://www.freebuf.com/articles/web/220344.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

子域名枚举是信息收集中关键的一步,细节很大程度决定战果。本文参考The Art of Subdomain Enumeration,加上实践运用进行总结。

被动枚举

一、证书透明度

证书

当通过HTTPS访问web时,网站向浏览器提供数字证书,此证书用于识别网站的主机名,由证书颁发机构(CA,Certificate Authority)颁发。

证书透明度

证书透明度(Certificate Transparency)简称CT,主要用于将证书记录到公开的 CT log 中,日志可以被任何人浏览。

通过CT log搜索

https://crt.sh/

https://censys.io/


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

https://google.com/transparencyreport/https/ct/

利用crt.sh,一行代码收集子域名,代码是从国外漏洞赏金猎人那里拷贝的,更多 one line ,后面持续更新。

curl -fsSL -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:69.0) Gecko/20100101 Firefox/69.0" "https://crt.sh/?CN=%25.github.com" | sort -n | uniq -c | grep -o -P '(?<=\<TD\>).*(?=\<\/TD\>)' | sed -e '/white-space:normal/d'

aUrEnea.jpg!web

二、搜索引擎

推荐DuckDuckGo,just enjoy it。

谷歌

必应

DuckDuckGo

百度

抛砖引玉:),百度子域名枚举效果如下,其实sublist3r也集成了百度、谷歌、必应,接下来会在DNS数据聚合中介绍。

JnYz2i7.jpg!web

三、DNS数据聚合

利用第三方服务进行DNS枚举,它们聚集大量DNS数据集,可以通过它们查找子域。常见第三方服务例如DNSdumpster和Netcraft。

推荐 Sublist3r神器 ,Sublist3r神器集成了Netcraft、Virustotal、ThreatCrowd、DNSdumpster和ReverseDNS等等,你值得拥有。

2IbEjyJ.jpg!web

四、ASN

ASN(Autonomous System Numbers)自治系统编号。互联网可以认为由自治系统组成,例如一个全球公司,各国都有分公司,每个分公司都是一个自治系统,为了便于管理,需要给每个系统进行编号,对应的编号称为ASN。

通过域名,可以查询ASN

3aeIZr3.jpg!web

通过ASN,可以查询属于ASN的所有IP范围

whois -h whois.radb.net  -- '-i origin AS36459' | grep -Eo "([0-9.]+){4}/[0-9]+" | uniq

iMJreqa.jpg!web

五、SAN

SAN(Subject Alternate Name)主题备用名称,主题备用名称证书简单来说,在需要多个域名,将其用于各项服务时,可使用SAN证书。允许在安全证书中使用subjectAltName字段将多种值与证书关联,这些值被称为主题备用名称。名称可包括:IP地址、DNS名称等。

ue2UvqM.jpg!web

appsecco提供的脚本

sed -ne 's/^\( *\)Subject:/\1/p;/X509v3 Subject Alternative Name/{
  N;s/^.*\n//;:a;s/^\( *\)\(.*\), /\1\2\n\1/;ta;p;q; }' < <(
  openssl x509 -noout -text -in <(
      openssl s_client -ign_eof 2>/dev/null <<<$'HEAD / HTTP/1.0\r\n\r' \
          -connect xx.com:443 ) )

naAFneN.jpg!web

主动枚举

一、字典枚举

除了知名度很高layer,推荐一款快速基于浏览器的枚举子域名的 神器

传送门

二、DNS区域传送

这个就不用多说了,很经典的一个漏洞。

dig @ns.example.com example=.com AXFR

三、DNSSEC区域漫步

DNSSEC(Domain Name System Security Extensions),DNS安全扩展,主要用于验证DNS数据来源和数据是否被篡改。

DNSSEC通过向现有DNS记录添加签名来增强安全性,这些签名与常见记录类型一起存储。由于加密签名,DNSSEC处理不存在域时存在问题,可以区域遍历。

对使用NSEC记录的DNSSEC区域,使用ldns-walk测试区域遍历

ldns-walk @8.8.8.8 iana.org

利用nsec3walker收集NSEC3哈希值并破解哈希值

# Collect NSEC3 hashes of a domain
$ ./collect insecuredns.com > insecuredns.com.collect
# Undo the hashing, expose the sub-domain information.
$ ./unhash < insecuredns.com.collect > insecuredns.com.unhash
# Listing only the sub-domain part from the unhashed data
$ cat icann.org.unhash | grep "icann" | awk '{print $2;}'
del.icann.org.
access.icann.org.
charts.icann.org.
communications.icann.org.
... snipped ...
redis.icann.org.
svn.icann.org.
admin.icann.org.
orbis.icann.org.
jira.icann.org.
omblog.icann.org.
pptr.icann.org.
splunk.icann.org.
nomcom.icann.org.
rssac.icann.org.
sftp.icann.org.
netscan.icann.org.

四、DNS记录

CNAME   别名记录,把一个域名解析到另一个域名 
SPF     SPF是通过域名的TXT记录来进行设置的,SPF记录列出了所有被授权代表域名发送电子邮件的主机

CNAME

B3qQBfZ.jpg!web

SPF JJnEfiA.jpg!web

利用脚本

zAZrIbQ.gif

五、HTTP headers

Content-Security-Policy     简而言之就是白名单,主要用于防范XSS

利用脚本

VnE7naj.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK