一、工具简介

Afrog 是一款基于 Go 语言开发的高性能漏洞扫描器,专为安全测试人员设计,用于漏洞赏金、渗透测试和红队演练。其核心优势包括:

  • PoC 库丰富:内置近 1000+ 检测模板,覆盖 CVE/CNVD、默认口令、信息泄露、未授权访问、命令执行等

  • 高性能:并发扫描、低误报率、生成详细 HTML 报告

  • 灵活定制:支持自定义 PoC、关键字/等级筛选、SDK 集成

  • 活跃社区:微信交流群支持,持续更新 PoC 库


二、安装部署

1. Go 环境安装(推荐)

# 安装最新版本(推荐)
go install -v github.com/zan8in/afrog/v3/cmd/afrog@latest

# 验证安装
afrog -h

前提:需提前安装 Go 语言环境(版本建议 1.18+)

2. 二进制安装(快速部署)

# 从 GitHub Releases 下载对应平台二进制
wget https://github.com/zan8in/afrog/releases/latest/download/afrog_linux_amd64.tar.gz

# 解压并赋予执行权限
tar zxvf afrog_*.tar.gz
chmod +x afrog

# 移动到系统 PATH
sudo mv afrog /usr/local/bin/

3. 源码编译(定制化)

# 克隆仓库
git clone https://github.com/zan8in/afrog.git
cd afrog

# 编译
go build cmd/afrog/main.go

# 生成可执行文件
./afrog -h

三、关键配置(避坑指南)

1. 反向连接平台配置(必做)

问题:首次运行会出现 [ERR] ceye reverse service not set 警告,影响无回显漏洞检测。

解决方案

  1. 访问 ceye.io 注册账号

  2. 进入个人设置,复制 domainapi-key

  3. 编辑配置文件(首次运行后自动生成):

# 配置文件路径
vim $HOME/.config/afrog/afrog-config.yaml
  1. 填入以下内容:

reverse:
  ceye:
    api-key: "你的ceye api-key"
    domain: "你的ceye domain(如xxx.ceye.io)"
  1. 保存后重启 Afrog,警告消失 ✅

2. 更新 PoC 库

定期更新确保检测最新漏洞:

# 更新 PoC 库
afrog --update-poc

# 或简写
afrog --up

3. 版本更新

# 从 v2.1.0 开始支持自动更新(需可执行文件在 $PATH 中)
afrog --update

# 若不在 PATH 中,先移动再更新
sudo mv afrog /bin/
afrog --update

四、核心功能使用

1. 扫描单个目标

# 默认扫描全部 PoC,结果保存在 reports/ 目录
afrog -t http://example.com

# 指定输出报告名称
afrog -t http://example.com -o my_report.html

2. 批量扫描

将目标 URL 放入文本文件(每行一个):

# urls.txt 内容示例
http://target1.com
https://target2.com:8443
http://192.168.1.1

# 执行批量扫描
afrog -T urls.txt

3. 按关键字筛选扫描

模糊搜索 PoC 名称,只扫描匹配项:

# 扫描 WebLogic 和 JBoss 相关漏洞
afrog -t http://example.com -s weblogic,jboss

# 支持多个关键字,逗号分隔

4. 按漏洞等级扫描

只扫描高危及以上漏洞(节省时间与资源):

# 等级:info(信息)、low(低危)、medium(中危)、high(高危)、critical(严重)
afrog -t http://example.com -S high,critical

五、高级用法

1. 指定自定义 PoC 目录

# 使用自己的 PoC 目录
afrog -t http://example.com -P /path/to/custom_pocs/

2. Web 持久化界面

启动 Web 服务,将漏洞存入 SQLite3 数据库,支持浏览器查看与搜索:

# 启动 Web 服务,监听 0.0.0.0:16868
afrog -web

# 浏览器访问
http://x.x.x.x:16868

功能:支持关键词搜索、按等级筛选、历史记录持久化

3. SDK 集成(Go 项目嵌入)

package main

import (
    "log"
    "path/filepath"
    "github.com/zan8in/afrog/v3"
)

func main() {
    // 创建扫描选项
    options := afrog.NewSDKOptions()
    
    // 设置目标
    options.Targets = []string{"https://example.com"}
    
    // 设置 PoC 路径(必需)
    pocPath, _ := filepath.Abs("./pocs/afrog-pocs")
    options.PocFile = pocPath
    
    // 配置参数
    options.Concurrency = 10  // 并发数
    options.RateLimit = 50    // 速率限制
    options.Timeout = 10      // 超时时间
    
    // 创建并运行扫描器
    scanner, err := afrog.NewSDKScanner(options)
    if err != nil {
        log.Fatal(err)
    }
    defer scanner.Close()
    
    scanner.Run()
    
    // 获取结果
    results := scanner.GetResults()
    log.Printf("发现 %d 个漏洞\n", len(results))
}

特点:支持结构化返回、实时结果流、OOB 检测、线程安全


六、实战案例

场景 1:企业内网快速风险排查

# 步骤 1:使用 Nmap 探测资产存活
nmap -sV -p 80,443,8080,8443 192.168.1.0/24 -oA assets

# 步骤 2:提取开放 Web 服务的 IP
grep "open" assets.gnmap | awk '{print $2}' > web_targets.txt

# 步骤 3:Afrog 批量扫描高危漏洞
afrog -T web_targets.txt -S high,critical -o inner_scan.html

# 步骤 4:查看报告,优先修复高危漏洞
firefox inner_scan.html

场景 2:SRC 漏洞挖掘(关键字精准打击)

# 扫描目标站点中常见的注入和逻辑漏洞
afrog -t https://target.com -s sql,injection,xss,upload,unauth -o bug_bounty.html

场景 3:IoT 设备固件漏洞检测

# 针对路由器、摄像头等设备的默认口令和已知 CVE
afrog -t http://192.168.1.1 -s router,camera,default,cve-2023 -o iot_scan.html

七、注意事项(⚠️ 必读)

  1. 法律合规:仅限授权测试,禁止扫描未授权目标

  2. JSON 报告修复:若扫描中断,需在 JSON 文件末尾手动添加 ] 才能正常解析

  3. 网络依赖:部分 PoC 需要外连(如 Ceye),确保网络可达

  4. 资源消耗:高并发扫描可能触发目标 WAF/IPS,合理设置 -rate-limit

  5. 误报处理:Afrog 误报率较低,但仍需人工验证高危漏洞


八、报告解读

扫描完成后,Afrog 自动生成 HTML 报告,包含:

  • 概览:总漏洞数、等级分布、耗时

  • 详情:漏洞名称、等级、URL、请求/响应数据、修复建议

  • 交互:支持折叠、搜索、筛选

示例报告位置reports/ 目录下,文件名含扫描时间戳。


九、社区与支持

  • GitHub 仓库https://github.com/zan8in/afrog

  • 微信交流群:添加 Afrog 官方号,备注“afrog”进群

  • PoC 贡献:欢迎提交自定义 PoC 到社区


总结:Afrog 是新一代高性能漏洞扫描器,适合安全研究人员快速定位风险。掌握其配置与高级用法,可显著提升漏洞挖掘效率。建议从批量扫描和等级筛选入手,逐步深入到 SDK 集成与 PoC 定制。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐