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.
- Open source
- Fast, stable, with low false positives
- Detailed HTML vulnerability reports
- Customizable and stably updatable PoCs
- Active community exchange group
- 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
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
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
andapi-key
and correctly configure them in theafrog-config.yaml
file.
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.
:::
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
- 2023-07-10 发布视频《404星链计划-afrog:快速稳定的漏洞扫描工具》
更新
- 新增 OOB 平台:recvsuit,使用命令:
-oob revsuit
- afrog-config.yaml 新增
revsuit
配置
更新
- afrog 已更新了 POC 扫描逻辑,现在先扫描普通 POC,然后再扫描 OOB POC
- -oob-rate-limit/-orl 设定 OOB POC 的每秒最大请求量,默认为 25;-oob-concurrency/-oc 则设置 OOB POC 的最大并发执行数量,默认为 25
- 修复了一个导致 ceye 验证接口不稳定时漏报的 BUG
- 将 SQLite3 数据表的 ID 修改为雪花算法,以支持分布式系统
- 首次使用 afrog 并指定 config 配置文件时,SQLite3 未初始化表,导致插入操作报错的 BUG
更新
- 修复在Linux环境内使用 -ap 命令时,指定路径全部转为小写,导致无法正常工作的 BUG
更新
- 新增 -header 命令,用于在 http 请求中自定义 header 头
- 命令 -cookie 已废弃
更新
- 新增了 -config 参数,用于自定义 afrog-config.yaml 文件的目录