Skip to content

v3.3.0 Afrog PoC 指纹门控:先识别,再执行

Choose a tag to compare

@github-actions github-actions released this 14 Jan 02:06

Afrog v3.3.0 主要更新内容

一、PoC 指纹门控(requires)

新增 requiresrequires-mode 机制,实现对 PoC 执行的精准控制。该机制允许 PoC 声明其依赖的指纹标签(如 nacosmysqlftp),仅当目标在指纹识别阶段匹配到对应标签时,相关 PoC 才会被执行(默认遵循严格模式)。
此功能特别适用于弱口令、爆破、默认口令等高成本检测场景,实现 “先识别,再验证”,有效减少无效请求、降低触发限流或告警的风险,同时大幅提升扫描效率与结果的准确性。
详细说明请参考:Afrog 指纹门控指南
示例 PoC:ftp-detectftp-anonymous-loginnacos-detectnacos-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)” 组合模式。

问题修复与优化

  1. 输出/存储/报告管线独立并支持刷新
    通过解耦结果处理流程,降低因异步写库或进程意外退出导致结果丢失或不完整的风险。

  2. 任务生成改为流式生产 + 背压队列
    优化大规模任务(PoC × 目标)下的内存使用与任务堆积问题,提升扫描稳定性与吞吐能力。

  3. 增强 TCP 代理/蜜罐/防火墙拦截检测机制
    提升对中间拦截节点的识别能力,减少误报与干扰。

  4. 新增 --http-default-accept 参数(默认开启)
    当 PoC 未设置 Accept 请求头时,自动添加 Accept: */*,且不会覆盖 PoC 中显式定义的 Accept 头或通过 -H 参数指定的请求头。