FeeiCN / ESD

Enumeration sub domains(枚举子域名)
https://yuque.com/esd
GNU General Public License v3.0
1.06k stars 161 forks source link
brute-force security-scanner security-tools subdomain-brute subdomain-scanner

ESD(Enumeration Sub Domain)

PyPI PyPI - Python Version license

asciicast

优势

支持泛解析域名

基于RSC(响应相似度对比)技术对泛解析域名进行枚举(受网络质量、网站带宽等影响,速度会比较慢)

基于aioHTTP获取一个不存在子域名的响应内容,并将其和字典子域名响应进行相似度比对。 超过阈值则说明是同个页面,否则则为可用子域名,并对最终子域名再次进行响应相似度对比。

更快的速度

基于AsyncIO异步协程技术对域名进行枚举(受网络和DNS服务器影响会导致扫描速度小幅波动,基本在250秒以内)

基于AsyncIO+aioDNS将比传统多进程/多线程/gevent模式快50%以上。 通过扫描qq.com,共661593条规则,找到3442个域名,耗时15分钟左右。

更新于2021年9月,经实测多个DNS Server做了请求数限制,大并发下存在大量连接超时和异常导致遗漏情况大幅增加,目前通过限制DNS服务器以及并发数来解决,因此建议不要过于追求速度,通过设计更合理的触发时间来解决速度变慢问题。

更全的字典

融合各类字典,去重后共620328条子域名字典

更多的收集渠道

DNS服务器

使用

# 安装
pip install esd

CLI命令行使用

# 扫描单个域名
esd -d qq.com

程序调用

from ESD import EnumSubDomain
domains = EnumSubDomain('feei.cn').run()

文档