欢迎访问快速建站网站我们提供建站工具系统

onforall子域名收集工具

作者:jcmp      发布时间:2021-05-08      浏览量:0
一、OneForAll 简介在 渗透

一、OneForAll 简介

在 渗透测试 中 信息收集 的重要性不言而喻, 子域名 收集是 信息收集 中必不可少且非常重要的一环,目前网上也开源了许多 子域收集的工具 ,但是总是存在以下部分问题:

不够强大 ,子域收集的接口不够多,不能做到对 批量子域自动收集 ,没有自动子域解析,验证, FUZZ 以及信息拓展等功能。

不够友好 ,固然命令行模块比较方便,但是当可选的参数很多,要实现的操作复杂,用命令行模式就有点不够友好,如果有交互良好,高可操作的前端那么使用体验就会好很多。

缺少维护 ,很多工具几年没有更新过一次,issues和PR是啥,不存在的。

效率问题 ,没有利用多进程,多线程以及异步协程技术,速度较慢。

为了解决以上痛点,此项目应用而生,我希望 OneForAll 是一款集百家之长,功能强大的全面快速子域收集终极神器。

二、OneForAll 功能特性

收集能力强大 ,详细模块请阅读收集模块说明。

利用证书透明度收集子域(目前有6个模块:censys_api,certdb_api,certspotter,crtsh,entrust,google)。

利用 DNS 数据集收集子域(目前有16个模块:binaryedge_api,circl_api,hackertarget,riddler,bufferover,dnsdb,ipv4info,robtex,chinaz,dnsdb_api,netcraft,securitytrails_api,chinaz_api,dnsdumpster,ptrarchive,sitedossier)。

利用 搜索引擎 发现子域(目前有15个模块:ask,bing_api,fofa_api,shodan_api,yahoo,baidu,duckduckgo, google ,so,yandex,bing,exalead,google_api,sogou,zoomeye_api),在搜索模块中除特殊搜索引擎,通用的搜索引擎都支持自动排除搜索,全量搜索,递归搜索。

处理功能强大 ,发现的子域结果支持自动去除,自动DNS解析,HTTP请求探测,自动移除无效子域,拓展子域的Banner信息,最终支持的导出格式有csv,tsv,json,yaml,html,xls,xlsx,dbf,latex,ods。

速度极速 ,收集模块使用多线程调用, 爆破 模块使用异步多进程多协程,DNS解析和 HTTP 请求使用异步多协程。

三、OneForAll 安装与使用

由于该项目处于开发中,会不断进行更新迭代,下载使用最好克隆最新项目。

安装要求:Python 3.6-3.7

安装步骤

下载更新:git clone https://github.com/shmilylty/OneForAll.git。

安装依赖

使用:pipenvpip3 install pipenv cd OneForAll/oneforall pipenv install python 3.7.4 pipenv run python oneforall.py --help。

使用:pip3cd OneForAll/oneforall pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ python3 oneforall.py --help。

如果在安装依赖过程中发现编译某个依赖库失败时可以参考编译失败解决方法,如果还没有解决欢迎加群反馈。

使用示例

1python3 oneforall.py --target example.com run。

四、使用帮助

五、命令行参数只提供了一些常用参数,更多详细的参数配置请见config.py,OneForAll命令行界面基于Fire实现。

oneforall.py:主程序入口

oneforall.py里有调用aiobrute.py和dbexport.py,为了方便进行子域爆破和数据库导出独立出了aiobrute.py和dbexport.py,这两个文件可以单独运行,并且所接受参数要更丰富一点。

oneforall.py使用帮助

1pipenv run python oneforall.py --help。

aiobrute.py使用帮助

关于泛解析问题处理程序首先会访问一个随机的子域判断是否泛解析,如果使用了泛解析则是通过以下判断处理:

一是主要是与泛解析的 IP 集合和TTL值做对比。

二是多次解析到同一IP集合次数(默认设置为10,可以在config.py设置大小)。

考虑爆破效率问题目前还没有加上HTTP响应体相似度对比和响应体内容判断 经过测试在16核心的CPU,使用16进程64协程,100M带宽的环境下,设置任务分割为50000,跑两百万 字典 大概10分钟左右跑完,大概3333个子域每秒。

1pipenv run python aiobrute.py --help。

dbexport.py使用帮助

1pipenv run python dbexport.py --help。

项目地址: https://github.com/shmilylty/OneForAll。