【转载】高性能漏洞扫描器afog介绍及使用
什么是 afrog
afrog 是一个高性能的漏洞扫描器,具有快速稳定的特点。它支持用户自定义 PoC,并内置了多种类型,如 CVE、CNVD、默认密码、信息泄露、指纹识别、未授权访问、任意文件读取和命令执行。使用 afrog,网络安全专业人员可以快速验证和修复漏洞,从而提升安全防护能力。
功能特性
- 开源
- 快速、稳定、误报率低
- 详细的 HTML 漏洞报告
- 可自定义且稳定更新的 PoCs
- 活跃的社区交流群
安装
前置要求
- Go 版本 1.19 或更高版本。
您可以通过以下方式安装:
二进制文件
$ https://github.com/zan8in/afrog/releases/latest
Github
$ git clone https://github.com/zan8in/afrog.git $ cd afrog $ go build cmd/afrog/main.go $ ./afrog -h
Go
$ go install -v github.com/zan8in/afrog/v3/cmd/afrog@latest
运行 afrog
默认情况下,afrog 会扫描所有内置的 PoCs,如果发现任何漏洞,它会自动创建一个以扫描日期为文件名的 HTML 报告。
afrog -t https://example.com
运行 afrog 时的警告
如果您看到错误消息:
[ERR] ceye reverse service not set: /home/afrog/.config/afrog/afrog-config.yaml这意味着您需要修改配置文件。
要执行自定义 PoC 目录,您可以使用以下命令:
afrog -t https://example.com -P mypocs/
使用命令-s keyword对所有 PoCs 进行模糊搜索并扫描搜索结果。可以使用多个关键词,用逗号分隔。例如:-s weblogic,jboss。
afrog -t https://example.com -s weblogic,jboss
使用命令-S keyword根据严重程度级别扫描漏洞。严重程度级别包括:info、low、medium、high和critical。例如,要仅扫描高危和严重漏洞,请使用命令-S high,critical。
afrog -t https://example.com -S high,critical
您也可以同时扫描多个 URL。
afrog -T urls.txt
指纹门控(requires)
弱口令/爆破/默认口令等高成本 PoC 通常建议只在命中指定指纹后执行。Afrog 支持在 PoCinfo中声明以下字段:
requires:依赖的指纹标签(例如mysql、ftp、nacos)requires-mode:门控模式(strict/opportunistic),默认strict
当 PoC 使用requires-mode: strict时,如果运行时禁用了指纹阶段(-nf),或目标未命中对应指纹,该 PoC 将被跳过。完整用法与问题排查请参考:requires 指纹门控:用法教程与问题答疑
-web 命令
-web命令允许将 afrog 扫描的漏洞持久存储到 SQLite3 数据库中。通过浏览器访问 http://x.x.x.x:16868 可以访问漏洞报告网页,用户可以进行简单的关键词搜索并按漏洞严重程度过滤结果。
afrog -web
配置文件
第一次启动 afrog 时,它会自动创建一个名为afrog-config.yaml的配置文件,该文件将保存在当前用户目录下的$HOME/.config/afrog/afrog-config.yaml。
以下是示例配置文件:
reverse: ceye: api-key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" domain: "xxxxxx.cey2e.io" dnslogcn: domain: dnslog.cn alphalog: domain: dnslogxx.sh api_url: "http://dnslogxx.sh/" xray: x_token: "xraytest" domain: dnslogxx.sh api_url: "http://x.x.0.x:8777" revsuit: token: "xx" dns_domain: "log.xx.com" http_url: "http://x.x.x.x/log/" api_url: "http://x.x.x.x/helplog"
reverse是一个反向连接平台,用于验证无法回显的命令执行漏洞。目前只有 ceye 可以用于验证。
Ceye 配置
要获取 ceye,请按照以下步骤操作:
- 前往 ceye.io 网站并注册账户。
- 登录并进入个人设置页面。
- 复制
domain和api-key并在afrog-config.yaml文件中正确配置它们。
Dnslogcn
无需配置,但不稳定 dnslog.cn
Alphalog
需要构建服务 alphalog
Xray
需要构建服务 xray
Revsuit
需要构建服务 Revsuit、 教程
Json 输出(面向开发者)
Json
可选命令:-json-j,将扫描结果保存到 JSON 文件。JSON 文件默认包含以下内容:target、fulltarget、id和info。info 字段包含以下子字段:name、author、severity、description和reference。如果您想保存request和response内容,请使用 -json-all 命令参数。
afrog -t https://example.com -json result.json afrog -t https://example.com -j result.json
警告
JSON 文件的内容会实时更新。但是有一个重要的注意事项:在扫描完成之前,如果开发者想要解析文件内容,他们需要自己在文件末尾添加一个 ']' 符号,否则会导致解析错误。当然,如果您等待扫描完成后再解析文件,就不会出现这个问题。
JsonAll
可选命令:-json-all-ja,-json-all和-json命令之间的唯一区别是-json-all将所有漏洞结果(包括request和response)写入 JSON 文件。
afrog -t https://example.com -json-all result.json afrog -t https://example.com -ja result.json
截图
作为库使用
简单示例
详细的 SDK 使用指南:
- SDK 使用指南(中文)
- SDK Usage Guide (English)
更多示例:
- 基础扫描器
- 异步扫描器
- OOB 扫描器
- 进度扫描器
讨论群
要加入微信上的 afrog 交流群,请先添加 afrog 个人账户并标记为afrog。然后,管理员会将您添加到群中。
404Starlink
afrog 已加入 404Starlink
免责声明
此工具仅用于合法授权的企业安全建设目的。如果您想测试此工具的功能,您应该自己构建目标环境。
为了防止恶意使用,此项目中包含的所有 PoCs 都是漏洞的理论评估。该工具不会利用漏洞、对目标发起真正的攻击或利用。
在使用此工具进行漏洞扫描时,重要的是确保您的行为符合当地法律法规,并且您已获得充分的授权。请勿扫描未经授权的目标。
如果您在使用此工具时从事任何非法行为,您将对任何相应的后果承担全部责任,我们不会承担任何法律或连带责任。
在安装和使用此工具之前,请仔细彻底地阅读每个条款。可能会以粗体或下划线突出显示可能显著影响您的权利和利益的限制、免责声明或其他条款,以引起您的注意。除非您已完全阅读、完全理解并同意本协议的所有条款,否则请勿安装或使用此工具。您使用该工具或以任何其他明示或暗示的方式接受本协议将被视为您承认并同意受本协议约束。
【转自】afrog/docs/README_CN.md at main · zan8in/afrog · GitHub
