子域名枚举艺术深度剖析

子域名枚举是信息收集中关键的一步,细节很大程度决定战果。本文参考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'

二、搜索引擎

推荐DuckDuckGo,每个人都有自己用着顺手的搜索引擎,just enjoy it。

  • 谷歌
  • 必应
  • DuckDuckGo
  • 百度

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

三、DNS数据聚合

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

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

四、ASN

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

  • 通过域名,可以查询ASN

  • 通过ASN,可以查询属于ASN的所有IP范围
whois -h whois.radb.net  -- '-i origin AS36459' | grep -Eo "([0-9.]+){4}/[0-9]+" | uniq

五、SAN

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

  • 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 ) )

主动枚举

字典枚举

除了知名度很高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
  • SPF

利用脚本

HTTP headers

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

利用脚本

自动化工具

参考

https://appsecco.com/books/subdomain-enumeration/

原文地址:https://www.cnblogs.com/mark-zh/p/11956872.html

时间: 2024-10-04 10:21:59

子域名枚举艺术深度剖析的相关文章

子域名枚举工具Sublist3r

子域名枚举工具Sublist3r 通过搜集子域名信息,可以找到目标的关联网站,找寻相应的漏洞.Kali Linux提供一款基于OSINT的枚举工具Sublist3r.该工具会搜索多个数据来源,如Google.Yahoo.Bing.Baidu.Ask.Netcraft.Virustotal.同时,该工具也支持暴力枚举功能.对搜索到的子域名,用户还可以检测特定端口的开放情况,便于后期的渗透

子域名收集的一些姿势

测试dns域传送 测试方式如图: 当然,这种方式不一定都能成功,但也不失为一种获取二级域名的方式. 反查whois 工具:站长工具 1 查询whois http://whois.chinaz.com/baidu.com 2 反查whois http://whois.chinaz.com/reverse?host=domainmaster@baidu.com&ddlSearchMode=1 获得关联域名信息 通过搜索引擎 搜索推荐工具:https://github.com/laramies/the

[ 1011] &lt;&lt;C语言深度剖析&gt;&gt; 测试 TEST

/******************************** **  wzsts<C语言深度剖析>2016 ** **                    ** **     fun1~fun6代表6章节内容 ** **fun10~fun19代表fun1所调用函数 ** **                    ** **     世界因规则而美好     ** ** #if(1)可运行,#if(0)不运行. ** ** Data  Author   PC       ** **16

java-反射深度剖析

Java反射是Java语言一个很重要的特征,简单剖析下反射的定义.原理.使用.性能及应用场景. (一)定义 程序运行时,允许改动程序结构或变量类型,这种语言称为动态语言.java不属于动态语言,但提供了RTTI(Run-time Type Identification)运行时类别识别.RTTI分为两种方式,一种是编译运行时已知悉类型,一种是反射机制. (二)原理 在<深入java虚拟机>中提到,java文件被编译成class文件,JVM类加载器加,载class字节码到方法区,然后在堆中生成Cl

子域名收集的方法

一. 在百度或者goole中输入关键字site:domain 收集子域名信息 二. (1) 在站长工具同查询同一ip的所有子域名 http://s.tool.chinaz.com/same?s=www.nanshan.edu.cn&page= (2) ip反查域名 http://dns.aizhan.com/www.nanshan.edu.cn/          (有的时候貌似进不去) 三. 暴力破解工具fierce kali linux里面自带工具 输入fierce -h 查看说明文档 例如

libevent源码深度剖析六

libevent源码深度剖析六 --初见事件处理框架张亮 前面已经对libevent的事件处理框架和event结构体做了描述,现在是时候剖析libevent对事件的详细处理流程了,本节将分析 libevent的事件处理框架event_base和libevent注册.删除事件的具体流程,可结合前一节libevent对event的管理. 1 事件处理框架-event_base 回想Reactor模式的几个基本组件,本节讲解的部分对应于Reactor框架组件.在libevent中,这就表现为event

子域名查询技术

子域名查询是渗透测试中的重要一环,收集尽可能多的子域名就是尽可能地扩大我们的攻击面和了解网络内部结构. 子域名保存位置 利用点 具体用法 DNS服务器 区域传送漏洞 dig @ns.dnsdomain.com target.com axfr 主站链接 网站爬虫 百度site:target.com 被动解析 字典枚举解析 fierce -dns target.com [-wordlist wordlist.txt] 第三方数据库 调用第三方数据库接口 subdomain.chaxun.la.pyt

编程珠玑之关键字(1)--《c语言深度剖析》整理(转)

一.最快关键字register 关键字regiter请求编译器尽可能的将变量存在CPU的寄存器中.有几点注意的地方. 1.register变量必须是能被CPU寄存器所接受的类型,这通常意味着register变量必须是一个单个的值,并且其长度应小于或等于整型的长度. 但是,有些机器的寄存器也能存放浮点数. 2.register变量可能不存放在内存中,所以不能用取址符运算符“ & ”. 3.只有局部变量和形参可以作为register变量,全局变量不行. 4.静态变量不能定义为register.  总

信息收集-收集子域名信息

课程内容1.子域名介绍2.挖掘子域名重要性3.子域名挖掘方法4.刷洞思路 1.子域名介绍顶级域名包括".com".".net".".org".".cn"等等. 子域名(Subdomain Name),凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名. 我国在国际互联网络信息中心正式注册并运行的顶级域名是.cn,这也是我国的一级域名.在顶级域名之下,我国的二级域名又分为类