使用者可选名称
字段值Censys_subdomain_enum.py
工具描述:提取子域名,从Censys的SSL/TLS证书中收集子域名
pip install censys
git clone https://xxx.com/appsecco/the-art-of-subdomain-enumeration.git
python censys_enumeration.py target.com
证书透明度(Certificate Transparency)简称CT,主要用于将证书记录到公开的CT log中,日志可以被任何人浏览。
CT log
https://crt.sh/
https://censys.io/
https://developers.facebook.com/tools/ct/
谷歌证书透明度报告:https://transparencyreport.google.com/https/certificates
Crt_enum_web.py
工具描述:解析https://crt.sh/页面的子域名
pip install psycopg2
git clone https://xxx.com/appsecco/the-art-of-subdomain-enumeration.git
python3 crtsh_enum_web.py target.com
Sublist3r
工具描述:接口Baidu, Yahoo, Google, Bing, Ask, Netcraft, DNSdumpster, VirusTotal, Threat Crowd, SSL Certificates, PassiveDNS
git clone https://xxx.com/aboul3la/Sublist3r.git
cd Sublist3r
pip install -r requirements.txt
./sublist3r.py -d target.com -o $outfile
./sublist3r.py -b -d target.com -o $outfile
通过域名查询到 ASN,再通过 ASN 查询到所属的所有 ip 范围
SAN(Subject Alternate Name)主题备用名称,主题备用名称证书简单来说,在需要多个域名,将其用于各项服务时,可使用SAN证书。允许在安全证书中使用subjectAltName字段将多种值与证书关联,这些值被称为主题备用名称。名称可包括:IP地址、DNS名称等。
San_subdomain_enum.py
工具描述:SSL/TLS证书中的SAN获取子域名
git clone https://xxx.com/appsecco/the-art-of-subdomain-enumeration.git
./san_subdomain_enum.py target.com
Windows:
1. nslookup命令进入交互式shell
2. server命令 参数设定查询将要使用的DNS服务器
3. ls命令列出某个域中的所有域名
Linux:
dig @1.1.1.1 0sec.com.cn axfr
Ldns-walk
工具描述:DNSSEC zone walking, 如果DNSSEC NSEC开启,可以获得全部域名。
aptitude install ldnsutils
ldns-walk target.com
ldns-walk @nsserver.com target.com
SPF是通过域名的TXT记录来进行设置的,SPF记录列出了所有被授权代表域名发送电子邮件的主机
Assets-from-spf
工具描述:SPF域名记录
git clone https://xxx.com/yamakira/assets-from-spf.git
pip install click ipwhois
python assets_from_spf.py target.com
Domains-from-csp
工具描述:从CSP头提取子域名
git clone https://xxx.com/yamakira/domains-from-csp.git
pip install click
python csp_parser.py $URL
python csp_parser.py $URL -r
AltDNS
工具描述:通过换置&排序技术发现子域名
git clone https://xxx.com/infosec-au/altdns.git
cd altdns
pip install -r requirements.txt
./altdns.py -i subdomains.txt -o data_output -w words.txt -r -s results_output.txt
目前最好的解决方式是通过先获取一个绝对不存在域名的响应内容,再遍历获取每个字典对应的子域名的响应内容,通过和不存在域名的内容做相似度比对,来枚举子域名,但这样的实现是以牺牲速度为代价
通过证书/DNS/爬虫/威胁情报/搜索引擎 收集,支持子域名爆破(判断泛解析)和多线程调用等