web安全-oneforall的安装与使用
【摘要】 功能特性收集能力强大,详细模块请阅读收集模块说明。利用证书透明度收集子域(目前有6个模块:censys_api,certspotter,crtsh,entrust,google,spyse_api)常规检查收集子域(目前有4个模块:域传送漏洞利用axfr,检查跨域策略文件cdx,检查HTTPS证书cert,检查内容安全策略csp,检查robots文件robots,检查sitemap文件sit...
功能特性
- 收集能力强大,详细模块请阅读收集模块说明。
- 利用证书透明度收集子域(目前有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数据集收集子域(目前有24个模块:binaryedge_api,bufferover,cebaidu,chinaz,chinaz_api,circl_api,cloudflare,dnsdb_api,dnsdumpster,hackertarget,ip138,ipv4info_api,netcraft,passivedns_api,ptrarchive,qianxun,rapiddns,riddler,robtex,securitytrails_api,sitedossier,threatchrowd,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,shodan_api,so,sogou,yahoo,yandex,zoomeye_api),在搜索模块中出特殊搜索引擎,通用引擎都支持自动排除搜索,全量搜索,递归搜索。
- 支持子域爆破,该模块有常规的字典爆破,也有自定义的fuzz模式,支持批量爆破和递归爆破,自动判断泛解析并处理。
- 支持子域验证,默认开启子域验证,自动解析子域DNS,自动请求子域获取title和banner,并综合判断子域存活情况。
- 支持子域爬取,根据已有的子域,请求子域响应体以及响应体里的JS,从中再次发现新的子域。
- 支持子域置换,根据已有的子域,使用子域替换技术再次发现新的子域。
- 支持子域接管,默认开启子域接管风险检查,支持子域自动接管(目前只有Github,有待完善),支持批量检查。
- 处理功能强大,发现的子域结果支持自动去除,自动DNS解析,HTTP请求探测,自动筛选出有效子域,拓展子域的Banner信息,最终支持的导出格式有txt,csv,json。
- 速度极快,收集模块使用多线程调用,爆破模块使massdns,DNS解析速度每秒可解析350000以上个域名,子域验证中DNS解析和HTTP请求使用异步多协程,多线程检查子域接管风险。
- 体验良好,各模块都有进度条,异步保存各模块结果。
用到框架
- aiohttp - 异步http客户端/服务器框架
- beautifulsoup4 - 可以轻松从HTML或XML文件中提取数据的Python库
- fire - Python Fire是一个纯粹根据任何Python对象自动生成命令行界面(CLI)的库
- loguru - 旨在带来愉快的日志记录Python库
- massdns - 高性能的DNS解析器
- records - Records是一个非常简单但功能强大的库,用于对大多数关系数据库进行最原始SQL查询。
- requests - Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。
- tqdm - 适用于Python和CLI的快速,可扩展的进度条库
一、下载在github下载OneForAll,将OneForAll放在python(3.8及以上)环境下。
二、安装通过pip3安装OneForAll的依赖,如在Windows下使用pip3安装依赖,以管理员身份运行命令提示符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/
三、更新用命令将pip更新:python -m pip install --upgrade pip
四、使用如果通过pip3安装依赖则可以使用以下命令运行:1.python3 oneforall.py --target xxx.com run2.python3 oneforall.py --targets ./xxx.txt run
五、结果说明若运行命令python3 oneforall.py --target vulnweb.com run,OneForAll在默认参数正常执行完成会在results/temp目录生成相应结果:xxx.com.csv是每个主域下的子域收集信息汇总。
temp目录下的collected_subdomains_xxx.com_...._.txt文件是所有子域名合集。
temp目录下的resolved_result_xxx.com_..._.json文件是
六、使用帮助命令行参数只提供了一些常用参数,更多详细的参数配置请见setting.py,如果你认为有些参数是命令界面经常使用到的或缺少了什么参数等问题非常欢迎反馈。由于众所周知的原因,如果要使用一些被墙的收集接口请先到setting.py配置代理,有些收集模块需要提供API(大多都是可以注册账号免费获取),如果需要使用请到api.py配置API信息,如果不使用请忽略有关报错提示。(详细模块请阅读收集模块说明)OneForAll命令行界面基于Fire实现,有关Fire更高级使用方法请参阅使用Fire CLI。oneforall.py是主程序入口,oneforall.py可以调用brute.py,takerover.py及dbexport.py等模块,为了方便进行子域爆破独立出了brute.py,为了方便进行子域接管风险检查独立出了takerover.py,为了方便数据库导出独立出了dbexport.py,这些模块都可以单独运行,并且所接受参数要更丰富一点,如果要单独使用这些模块请参考使用帮助也可使用python oneforall.py --help获取最新帮助信息。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)