被动扫描?直接梭哈!

admin 2026-01-29 10:36:31 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍了安全扫描工具ez的实战应用技巧,涵盖自定义指纹库添加、高危漏洞批量扫描、指纹识别与POC验证组合打法。通过整合Katana爬虫、Burp流量转发及浏览器插件,可有效提升红队资产打点效率。文中附带了指纹分类Python脚本及工具证书获取途径,具有较高实操参考价值。 综合评分: 87 文章分类: 安全工具,产品介绍,红队,漏洞POC,WEB安全


cover_image

被动扫描?直接梭哈!

原创

ChinaRan404 ChinaRan404

知攻善防实验室

2026年1月29日 08:51 浙江

1

为什么选择了 ez

ez 实际上手使用,以及常见扫描场景,实际体验下来,主动探测的能力,对后端接口的能力比较好,得益于现在的前后端分离架构的火爆。下面我将写一些我常用的 ez 使用场景,仅供学习交流(证书文末也会给)

2

食用指北

1.指纹自行添加,放到 data 目录下finger_custom.json,我自行手搓了 300+小众指纹,这样在我攻防人工打点过程中会让我更舒服(不要问我要,要也不给。)

大家可以平时自己收集指纹,如果你是红队岗的话,这个是必不可少的,有些小众指纹往往出货率很高。

https://index.zgsfsys.cn/finger/index.html

2.只扫描高危漏洞,常用用攻防Web批量打点。

./ez_darwin_arm64 webscan --level 2 --urls-file url.txt --html-output html.html --proxy socks5://127.0.0.1:1010

资产量大的话批量跑一夜,第二天等着出结果就行。

3.批量指纹识别,指纹识别完,进行分类,然后批量打 POC

这个方法打起来是很爽的,比较吃指纹和 POC 库,这也是我经常用的打法基本成出成果概率 60%-70%

./ez_darwin_arm64 webscan --disable-pocs all --urls-file url.txt --json-output json.txt --proxy socks5://127.0.0.1:1010
import jsonimport os # 引入 os 模块来处理文件和文件夹
def&nbsp;sanitize_filename(name):&nbsp; &nbsp;&nbsp;"""处理文件名中的非法字符,替换为下划线"""&nbsp; &nbsp; invalid_chars = ['\\',&nbsp;'/',&nbsp;':',&nbsp;'*',&nbsp;'?',&nbsp;'"',&nbsp;'<',&nbsp;'>',&nbsp;'|']&nbsp; &nbsp;&nbsp;for&nbsp;char&nbsp;in&nbsp;invalid_chars:&nbsp; &nbsp; &nbsp; &nbsp; name = name.replace(char,&nbsp;'_')&nbsp; &nbsp;&nbsp;return&nbsp;name
# 输入文件名和输出文件夹名input_file_name =&nbsp;'1217.txt'output_directory =&nbsp;'12171'
# 存储分类数据的字典# 结构: { "原始指纹名": [url1, url2, ...], ... }plugin_data = {}
try:&nbsp; &nbsp;&nbsp;# 1. 创建输出文件夹(如果不存在)&nbsp; &nbsp; os.makedirs(output_directory, exist_ok=True)
&nbsp; &nbsp;&nbsp;# 2. 读取和处理源文件数据&nbsp; &nbsp;&nbsp;with&nbsp;open(input_file_name,&nbsp;'r', encoding='utf-8')&nbsp;as&nbsp;f:&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;for&nbsp;line&nbsp;in&nbsp;f:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; line = line.strip()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;if&nbsp;not&nbsp;line:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;continue&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;try:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data = json.loads(line)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; url = data.get('target', {}).get('url',&nbsp;'')
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 解析 "plugin" 字段&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; plugin_list_str = data.get('plugin',&nbsp;'[]')&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; original_plugins = json.loads(plugin_list_str)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 直接使用原始指纹进行分类&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;for&nbsp;plugin_name&nbsp;in&nbsp;original_plugins:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;if&nbsp;plugin_name&nbsp;not&nbsp;in&nbsp;plugin_data:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; plugin_data[plugin_name] = []&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 避免重复添加同一个URL&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;if&nbsp;url&nbsp;not&nbsp;in&nbsp;plugin_data[plugin_name]:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; plugin_data[plugin_name].append(url)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;except&nbsp;Exception&nbsp;as&nbsp;e:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;print(f"处理数据时跳过一行,原因:&nbsp;{e}")
&nbsp; &nbsp;&nbsp;# 3. 将分类结果写入各自的txt文件&nbsp; &nbsp;&nbsp;for&nbsp;plugin_name, urls&nbsp;in&nbsp;plugin_data.items():&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 清理文件名以确保其有效&nbsp; &nbsp; &nbsp; &nbsp; safe_filename = sanitize_filename(plugin_name)&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 构造完整的文件路径&nbsp; &nbsp; &nbsp; &nbsp; file_path = os.path.join(output_directory,&nbsp;f"{safe_filename}.txt")
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;with&nbsp;open(file_path,&nbsp;'w', encoding='utf-8')&nbsp;as&nbsp;f:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 将每个URL写入文件,每个URL占一行&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;for&nbsp;url&nbsp;in&nbsp;urls:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; f.write(url +&nbsp;'\n')
&nbsp; &nbsp; file_count =&nbsp;len(plugin_data)&nbsp; &nbsp;&nbsp;print("脚本执行成功!")&nbsp; &nbsp;&nbsp;print(f"已根据原始指纹进行直接分类,总共生成了&nbsp;{file_count}&nbsp;个文件。")&nbsp; &nbsp;&nbsp;print(f"所有文件都已保存在 ./{output_directory}/ 文件夹中。")
except&nbsp;FileNotFoundError:&nbsp; &nbsp;&nbsp;print(f"错误:找不到输入文件 '{input_file_name}'。请确保它和脚本在同一个目录下。")except&nbsp;Exception&nbsp;as&nbsp;e:&nbsp; &nbsp;&nbsp;print(f"发生未知错误:&nbsp;{e}")

4.API扫描,比如 Swaager的 API,可以直接放进去扫

./ez_darwin_arm64 webscan&nbsp;--apiscan&nbsp;-u ""&nbsp;--html-output&nbsp;html.html&nbsp;&nbsp;--proxy&nbsp;socks5://127.0.0.1:1010

对于 API 扫描能力,也可以通过 Postman/APIfox代理->EZ被动扫描。

5.爬虫扫描 Katana+EZ

./katana -u [URL] -proxy&nbsp;http://127.0.0.1:2222 -aff

Katana爬虫能力非常不错,你可以使用 Katana+EZ,进行爬虫+漏洞扫描,2222 端口是 ez 的被动扫描监听端口

https://github.com/projectdiscovery/katana

爬虫能力有限的时候,我一般手机好 URL,然后挂着被动扫描批量打开。

6.流量转发

Burp 用明洞插件进行流量转发

YakitMITM 使用被动扫描助手进行流量转发

7.浏览器插件

ez 的浏览器插件是嘎嘎好用的

9.主动指纹

如果你有某个系统的 0day,并且主动进行路径探测才可以发现的,非常建议去写一下主动指纹,但是不建议过多。

https://docs.ezreal.cool/EZUSE/poc.html

3

获取方式

小编偷偷给你们一张证书,直接拿去用,后续自己在论坛注册,签到

https://msec.nsfocus.com/me/ez/certificate

证书下载地址

ez证书下载

通过网盘分享的文件:ez链接: https://pan.baidu.com/s/17RlO-yQVTTrnlZU6r4MVCQ?pwd=d5f7 提取码: d5f7&nbsp;--来自百度网盘超级会员v6的分享

后台回复“交流群”加入技术交流群


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:知攻善防实验室 ChinaRan404 ChinaRan404《被动扫描?直接梭哈!》

评论:0   参与:  0