diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-esd.spec | 397 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 399 insertions, 0 deletions
@@ -0,0 +1 @@ +/ESD-0.0.29.tar.gz diff --git a/python-esd.spec b/python-esd.spec new file mode 100644 index 0000000..2d9f534 --- /dev/null +++ b/python-esd.spec @@ -0,0 +1,397 @@ +%global _empty_manifest_terminate_build 0 +Name: python-ESD +Version: 0.0.29 +Release: 1 +Summary: Enumeration Sub Domains(枚举子域名) +License: GNU General Public License v3 (GPLv3) +URL: https://github.com/FeeiCN/ESD +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/38/d2/aad92c999615e085e6388ca48b3fa4880fc5efca59be356f3c30552065f2/ESD-0.0.29.tar.gz +BuildArch: noarch + +Requires: python3-colorlog +Requires: python3-aiodns +Requires: python3-aiohttp +Requires: python3-async-timeout +Requires: python3-requests +Requires: python3-backoff +Requires: python3-dnspython +Requires: python3-pysocks +Requires: python3-tqdm +Requires: python3-colorama + +%description +# ESD(Enumeration Sub Domain) + +[](https://pypi.org/project/ESD/) + + + +[](https://asciinema.org/a/15WhUe40eEhSbwAXZdf2RQdq9) + +## 优势 +#### 支持泛解析域名 +> 基于`RSC`(响应相似度对比)技术对泛解析域名进行枚举(受网络质量、网站带宽等影响,速度会比较慢) + +基于`aioHTTP`获取一个不存在子域名的响应内容,并将其和字典子域名响应进行相似度比对。 +超过阈值则说明是同个页面,否则则为可用子域名,并对最终子域名再次进行响应相似度对比。 + +#### 更快的速度 +> 基于`AsyncIO`异步协程技术对域名进行枚举(受网络和DNS服务器影响会导致扫描速度小幅波动,基本在250秒以内) + +基于`AsyncIO`+`aioDNS`将比传统多进程/多线程/gevent模式快50%以上。 +通过扫描`qq.com`,共`620328`条规则,找到`3421`个域名,耗时`15`分钟左右。 + +更新于2021年9月,经实测多个DNS Server做了请求数限制,大并发下存在大量连接超时和异常导致遗漏情况大幅增加,目前通过限制DNS服务器以及并发数来解决,因此建议不要过于追求速度,通过设计更合理的触发时间来解决速度变慢问题。 + +#### 更全的字典 +> 融合各类字典,去重后共620328条子域名字典 + +- 通用字典 + - 单字母、单字母+单数字、双字母、双字母+单数字、双字母+双数字、三字母、四字母 + - 单数字、双数字、三数字 +- 域名解析商公布使用最多的子域名 + - DNSPod: dnspod-top2000-sub-domains.txt +- 其它域名爆破工具字典 + - subbrute: names_small.txt + - subDomainsBrute: subnames_full.txt + +#### 更多的收集渠道 +- [X] 收集DNSPod接口泄露的子域名 +- [X] 收集页面响应内容中出现的子域名 +- [X] 收集跳转过程中的子域名 +- [X] 收集HTTPS证书透明度子域名 +- [X] 收集DNS域传送子域名 + +#### DNS服务器 +- 解决各家DNS服务商对于网络线路出口判定不一致问题 +- 解决各家DNS服务商缓存时间不一致问题 +- 解决随机DNS问题,比如fliggy.com、plu.cn等 +- 根据网络情况自动剔除无效DNS,提高枚举成功率 + +## 使用 +仅在macOS、Linux的Python3下验证过 +```bash +# 安装 +pip install esd + +# 升级 +pip install esd --upgrade +``` +**CLI命令行使用** +```bash +# 扫描单个域名 +esd -d qq.com + +# debug模式扫描单个域名 +esd=debug esd -d qq.com + +# 扫描多个域名(英文逗号分隔) +esd --domain qq.com,tencent.com + +# 扫描单个域名且过滤子域名中单个特定响应内容 +esd --domain mogujie.com --filter 搜本店 + +# 扫描单个域名且过滤子域名中多个特定响应内容 +esd --domain mogujie.com --filter 搜本店,收藏店铺 + +# 扫描文件(文件中每行一个域名) +esd --file targets.txt + +# 跳过相似度对比(开启这个选项会把所有泛解析的域名都过滤掉) +esd --domain qq.com --skip-rsc + +# 平均分割字典,加快爆破 +esd --domain qq.com --split 1/4 + +# 使用DNS域传送漏洞获取子域名 +esd --domain qq.com --dns-transfer + +# 使用HTTPS证书透明度获取子域名 +esd --domain qq.com --ca-info + +``` + +**程序调用** +```python +from ESD import EnumSubDomain +domains = EnumSubDomain('feei.cn').run() +``` + +## 后续 +- 提升扫描速度 +- 支持三级子域名,多种组合更多可能性 + +## 文档 +- https://github.com/FeeiCN/ESD/wiki + + + + +%package -n python3-ESD +Summary: Enumeration Sub Domains(枚举子域名) +Provides: python-ESD +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-ESD +# ESD(Enumeration Sub Domain) + +[](https://pypi.org/project/ESD/) + + + +[](https://asciinema.org/a/15WhUe40eEhSbwAXZdf2RQdq9) + +## 优势 +#### 支持泛解析域名 +> 基于`RSC`(响应相似度对比)技术对泛解析域名进行枚举(受网络质量、网站带宽等影响,速度会比较慢) + +基于`aioHTTP`获取一个不存在子域名的响应内容,并将其和字典子域名响应进行相似度比对。 +超过阈值则说明是同个页面,否则则为可用子域名,并对最终子域名再次进行响应相似度对比。 + +#### 更快的速度 +> 基于`AsyncIO`异步协程技术对域名进行枚举(受网络和DNS服务器影响会导致扫描速度小幅波动,基本在250秒以内) + +基于`AsyncIO`+`aioDNS`将比传统多进程/多线程/gevent模式快50%以上。 +通过扫描`qq.com`,共`620328`条规则,找到`3421`个域名,耗时`15`分钟左右。 + +更新于2021年9月,经实测多个DNS Server做了请求数限制,大并发下存在大量连接超时和异常导致遗漏情况大幅增加,目前通过限制DNS服务器以及并发数来解决,因此建议不要过于追求速度,通过设计更合理的触发时间来解决速度变慢问题。 + +#### 更全的字典 +> 融合各类字典,去重后共620328条子域名字典 + +- 通用字典 + - 单字母、单字母+单数字、双字母、双字母+单数字、双字母+双数字、三字母、四字母 + - 单数字、双数字、三数字 +- 域名解析商公布使用最多的子域名 + - DNSPod: dnspod-top2000-sub-domains.txt +- 其它域名爆破工具字典 + - subbrute: names_small.txt + - subDomainsBrute: subnames_full.txt + +#### 更多的收集渠道 +- [X] 收集DNSPod接口泄露的子域名 +- [X] 收集页面响应内容中出现的子域名 +- [X] 收集跳转过程中的子域名 +- [X] 收集HTTPS证书透明度子域名 +- [X] 收集DNS域传送子域名 + +#### DNS服务器 +- 解决各家DNS服务商对于网络线路出口判定不一致问题 +- 解决各家DNS服务商缓存时间不一致问题 +- 解决随机DNS问题,比如fliggy.com、plu.cn等 +- 根据网络情况自动剔除无效DNS,提高枚举成功率 + +## 使用 +仅在macOS、Linux的Python3下验证过 +```bash +# 安装 +pip install esd + +# 升级 +pip install esd --upgrade +``` +**CLI命令行使用** +```bash +# 扫描单个域名 +esd -d qq.com + +# debug模式扫描单个域名 +esd=debug esd -d qq.com + +# 扫描多个域名(英文逗号分隔) +esd --domain qq.com,tencent.com + +# 扫描单个域名且过滤子域名中单个特定响应内容 +esd --domain mogujie.com --filter 搜本店 + +# 扫描单个域名且过滤子域名中多个特定响应内容 +esd --domain mogujie.com --filter 搜本店,收藏店铺 + +# 扫描文件(文件中每行一个域名) +esd --file targets.txt + +# 跳过相似度对比(开启这个选项会把所有泛解析的域名都过滤掉) +esd --domain qq.com --skip-rsc + +# 平均分割字典,加快爆破 +esd --domain qq.com --split 1/4 + +# 使用DNS域传送漏洞获取子域名 +esd --domain qq.com --dns-transfer + +# 使用HTTPS证书透明度获取子域名 +esd --domain qq.com --ca-info + +``` + +**程序调用** +```python +from ESD import EnumSubDomain +domains = EnumSubDomain('feei.cn').run() +``` + +## 后续 +- 提升扫描速度 +- 支持三级子域名,多种组合更多可能性 + +## 文档 +- https://github.com/FeeiCN/ESD/wiki + + + + +%package help +Summary: Development documents and examples for ESD +Provides: python3-ESD-doc +%description help +# ESD(Enumeration Sub Domain) + +[](https://pypi.org/project/ESD/) + + + +[](https://asciinema.org/a/15WhUe40eEhSbwAXZdf2RQdq9) + +## 优势 +#### 支持泛解析域名 +> 基于`RSC`(响应相似度对比)技术对泛解析域名进行枚举(受网络质量、网站带宽等影响,速度会比较慢) + +基于`aioHTTP`获取一个不存在子域名的响应内容,并将其和字典子域名响应进行相似度比对。 +超过阈值则说明是同个页面,否则则为可用子域名,并对最终子域名再次进行响应相似度对比。 + +#### 更快的速度 +> 基于`AsyncIO`异步协程技术对域名进行枚举(受网络和DNS服务器影响会导致扫描速度小幅波动,基本在250秒以内) + +基于`AsyncIO`+`aioDNS`将比传统多进程/多线程/gevent模式快50%以上。 +通过扫描`qq.com`,共`620328`条规则,找到`3421`个域名,耗时`15`分钟左右。 + +更新于2021年9月,经实测多个DNS Server做了请求数限制,大并发下存在大量连接超时和异常导致遗漏情况大幅增加,目前通过限制DNS服务器以及并发数来解决,因此建议不要过于追求速度,通过设计更合理的触发时间来解决速度变慢问题。 + +#### 更全的字典 +> 融合各类字典,去重后共620328条子域名字典 + +- 通用字典 + - 单字母、单字母+单数字、双字母、双字母+单数字、双字母+双数字、三字母、四字母 + - 单数字、双数字、三数字 +- 域名解析商公布使用最多的子域名 + - DNSPod: dnspod-top2000-sub-domains.txt +- 其它域名爆破工具字典 + - subbrute: names_small.txt + - subDomainsBrute: subnames_full.txt + +#### 更多的收集渠道 +- [X] 收集DNSPod接口泄露的子域名 +- [X] 收集页面响应内容中出现的子域名 +- [X] 收集跳转过程中的子域名 +- [X] 收集HTTPS证书透明度子域名 +- [X] 收集DNS域传送子域名 + +#### DNS服务器 +- 解决各家DNS服务商对于网络线路出口判定不一致问题 +- 解决各家DNS服务商缓存时间不一致问题 +- 解决随机DNS问题,比如fliggy.com、plu.cn等 +- 根据网络情况自动剔除无效DNS,提高枚举成功率 + +## 使用 +仅在macOS、Linux的Python3下验证过 +```bash +# 安装 +pip install esd + +# 升级 +pip install esd --upgrade +``` +**CLI命令行使用** +```bash +# 扫描单个域名 +esd -d qq.com + +# debug模式扫描单个域名 +esd=debug esd -d qq.com + +# 扫描多个域名(英文逗号分隔) +esd --domain qq.com,tencent.com + +# 扫描单个域名且过滤子域名中单个特定响应内容 +esd --domain mogujie.com --filter 搜本店 + +# 扫描单个域名且过滤子域名中多个特定响应内容 +esd --domain mogujie.com --filter 搜本店,收藏店铺 + +# 扫描文件(文件中每行一个域名) +esd --file targets.txt + +# 跳过相似度对比(开启这个选项会把所有泛解析的域名都过滤掉) +esd --domain qq.com --skip-rsc + +# 平均分割字典,加快爆破 +esd --domain qq.com --split 1/4 + +# 使用DNS域传送漏洞获取子域名 +esd --domain qq.com --dns-transfer + +# 使用HTTPS证书透明度获取子域名 +esd --domain qq.com --ca-info + +``` + +**程序调用** +```python +from ESD import EnumSubDomain +domains = EnumSubDomain('feei.cn').run() +``` + +## 后续 +- 提升扫描速度 +- 支持三级子域名,多种组合更多可能性 + +## 文档 +- https://github.com/FeeiCN/ESD/wiki + + + + +%prep +%autosetup -n ESD-0.0.29 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-ESD -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.29-1 +- Package Spec generated @@ -0,0 +1 @@ +abeb3d1eaa121e3de5ccb50d7d2d7d4d ESD-0.0.29.tar.gz |