目录
OneForall的介绍
OneForall的下载
OneForall的安装
安装要求
安装步骤(git 版)
安装(kali)
OneForall的使用命令
在Windows
在Linux(kali)
OneForall的结果说明
免责声明 本文所提供的文字和信息仅供学习和研究使用,请读者自觉遵守法律法规,不得利用本文所提供的信息从事任何违法活动。本文不对读者的任何违法行为承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。 |
注意:OneForall 这样的工具在合法的安全测试和研究环境之外的使用可能是非法的和不道德的。在实际应用中,应该在授权和合法的情况下使用它来帮助发现和修复系统中的安全漏洞,以提高系统的安全性。
OneForall的介绍
OneForAll是一款用于收集和爆破子域名的工具,它是由米斯特安全团队开发的开源项目。该工具旨在提高渗透测试中子域名收集的效率,支持多种接口和模块,能够快速高效地收集子域名信息。
OneForall的下载
OneForAll的安装需要Python 3.7环境,虽然理论上Python 3.6和3.8版本也可以工作,但建议使用Python 3.7以保证最佳兼容性。
下载地址: GitHub - shmilylty/OneForAll: OneForAll是一款功能强大的子域收集工具
OneForall的安装
安装要求
OneForAll基于Python 3.6.0开发和测试,OneForAll需要高于Python 3.6.0的版本才能运行。 安装Python环境可以参考Python 3 安装指南。运行以下命令检查Python和pip3版本:
python -V
pip3 -V
如果你看到类似以下的输出便说明Python环境没有问题:
Python 3.7.4
pip 19.0.3 from d:\app\python\python3.7.4\lib\site-packages\pip (python 3.7)
安装步骤(git 版)
- 下载
由于该项目处于开发中,会不断进行更新迭代,下载时请使用git clone克隆最新代码仓库,也方便后续的更新,不推荐从Releases下载,因为Releases里版本更新缓慢,也不方便更新, 本项目已经在码云(Gitee)镜像了一份,国内推荐使用码云进行克隆比较快:
git clone https://gitee.com/shmilylty/OneForAll.git
或者:
git clone https://github.com/shmilylty/OneForAll.git
- 安装
你可以通过pip3安装OneForAll的依赖,以下为Windows系统下使用pip3安装依赖的示例:注意:如果你的Python3安装在系统Program Files目录下,如:C:\Program Files\Python36,那么请以管理员身份运行命令提示符cmd执行以下命令!
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
其他系统平台的请参考依赖安装,如果在安装依赖过程中发现编译某个依赖库失败时可以参考常见问题与回答.md文档中解决方法
- 更新
执行以下命令更新项目(可保存对/config/setting.py和/config/api.py的修改):
git stash # 暂存本地的修改
git fetch --all # 拉取项目更新
git pull # 下载覆盖
git stash pop # 释放本地修改
安装(kali)
- 安装依赖:首先确保你的系统安装了git(一种分布式版本控制系统)和 python3-pip(用于安装和管理 Python 第三方库的工具)。可以通过以下命令安装它们:
git python3-pip
sudo apt update
sudo apt install git python3-pip -y
- 克隆OneForAll仓库:接下来,你需要从GitHub或其他代码托管平台克隆OneForAll的源代码。如果你无法访问GitHub,可以使用国内的镜像网站。例如,使用GitHub克隆的命令如下:
git clone https://github.com/shmilylty/OneForAll.git
或者,如果你在国内,可以使用国内的镜像网站,如阿里云镜像:
git clone https://gitee.com/shmilylty/OneForAll.git
- 安装依赖:进入OneForAll的目录,并安装所需的依赖。这可以通过以下命令完成:
cd OneForAll
sudo apt install python3-dev python3-pip python3-testresources -y
sudo python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/
pip3 install --ignore-installed -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
⚠️如果提示:exrex.py 与当前使用的 Python 版本的某些模块定义不一致
pip uninstall exrex
卸载当前的 exrex 模块
再使用 pip install exrex
重新安装该模块
其他模块也是同理
- 运行OneForAll:安装完成后,你可以通过以下命令运行OneForAll:
python3 oneforall.py --help
这将显示OneForAll的帮助信息,表明你已经成功安装
OneForall的使用命令
在Windows
如果你是通过pip3安装的依赖则使用以下命令运行示例:
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./example.txt run
单域名收集: python3 oneforall.py --target 【域名】 run
多域名收集: python3 oneforall.py --targets 【存放域名的文件】 run
可选选项:--alive=True
可选值True,False分别表示导出存活,全部子域结果
--dns=DNS DNS解析子域(默认True)
--req=REQ HTTP请求子域(默认True)
--port=PORT 请求验证子域的端口范围(默认只探测80端口)
--fmt=FMT 结果保存格式(默认csv)
--path=PATH 结果保存路径(默认None)
--takeover=TAKEOVER 检查子域接管(默认False)
在Linux(kali)
oneforall --target example.com run
oneforall --targets ./example.txt run
使用道理和参数和Windows的一样
注意:在本工具安装和使用过程中,如果输命令过程中出现输 python 或 python3 报错了,大概率是因为python程序重命名的问题,在其他命令没问题的情况下,命令中输python报错就换python3试试,输python3报错就换python试试。其他渗透测试工具也一样。
OneForall的结果说明
我们以python3 oneforall.py --target example.com run
命令为例,OneForAll在默认参数正常执行完毕会在results目录生成相应结果:
example.com.csv
是每个主域下的子域收集结果。
all_subdomain_result_1583034493.csv
是每次运行OneForAll收集到子域的汇总结果,包含example.com.csv,方便在批量收集场景中获取全部结果。
result.sqlite3
是存放每次运行OneForAll收集到子域的SQLite3结果数据库,其数据库结构如下图:
其中类似 example_com_origin_result 表存放每个模块最初子域收集结果。
其中类似 example_com_resolve_result 表存放对子域进行解析后的结果。
其中类似 example_com_last_result 表存放上一次子域收集结果(需要收集两次以上才会生成)。
其中类似 example_com_now_result 表存放现在子域收集结果,一般情况关注这张表就可以了。