简介
原文先发布在freebuf:https://www.freebuf.com/sectool/268971.html
本项目所有内容仅作为安全研究和授权测试使用, 相关人员对因误用和滥用该项目造成的一切损害概不负责
在攻防对抗中信息收集是后续所有渗透测试的基础与关键,从公司信息、域名、子域名、C段、端口、目录、指纹等等还没算上公众号、小程序,即使有不少用于信息收集优秀的开源工具以及网站,但免不了还是要花上不少的时间在信息收集上。而且各个工具术业有专攻,手工串联起来或者整理输出格式可能也要花上不少时间。一般攻防对抗时间紧迫,但修仙是不可能修仙的,凌晨的时候也能挂着几个工具一起收集信息、扫描一下也能安全睡觉。
通过上一次公司内部的攻防对抗,以及个人习惯使用的工具对几款优秀的开源信息收集与扫描工具进行整合,从而可以使一部分信息收集过程更加自动化。
Zfre_scan下载地址:https://github.com/VVVinson/Zfre_scan
首先介绍一下Zfre_scan整合的网站跟工具以及下载地址(需要下载以下工具才能用哦):
- Zoomeye网络空间安全搜索引擎(无需下载,需要注册获取APIkey):https://www.zoomeye.org/
- ffuf主要用于目录扫描,ffuf也有其他fuzz功能(目录字典也需要准备):https://github.com/ffuf/ffuf
- EHole主要用于指纹识别(红队重点攻击系统指纹探测工具):https://github.com/EdgeSecurityTeam/EHole
- Xray主要使用被动扫描(一款功能强大的安全评估工具):https://github.com/chaitin/xray
- Rad爬虫(一款专为安全扫描而生的浏览器爬虫):https://github.com/chaitin/rad
没用过以上工具的也不要紧,下载下来在Zfre_scan配好目录也能直接串联使用或单独使用,当然Zfre_scan一般是调用了以上工具较为常用的功能与配置,以上优秀的开源工具都有丰富的功能或者自定义的配置,各位大佬们有时间还是建议学习使用一下滴。
Zfre_scan主要逻辑
1、dork.txt里输入需要在zoomeye搜索的关键字或C段等。
2、APIkey.txt输入Zoomeye apikey。
3、zfre_scan.config里配置以上工具的绝对路径。
4、调用zoomeye API接口获取数据。
5、调用ffuf对zoomeye输出的http协议url进行目录扫描
6、调用xray与rad对url列表进行爬虫与被动扫描
7、结果输出至Zfresult文件夹:包括Ehole、Zoomeye的excel格式输出、Xray的html格式输出
各个工具模块的输出结果展示
测试了2个C段的部分结果截图(有具体标识的信息已脱敏)
zoomeye_result.xlsx(IP:端口:协议:title)
EHole_result.xlsx(url:指纹:中间件:状态码:内容大小:title)
xray_result.html(url:漏洞类型:request:response)
运行环境
语言:python3
操作系统:目前只试过windows上使用
Python模块:openpyxl
pip install openpyxl
配置:
1、下载各个模块使用到的开源工具:
Zoomeye获取IP、端口、协议(无需下载,需要注册获取APIkey):https://www.zoomeye.org/
ffuf目录扫描(目录字典也需要准备):https://github.com/ffuf/ffuf
EHole指纹识别、title识别:https://github.com/EdgeSecurityTeam/EHole
Xray被动扫描:https://github.com/chaitin/xray
Rad爬虫:https://github.com/chaitin/rad
2、zfre_scan.config配置文件写入信息:
Ehole_path = Ehole绝对路径 ffuf_path = ffuf绝对路径 ffuf_dict_path = ffuf目录字典绝对路径 rad_path = rad绝对路径 xray_path = xray绝对路径 Zoomeye_file_path = zoomeye读取的关键字或者C段文件路径 zoomeye_http_result = ffuf、rad、xray、Ehole读取的url文件路径(文件里需要带上http或者https协议)
使用:
1、多模块调用:
1、Zoomeye+ffuf+EHole+Xray+Rad: python zfre_scan.py -m zfre 2、Zoomeye+EHole+Xray+Rad: python zfre_scan.py -m zre 3、ffuf+EHole+Xray+Rad: python zfre_scan.py -m fre 4、Zoomeye+ffuf: python zfre_scan.py -m zf 输入:├── dork.txt #zoomeye读取的关键字或者C段文件路径,需要配置到zfre_scan.config里 输出: ├── Zfresult #结果输出目录 │ ├── xray_result.html #xray扫描结果 │ ├── EHole_result.xlsx #EHole指纹识别结果 │ └── zoomeye_result.xlsx #zoomeye输出结果,主要看非http协议 └── zoomeye_http_result.txt #zoomeye.py执行输出的http协议url(暂时无法修改输出路径与文件名);ffuf.py的输入;ffuf.py执行后会在这里新增扫描到的url
2、单模块调用:
1、Zoomeye: python zfre_scan.py -m z 输入:├── dork.txt #zoomeye读取的关键字或者C段文件路径,需要配置到zfre_scan.config里 输出: ├── Zfresult #结果输出目录 │ └── zoomeye_result.xlsx #zoomeye输出结果,主要看非http协议 └── zoomeye_http_result.txt #zoomeye.py执行输出的http协议url(暂时无法修改输出路径与文件名) 2、EHole+Xray+Rad: python zfre_scan.py -m re 输入:├── zoomeye_http_result.txt #url,每个url直接换行,需要带上http://或https:// 输出: ├── Zfresult #结果输出目录 │ ├── xray_result.html #xray扫描结果 │ └── EHole_result.xlsx #EHole指纹识别结果 └──────────────────────── 3、ffuf: python zfre_scan.py -m f 输入:├── zoomeye_http_result.txt #url,每个url直接换行,需要带上http://或https:// 输出: └── zoomeye_http_result.txt #ffuf.py模块执行后会在后面新增扫描到的url
目前的不足:
- 每次使用前需要自行重命名或者移走Zfresult目录下的文件,否则会覆盖原有结果,或者Xray无法运行
- Xray目前需要手动关掉监听进程。
- 没试过Linux上运行,后续看情况可能会适配。
另外:如果各位大佬有好用的工具欢迎评论、私信有时间可以整合集成一下,谢谢==
20210503更新:
1、dork.txt可直接输入搜索语法,例如:x.x.x.x +app:"Apache httpd"
2、添加zoomeye API超时重传机制
3、zoomeye.py如果中途报错也可以输出结果