Coder Social home page Coder Social logo

esd's Introduction

ESD(Enumeration Sub Domain)

PyPI PyPI - Python Version license

asciicast

优势

支持泛解析域名

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

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

更快的速度

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

基于AsyncIO+aioDNS将比传统多进程/多线程/gevent模式快50%以上。 通过扫描qq.com,共170083条规则,找到1913个域名,耗时163秒左右,平均1000+条/秒

更全的字典

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

  • 通用字典
    • 单字母、单字母+单数字、双字母、双字母+单数字、双字母+双数字、三字母
    • 单数字、双数字、三数字
  • 域名解析商公布使用最多的子域名
    • DNSPod: dnspod-top2000-sub-domains.txt
  • 其它域名爆破工具字典
    • subbrute: names_small.txt
    • subDomainsBrute: subnames_full.txt

更多的收集渠道

  • 收集DNSPod接口泄露的子域名
  • 收集页面响应内容中出现的子域名
  • 收集跳转过程中的子域名
  • 收集HTTPS证书透明度子域名
  • 收集DNS域传送子域名
  • 收集搜索引擎子域名

DNS服务器

  • 解决各家DNS服务商对于网络线路出口判定不一致问题
  • 解决各家DNS服务商缓存时间不一致问题
  • 解决随机DNS问题,比如fliggy.com、plu.cn等

使用

仅在Python3下验证过

# 安装
pip install esd

# 升级
pip install esd --upgrade

CLI命令行使用

# 扫描单个域名
esd qq.com

# debug模式扫描单个域名
esd=debug esd qq.com

# 扫描多个域名(英文逗号分隔)
esd qq.com,tencent.com

# 扫描单个域名且过滤子域名中单个特定响应内容
esd mogujie.com 搜本店

# 扫描单个域名且过滤子域名中多个特定响应内容
esd mogujie.com 搜本店,收藏店铺

# 扫描文件(文件中每行一个域名)
esd targets.txt

# 跳过相似度对比(开启这个选项会把所有泛解析的域名都过滤掉)
esd qq.com --skip-rsc

程序调用

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

后续

  • 提升扫描速度
  • 支持三级子域名,多种组合更多可能性

参考

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.