前言
本文为玲珑安全原创,未经授权不可转载。请进行合法的渗透测试,本公众号及作者不承担任何因利用本公众号分享的内容而造成的任何后果。
简介
OneForAll是一款功能强大的子域收集工具,其特点如下:
1)收集能力强大
1.利用证书透明度收集子域(censys_api,certspotter,crtsh,entrust,google,spyse_api)
2.常规检查收集子域(域传送漏洞利用axfr,检查跨域策略文件cdx,检查HTTPS证书cert,检查内容安全策略csp,检查robots文件robots,检查sitemap文件sitemap,利用NSEC记录遍历DNS域dnssec)
3.利用网上爬虫档案收集子域(archivecrawl,commoncrawl)
4.利用DNS数据集收集子域(目前有24个模块:bevigil_api, binaryedge_api, bufferover, cebaidu, chinaz, chinaz_api, circl_api, cloudflare等等)
5.利用DNS查询收集子域(目前有5个模块:通过枚举常见的SRV记录并做查询来收集子域srv,以及通过查询域名的DNS记录中的MX,NS,SOA,TXT记录来收集子域)
6.利用威胁情报平台数据收集子域(alienvault, riskiq_api,threatbook_api,threatminer等等)
7.利用搜索引擎发现子域(ask, baidu, bing, bing_api, duckduckgo, exalead, fofa_api, gitee, github等等),在搜索模块中除特殊搜索引擎,通用的搜索引擎都支持自动排除搜索,全量搜索,递归搜索。
2)支持子域爆破,该模块有常规的字典爆破,也有自定义的fuzz模式,支持批量爆破和递归爆破,自动判断泛解析并处理。
3)支持子域验证,默认开启子域验证,自动解析子域DNS,自动请求子域获取title和banner,并综合判断子域存活情况。
4)支持子域爬取,根据已有的子域,请求子域响应体以及响应体里的JS,从中再次发现新的子域。
5)支持子域置换,根据已有的子域,使用子域替换技术再次发现新的子域。
6)支持子域接管,默认开启子域接管风险检查,支持子域自动接管(目前只有Github,有待完善),支持批量检查。
7)处理功能强大,发现的子域结果支持自动去除,自动DNS解析,HTTP请求探测,自动筛选出有效子域,拓展子域的Banner信息,最终支持的导出格式有txt, csv, json。
8)速度极快,收集模块使用多线程调用,爆破模块使用massdns,DNS解析速度每秒可解析350000以上个域名,子域验证中DNS解析和HTTP请求使用异步多协程,多线程检查子域接管风险。
9)体验良好,各模块都有进度条,异步保存各模块结果。
安装要求
OneForAll基于Python 3.6.0开发和测试,因此OneForAll需要高于Python 3.6.0的版本才能运行。
安装Python环境可以参考Python 3安装指南:
https://pythonguidecn.readthedocs.io/zh/latest/starting/installation.html#python-3
运行以下命令检查Python和pip3版本:
python -V
pip3 -V
如果回显与上图相似且版本满足要求,即可进行安装。
安装步骤(zip版)
进入项目:
https://github.com/shmilylty/OneForAll
点击如图所示的zip,下载到OneForAll文件夹:
解压到当前目录,可以修改文件夹名称:
进入文件夹,进入文件夹对应的cmd界面:
接着输入如下命令安装依赖项:
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
安装完成后输入
python oneforall.py --help
或
python3 oneforall.py --help
以验证oneforall是否安装成功
安装步骤(git版)
No.1
下载
git clone https://gitee.com/shmilylty/OneForAll.git
或者:
git clone https://github.com/shmilylty/OneForAll.git
No.2
安装
可以通过pip3安装OneForAll的依赖,以下为Windows系统下使用pip3安装依赖的示例:
依次执行
cd OneForAll/
python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
验证是否安装成功:
python3 oneforall.py --help
No.3
更新
执行以下命令更新项目(可保存对/config/setting.py和/config/api.py的修改)
git stash # 暂存本地的修改``git fetch --all # 拉取项目更新``git pull # 下载覆盖``git stash pop # 释放本地修改
安装步骤(docker版)
首先下载并编辑配置文件,添加自己的api和个性化设置,并保留原始文件结构:
config``├── api.py``├── default.py``├── __init__.py``├── log.py``└── setting.py
拉取镜像并执行,其中~/.config替换为你自己配置文件所在文件夹的路径:
docker pull shmilylty/oneforall``docker run -it --rm -v ~/results:/OneForAll/results -v ~/.config:/OneForAll/config shmilylty/oneforall --target example.com run
参数直接加在指令末尾,结果会输出在本地目录~/results,如需保存到其他位置,可以自行修改。
使用说明
OneForAll在默认参数正常执行完毕会在results目录生成相应结果:
example.com.csv是每个主域下的子域收集结果。
all_subdomain_result_1583034493.csv是每次运行OneForAll收集到子域的汇总结果,包含example.com.csv,方便在批量收集场景中获取全部结果。
result.sqlite3是存放每次运行OneForAll收集到子域的SQLite3结果数据库,其数据库结构如下图:
其中:
1、类似example_com_origin_result的表存放每个模块最初子域收集结果。
2、类似example_com_resolve_result的表存放对子域进行解析后的结果。
3、类似example_com_last_result的表存放上一次子域收集结果(需要收集两次以上才会生成)。
4、类似example_com_now_result的表存放现在子域收集结果,一般情况关注这张表即可。
可以使用python oneforall.py --help
获取最新的参数帮助信息:
NAME` `oneforall.py - OneForAll帮助信息`` ``SYNOPSIS` `oneforall.py COMMAND | --target=TARGET <flags>`` ``DESCRIPTION` `OneForAll是一款功能强大的子域收集工具`` ` `Example:` `python3 oneforall.py version` `python3 oneforall.py --target example.com run` `python3 oneforall.py --targets ./domains.txt run` `python3 oneforall.py --target example.com --valid None run` `python3 oneforall.py --target example.com --brute True run` `python3 oneforall.py --target example.com --port small run` `python3 oneforall.py --target example.com --fmt csv run` `python3 oneforall.py --target example.com --dns False run` `python3 oneforall.py --target example.com --req False run` `python3 oneforall.py --target example.com --takeover False run` `python3 oneforall.py --target example.com --show True run`` ` `Note:` `参数alive可选值True,False分别表示导出存活,全部子域结果` `参数port可选值有'default', 'small', 'large', 详见config.py配置` `参数fmt可选格式有 'csv','json'` `参数path默认None使用OneForAll结果目录生成路径`` ``ARGUMENTS` `TARGET` `单个域名(二选一必需参数)` `TARGETS` `每行一个域名的文件路径(二选一必需参数)`` ``FLAGS` `--brute=BRUTE` `s` `--dns=DNS` `DNS解析子域(默认True)` `--req=REQ` `HTTP请求子域(默认True)` `--port=PORT` `请求验证子域的端口范围(默认只探测80端口)` `--valid=VALID` `只导出存活的子域结果(默认False)` `--fmt=FMT` `结果保存格式(默认csv)` `--path=PATH` `结果保存路径(默认None)` `--takeover=TAKEOVER` `检查子域接管(默认False)
自定义配置
在config下的setting.py可以修改默认配置,其中包含收集模块、爆破模块等等:
在config下的api.py中可进行api配置(如fofa、Google、shodan、hunter等),这是oneforall最强大的集成功能之一(读者可根据文件注释进行配置):
基础命令
1、收集某站的子域名
python oneforall.py --target example.com run
收集完成后,进入result目录查看:
2、收集每个域名的子域名
python oneforall.py --targets ./domains.txt run
3、只导出存活的子域结果
python oneforall.py --target example.com --valid Valid run
4、使用爆破模块进行子域名爆破
python oneforall.py --target example.com --brute True run
5、设置结果保存格式为csv
python oneforall.py --target example.com --fmt csv run
6、不使用DNS解析子域
python oneforall.py --target example.com --dns False run
7、不使用HTTP请求子域
python oneforall.py --target example.com --req False run
8、不检查子域名接管
python oneforall.py --target example.com --takeover False run
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取