Releases: zan8in/afrog
v3.3.1 轻量、快速、直击漏洞
核心变更:
- WebProbe 存活探测改为默认关闭
- 新增
-w参数,按需开启资产预探测 - 回归 afrog 核心优势:直接、快速的漏洞扫描
afrog 始终是那个 afrog:轻量、快速、直击漏洞。
v3.3.0 Afrog PoC 指纹门控:先识别,再执行
Afrog v3.3.0 主要更新内容
一、PoC 指纹门控(requires)
新增 requires 及 requires-mode 机制,实现对 PoC 执行的精准控制。该机制允许 PoC 声明其依赖的指纹标签(如 nacos、mysql、ftp),仅当目标在指纹识别阶段匹配到对应标签时,相关 PoC 才会被执行(默认遵循严格模式)。
此功能特别适用于弱口令、爆破、默认口令等高成本检测场景,实现 “先识别,再验证”,有效减少无效请求、降低触发限流或告警的风险,同时大幅提升扫描效率与结果的准确性。
详细说明请参考:Afrog 指纹门控指南
示例 PoC:ftp-detect、ftp-anonymous-login、nacos-detect、nacos-default-password
二、指纹识别(Fingerprint)
Fingerprint 是 Afrog 的前置资产识别能力,通过一组指纹 PoC(支持 TCP/HTTP 探测与特征匹配)快速识别目标的服务类型与关键特征。
识别结果会输出对应的产品/服务标签(tags),用于明确目标资产属性,并为后续漏洞扫描提供依据。例如,仅对识别出特定服务的目标执行相关漏洞检测,从而提升整体扫描的精准度与效率。
编写指纹 PoC 时,需在 info.tags 中包含 fingerprint 标签。
三、新增 --fingerprint-filter-mode 参数
该参数用于控制在目标缺乏指纹证据时,是否跳过依赖 info.tags 的应用类漏洞 PoC。
- strict 模式(默认):仅对指纹匹配的目标执行相关 PoC,侧重效率与降噪。
- opportunistic 模式:在指纹可能漏报或证据不足的场景下,仍执行相关 PoC,以降低漏扫风险,同时保留“有指纹但不匹配则跳过”的基础逻辑。
四、WebProbe 资产探测功能回归
在 WebProbe 预探测阶段完成后,系统会将探测到的站点元信息(URL、标题、Server、PoweredBy 等)汇总为一条记录,并同时写入 SQLite 数据库与 HTML 报告。
在 HTML 报告中,相关信息以可折叠列表形式展示,格式与控制台输出一致,且 URL 支持点击访问。
其他更新
行为调整
- 端口预扫描参数
-p/--ports的行为调整为 “自定义端口 + 常见端口(top ports)” 组合模式。
问题修复与优化
-
输出/存储/报告管线独立并支持刷新
通过解耦结果处理流程,降低因异步写库或进程意外退出导致结果丢失或不完整的风险。 -
任务生成改为流式生产 + 背压队列
优化大规模任务(PoC × 目标)下的内存使用与任务堆积问题,提升扫描稳定性与吞吐能力。 -
增强 TCP 代理/蜜罐/防火墙拦截检测机制
提升对中间拦截节点的识别能力,减少误报与干扰。 -
新增
--http-default-accept参数(默认开启)
当 PoC 未设置Accept请求头时,自动添加Accept: */*,且不会覆盖 PoC 中显式定义的Accept头或通过-H参数指定的请求头。
v3.2.9 Happy New Year 2026
afrog v3.2.9 Alpha 发布说明
版本状态:Alpha
此为 Alpha 版本,主要用于引入 PortScan 端口预扫描 功能,可在 PoC 扫描前快速识别开放端口,提升目标扫描效率与精准度。
请注意:该版本可能存在兼容性与稳定性问题,建议先在测试环境或小范围目标中验证,再用于生产环境。
🚀 使用示例
1. 单目标全端口扫描
afrog -t 1.2.3.4 -ps -p all2. 网段扫描(主机发现 + 常见端口扫描)
afrog -t 1.2.3.4/24 -ps3. 跳过主机发现(适用于已知存活目标或网络受限场景)
afrog -T targets.txt -ps -Pn4. 仅扫描指定端口
afrog -t example.com -ps -p 80,443,8080⚙️ PortScan 参数详解
| 参数 | 说明 | 示例 |
|---|---|---|
-ps / --portscan |
开启端口预扫描 | -ps |
-p / --ports |
指定端口范围(默认:top) |
-p 80,443,8080-p 1-1024-p top-p full-p all |
-Pn |
跳过主机发现,直接扫描端口 | -Pn |
-prate |
端口扫描速率限制(每秒请求数) | -prate 500 |
-ptimeout |
端口扫描超时时间(毫秒) | -ptimeout 1500 |
-ptries |
端口扫描重试次数 | -ptries 2 |
--ps-s4-chunk |
当 ports=full 时的分片大小 |
--ps-s4-chunk 2048 |
📌 使用建议
- 测试环境优先:在 Alpha 阶段,建议先在内部或测试环境验证功能稳定性。
- 合理设置端口范围:若对全网段扫描,建议先使用
-p top(常见端口)进行快速探测,再针对开放服务深入扫描。 - 网络适应性调整:在受限或高延迟网络中,可适当调整
-ptimeout和-prate参数,避免误报或漏报。 - 结合已有目标列表:若已具备存活目标列表,使用
-Pn可跳过发现阶段,直接进行端口扫描与漏洞检测。
欢迎反馈使用中的问题与建议,我将持续优化 PortScan 模块的稳定性与性能。
v3.2.8
1. [新增] brute 暴力扫描模式
用于目录探测、凭证枚举等场景,减少重复规则维护:
- 两种枚举策略:
clusterbomb:笛卡尔积组合(适合小字典)pitchfork:按索引配对(适合一一对应的字典)
- 结果提交策略:
commit: winner/first:保留首个命中结果commit: last:保留最后一次命中结果commit: none:只保留请求/响应
- 继续策略:
continue: true/false:命中后是否继续枚举
- 保护机制:
--brute-max-requests 5000:限制单条规则最大请求数
2. [新增]按目标限速(--req-limit-per-target)
对每个 host:port 单独限制每秒请求数:
| 参数 | 等效设置 | 适用场景 |
|---|---|---|
--polite |
--req-limit-per-target=5 |
保守模式,怕打挂目标 |
--balanced |
--req-limit-per-target=15 |
默认推荐,平衡模式 |
--aggressive |
--req-limit-per-target=50 |
激进模式,追求速度 |
注意:与 -rl/--rate-limit 不冲突:
-rl:限制任务调度速度(PoC×Target 级别)--req-limit-per-target:限制实际网络请求速度(host:port 级别)
3. [新增]实时状态监控(--live-stats)
开启后显示关键指标:
ta:活跃任务数hi:进行中的HTTP请求数tw:任务等待时间(全局限速排队)rw:请求等待时间(目标限速排队)
判断依据:
tw大 → 被全局限速卡住rw大 → 被单目标限速卡住(同一个站点请求太密)
4. 快速配置推荐
场景A:单目标/目标很少
- 保守:
--req-limit-per-target 2+-c 5~10 - 均衡:
--req-limit-per-target 5+-c 10~20 - 激进:
--req-limit-per-target 10+-c 20~40
场景B:10~50个目标,较分散
- 均衡:
--req-limit-per-target 5+-c 40~80
场景C:50~500+个目标,很分散
- 均衡:
--req-limit-per-target 5+-c 80~200
场景D:目标集中在少数IP(CDN/反代)
- 按场景A配置
5. 使用建议
- 开启监控:始终添加
--live-stats - 观察指标:如果
rw持续上千ms,降低-c值 - 默认起手:
--req-limit-per-target 5+-c 20 - 自动调节:可使用
--auto-req-limit自动调参
6. [优化]Go PoC HTTP请求统一化
- 背景:之前Go编写的PoC和YAML格式的PoC在HTTP请求处理上不一致
- 改进内容:
- 全局header统一合并:确保所有请求都正确应用全局设置的headers
- 变量回填统一:变量传递和处理逻辑保持一致
- 上下文贯穿:PoC级别的context贯穿整个请求流程
- 软收敛机制:支持Stop/超时操作时,能够优雅地取消进行中的请求
- 效果:
- Go PoC和YAML PoC的行为完全一致
- 更好的并发控制和资源管理
- 避免请求泄漏或无法及时终止的问题
7. [优化]Shiro-key 支持回归
- 功能恢复:重新支持Shiro框架的key检测
8. [优化]Backup-files 支持回归
- 功能恢复:重新支持备份文件扫描
v3.2.7
afrog v3.2.7 新版本发布
🌟 新增功能
- 全新底部面板与漏洞扫描:新增集成式底部任务面板,将任务发起、扫描进程与结果查看融合于同一界面,提供从启动到分析的全流程可视化体验,操作更直观,效率显著提升。
🛠️ 功能改动
- 数据目录统一迁移:自本版本起,所有本地数据将统一迁移至
~/.config/afrog(Windows:C:\Users\<你>\.config\afrog)。旧版位于用户家目录下的afrog-*目录(如~/afrog-pocs)不再被读取。
如需迁移个人数据,请参见下方的迁移指南。
✅ 问题修复
- 优化 YAML 反序列化逻辑,修复因重复键导致的数组越界异常。
- 修复 HTTP 响应 Body 被错误解析为字符串时引发的请求无响应问题。
📦 数据迁移简要指引
自 v3.2.7(2025-12-20 发布)起,所有本地数据统一迁移至 ~/.config/afrog(Windows:C:\Users\<you>\.config\afrog)。旧版位于用户家目录下的 afrog-* 目录将不再被读取。
二、新旧目录对照表
| 数据类别 | 新路径(统一在 .config/afrog 下) |
旧路径(已停用) |
|---|---|---|
| 配置文件 | afrog-config.yaml(保持不变) |
- |
| 数据库 | afrog.db(保持不变) |
- |
| 本地 POCs | pocs |
~/afrog-pocs |
| 精选 POCs | pocs-curated |
~/afrog-curated-pocs |
| 我的 POCs | pocs-my |
~/afrog-my-pocs |
| 资产集合 | assets |
~/afrog-assets |
三、需用户手动迁移的数据
以下两类目录需手动复制至新位置,其余目录由程序或在线更新器自动管理:
- 我的 POCs:
~/afrog-my-pocs→~/.config/afrog/pocs-my
四、注意事项
- 在线更新器会将最新 POCs 自动安装至
~/.config/afrog/pocs。 - 旧目录不会自动删除,请确认迁移完成后自行清理,避免误删自有文件。
v3.2.6
afrog 新版本更新日志
新增功能
- afrog Web 新增「专注模式」:一键进入编辑器全屏模式,告别干扰,高效编写与调试 PoC。
问题修复
- 修复 SDK 在处理代理列表时的并发 channel 泄漏问题,提升稳定性
- 修复 afrog Web 偶尔出现的白屏问题,页面加载更流畅可靠
- 修复因URL参数重新排序问题,导致特定漏洞PoC无法被成功触发的缺陷。
感谢社区反馈,这次更新让 afrog 用得更爽了!🚀
v3.2.5
修复紧急 bug
多个协程同时修改共享map数据,导致数据混乱,程序崩溃。
v3.2.3
afrog v3.2.3 正式发布!🚀
主要更新亮点
🔥 变量系统大幅增强(set)
现在 set 支持定义多种类型变量,更加灵活:
int、int64、boolean、float64- 支持随机数生成、数学运算、字符串操作等
示例:
set:
numa: randomInt(1000, 5000)
numb: randomInt(5000, 10000)
x: numa * numb + 1024
flag: true
rand_str: randomLowercase(32)🔥 PoC 全字段支持 CEL 表达式({{...}})
在 rules 的以下字段中均可使用 {{表达式}} 进行动态渲染:
path、headers、body、raw、data
强大示例:
rules:
r0:
request:
method: GET
path: "/login.do?message={{numa * numb}}={{x}}"
headers:
Token: "{{numa + numb}}"
Rand: "{{randomInt(99999911, 99999999)}}"
body: |
username=admin&code={{randomLowercase(32)}}
expression: |
response.status == 200 &&
response.body.bcontains(bytes(string(numa * numb)))📚 官方推出《Afrog PoC 规则编写权威指南》
已同步上线:
- afrog 官方 Web 文档:
afrog -web命令 - GitHub Wiki:https://github.com/zan8in/afrog/wiki/Afrog-PoC-规则编写权威指南
从入门到高阶,一文搞定所有 PoC 编写技巧!
🏗️ 底层重构(开发者友好)
- 将 HTTP、Raw、Tcp/Udp、Go 等协议执行逻辑抽象为统一最小接口
Executor - 彻底消除各协议中重复的变量渲染、结果写入、上下文传递代码
v3.2.2 戏梦
afrog 正式发布全新版本,此次更新带来了两大实用功能升级:
一、PoC 管理与扫描优化
本地 PoC 文件夹支持:新版本新增本地文件夹 ~/afrog-my-pocs,用户可将自定义的 PoCs 存放在此。afrog 程序运行时,会自动将该文件夹中的 PoC 与内置 PoC 合并,一同用于扫描任务,让扫描更加全面灵活。
PoC 可视化管理:在可视化管理界面中,用户对 ~/afrog-my-pocs 文件夹内的 PoC 拥有完整的增删改查权限,可按需灵活管理;而 afrog 内置的 PoC 则设置为只读权限,确保系统 PoC 的安全性和稳定性。
二、安全可靠的登录机制
afrog 登录面板采用随机生成密码的方式,进一步增强了安全性。同时,系统严格限制用户登录失败次数,若登录失败超过设定次数(具体次数可查看源码),将会封禁登录一段时间。这种双重安全保障机制,让您可以放心地将 afrog web 平台长久开放使用,无需担忧安全风险。
使用方法十分简便,运行 afrog -web 命令,即可快速开启 afrog 的全新功能体验。
v3.2.0
afrog v3.2.0 版本更新说明
🔹 功能完善
▸ afrog SDK 升级
- 新增详细开发教程及示例代码
(特别感谢社区贡献者 author:kkx600 支持)
🎨 界面优化
▸ -web 命令报告升级
- 采用现代化可视化漏洞报告模板
- 支持更直观的漏洞分级展示与数据交互
