You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
404StarLink/detail/afrog.md

6.7 KiB

afrog https://github.com/zan8in/afrog

Language Author GitHub stars Version Time

What is afrog

afrog is a high-performance vulnerability scanner that is fast and stable. It supports user-defined PoC and comes with several built-in types, such as CVE, CNVD, default passwords, information disclosure, fingerprint identification, unauthorized access, arbitrary file reading, and command execution. With afrog, network security professionals can quickly validate and remediate vulnerabilities, which helps to enhance their security defense capabilities.

Features

  • Open source
  • Fast, stable, with low false positives
  • Detailed HTML vulnerability reports
  • Customizable and stably updatable PoCs
  • Active community exchange group

Installation

Prerequisites

  • Go version 1.19 or higher.

you can install it with:

Binary

$ https://github.com/zan8in/afrog/releases

Github

$ git clone https://github.com/zan8in/afrog.git
$ cd afrog
$ go build cmd/afrog/main.go
$ ./afrog -h

Go

$ go install -v https://github.com/zan8in/afrog/cmd/afrog@latest

Running afrog

By default, afrog scans all built-in PoCs, and if it finds any vulnerabilities, it automatically creates an HTML report with the date of the scan as the filename.

afrog -t https://example.com

Warning occurs when running afrog

If you see an error message saying:

[ERR] ceye reverse service not set: /home/afrog/.config/afrog/afrog-config.yaml

it means you need to modify the configuration file.

To execute a custom PoC directory, you can use the following command:

afrog -t https://example.com -P mypocs/

Use the command -s keyword to perform a fuzzy search on all PoCs and scan the search results. Multiple keywords can be used, separated by commas. For example: -s weblogic,jboss.

afrog -t https://example.com -s weblogic,jboss

Use the command -S keyword to scan vulnerabilities based on their severity level. Severity levels include: info, low, medium, high, and critical. For example, to only scan high and critical vulnerabilities, use the command -S high,critical.

afrog -t https://example.com -S high,critical

You can scan multiple URLs at the same time as well.

afrog -T urls.txt

Configuration file

The first time you start afrog, it will automatically create a configuration file called afrog-config.yaml, which will be saved in the current user directory under $HOME/.config/afrog/afrog-config.yaml.

Here is an example config file:

reverse:
  ceye:
    api-key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    domain: "xxxxxx.ceye.io"

reverse is a reverse connection platform used to verify command execution vulnerabilities that cannot be echoed back. Currently, only ceye can be used for verification. To obtain ceye, follow these steps:

  • Go to the ceye.io website and register an account.
  • Log in and go to the personal settings page.
  • Copy the domain and api-key and correctly configure them in the afrog-config.yaml file.

Json Output (For developers)

Json

Optional command: -json -j, Save the scan results to a JSON file. The JSON file includes the following contents by default: target, fulltarget, id, and info. The info field includes the following sub-fields: name, author, severity, description, and reference. If you want to save both request and response contents, please use the -json-all command parameter.

afrog  -t https://example.com -json result.json
afrog  -t https://example.com -j result.json

::: warning The content of the JSON file is updated in real time. However, there is an important note to keep in mind: before the scan is completed, if developers want to parse the file content, they need to add a ']' symbol to the end of the file by themselves, otherwise it will cause parsing errors. Of course, if you wait for the scan to complete before parsing the file, this issue will not occur. :::

JsonAll

Optional command: -json-all -ja, The only difference between the -json-all and -json commands is that -json-all writes all vulnerability results, including request and response, to a JSON file.

afrog -t https://example.com -json-all result.json
afrog -t https://example.com -ja result.json

项目相关

最近更新

[v2.3.2] - 2023-05-14

新增

  • 使用命令参数 -json 或 -j,将漏洞结果写入 JSON 文件,不包括 request 和 response
  • 使用命令参数 -json-all 或 -ja,将漏洞结果写入 JSON 文件,包括 request 和 response
  • 使用 disable-output-html 命令可以禁止生成 HTML 报告,该命令的优先级高于 -o 命令
  • PoC 脚本 info 信息增加 affected、solutions、created 三个字段

优化

  • 已移除重复的PoC: springboot-env-unauth
  • 执行更新操作时,-up 命令提示不够友好
  • 按照从低到高的安全风险级别顺序进行扫描
  • 优化 url.path 编码问题

[v2.3.1] - 2023-05-05

BUG

  • 解决版本检查导致内网无法使用问题

新增

  • 命令 -disable-update-check,-duc 禁用自动更新检查

修改

  • 现在 update-poc 会自动执行,禁用这个功能,请使用 -duc 命令

[v2.3.0] - 2023-05-02

新增

  • 命令 poc-detail/pd,查看 poc 详情
  • 命令 monitor-targets/mt,在扫描中实时监控目标存活

优化

  • 命令 poc-list/pl,查看 poc 列表

[v2.2.3] - 2023-04-22

优化

  • 可自定义 html report 报告生成目录

PoC

  • 新增 22 PoC

[v2.2.2] - 2023-04-05

修复

  • 修复 afrog html 报告 XSS 漏洞

优化

  • 简化 URL 黑名单机制
  • 优化 http/s 检测功能
  • 优化 文件上传 (所有) PoC
  • 优化 RCE (所有) PoC

删除

  • 去掉 Fingerprint 指纹识别及命令参数 (替代工具 pyxis)
  • 去掉不常用命令参数

PoC

  • 新增 52 PoC
  • 验证和优化 n 多个 PoC
  • 删除 PoC csz-cms-multiple-blind-sql-injection
  • 删除 PoC phpstudy-nginx-wrong-resolve
  • 内置几个 private PoC