Windows系统下安装与使用Oneforall
一:Oneforall简介
OneForAll,是 shmilylty 在 Github 上开源的子域收集工具。其功能特点有:
1.收集能力强大。
①利用证书透明度收集子域(目前有6个模块:censys_api、certspotter、crtsh、entrust、google、spyse_api)
②常规检查收集子域(目前有4个模块:域传送漏洞利用axfr、检查跨域策略文件cdx、检查HTTPS证书cert、检查内容安全策略csp、检查robots文件robots、检查sitemap文件sitemap、利用NSEC记录遍历DNS域dnssec、NSEC3记录等模块)
③利用网上爬虫档案收集子域(目前有2个模块:archivecrawl、commoncrawl)
④利用DNS数据集收集子域(目前有23个模块:binaryedge_api、 bufferover,、cebaidu、 chinaz、 chinaz_api、 circl_api、dnsdb_api,、dnsdumpster, hackertarget、 ip138、ipv4info_api、netcraft、passivedns_api、 ptrarchive、qianxun、rapiddns、riddler, robtex、 securitytrails_api、 sitedossier、 threatcrowd、wzpc、ximcx)
⑤利用DNS查询收集子域(目前有5个模块:通过枚举常见的SRV记录并做查询来收集子域srv、以及通过查询域名的DNS记录中的MX、NS、SOA、TXT记录来收集子域)
⑥利用威胁情报平台数据收集子域(目前有6个模块:alienvault、riskiq_api、threatbook_api、threatminer、virustotal、virustotal_api)
⑦利用搜索引擎发现子域(目前有18个模块:ask、 baidu、 bing、 bing_api、 duckduckgo、 exalead、 fofa_api、 gitee、github、 github_api、 google、 google_api、 shodan_api、 so、 sogou、 yahoo、 yandex、 zoomeye_api),在搜索模块中除特殊搜索引擎,通用的搜索引擎都支持自动排除搜索、全量搜索、递归搜索。
2.支持子域爆破,该模块有常规的字典爆破,也有自定义的fuzz模式,支持批量爆破和递归爆破,自动判断泛解析并处理。
3.支持子域验证,默认开启子域验证,自动解析子域DNS,自动请求子域获取title和banner,并综合判断子域存活情况。
4.支持子域接管,默认开启子域接管风险检查,支持子域自动接管(目前只有Github,有待完善),支持批量检查。
5.处理功能强大,发现的子域结果支持自动去除,自动DNS解析,HTTP请求探测,自动筛选出有效子域,拓展子域的Banner信息,最终支持的导出格式有rst、 csv,、 tsv、 json、 yaml、 html、 xls、 xlsx、 dbf、 latex、 ods。
6.速度极快,收集某块使用多线程调用,爆破模块使用massdns,默认配置下速度最少能达到10000pps,子域验证中DNS解析和HTTP请求使用异步多协程,多线程检查子域接管风险。
7体验良好,各模块都有进度条,异步保存各模块结果。
二:下载安装与使用
A:python 3.8以上版本 查看版本命令: python -V / python --version
B:pip3 pip 是 Python 包管理工具,该工具提供了对 Python 包的查找、下载、安装、卸载的功能 (自从Python 3.4版本开始,pip已经被内置在Python中,所以无需再次安装)。 查看版本命令 pip3 -V / pip3 --version
pip相关命令:
①下载工具包: pip install package_name
②卸载工具包: pip uninstall package_name
③查看已经安装的工具包: pip list (2)安装与使用
第一步:下载Oneforall文件,将文件部署在本地。(注意:如果你的Python3.x安装在系统Program Files目录下,如:C:\Program Files\Python3.7,运行oneforall时需要以管理员身份运行命令提示符CMD执行操作命令)
第二步:打开CMD命名窗口,将执行文件切换到oneforall程序所在路径。如 cd D:\Oneforall\OneForAll-master。
第三步:运行oneforall程序。 输入命名:python oneforall.py
命令: python oneforall.py –-target 网址 run
命令: python oneforall.py –-targets 网址文件 run
注意:扫描结构将存放于oneforall\results文件下。
三:使用过程中出现的问题
1.使用命令:python oneforall.py进入程序时,显示:ImportError: cannot import name 'sre_parse' from 're'。(如图)
问题成因:高版本的python中re模块中没有了sre_parse模块。 解决方案:
(1)使用相对较低版本的python。
(2)从报错信息入手,找到python文件下的Lib\site-packages\exrex.py文件,对其代码进行更改。
(注意:python\Lib\site-packages文件下没有exrex.py文件,或该文件为乱码或文件内容并没有上图中内容,则需在python文件中找到另一个exrex.py文件,并将其复制到python\Lib\site-packages文件下,并按上图更改内容即可。此情况为笔者所遇见的特殊情况)
2.使用命令:python oneforall.py进入程序时,显示:ModuleNotFoundError: No module named 'fire' 或 ModuleNotFoundError: No module named 'tenacity' 或 ModuleNotFoundError: No module named 'requests'
解决方案: 报错信息提示缺少哪个模块就下载哪个模块, 使用命令 pip install 模块名称 (如: pip install fire)
异常情况:使用(pip install 模块名称)命令下载模块出现不一样的报错:ERROR: Could not find a version that satisfies the requirement dns (from versions: none) ERROR: No matching distribution found for dns。
解决方案: 使用 pip install opencv-python命令
四:Oneforall下载地址:https://gitee.com/shmilylty/OneForAll.git