★★免責聲明★★
文章中涉及的程序(方法)可能帶有攻擊性,僅供安全研究與學習之用,讀者將信息做其他用途,由Ta承擔全部法律及連帶責任,文章作者不承擔任何法律及連帶責任。
1、afrog介紹
afrog 是一款性能卓越、快速穩定、PoC可定制的漏洞掃描(挖洞)工具,PoC涉及CVE、CNVD、默認口令、信息泄露、指紋識別、未授權訪問、任意文件讀取、命令執行等多種漏洞類型,幫助網絡安全從業者快速驗證并及時修復漏洞。
afrog有以下優點:
- 開源
- 快速、穩定、誤報率低
- 詳細的 HTML 漏洞報告
- 可定制且可穩定更新的 PoC
- 活躍的社區交流小組
項目地址:https://github.com/zan8in/afrog
2、環境準備
基礎環境是kali linux ,ip: 192.168.242.4
如果沒有kali系統虛擬機,可關注公眾號:大象只為你,后臺回復:【虛擬機】獲取。
afrog的安裝使用需要go,go版本要求1.19 或更高版本,所以需要先安裝go。
2.1、安裝go
在kali linux系統下安裝會比較簡單,使用apt-get命令,安裝完成就可使用,不需要再設置環境變量等,安裝命令如下:
# 切換到root角色
sudo su
# 更新資源
apt-get update
# 安裝golang
apt-get install golang-go
# 查看安裝版本
go version
3、安裝afrog
安裝afrog官方有提供3個方式,編譯好的Binary直接使用、Github下載源碼編譯和Go方式安裝。本文給前面兩種方式,Github源碼安裝是會比較麻煩,過程中也可能會出現異常情況。
3.1、編譯好的Binary直接使用
github項目地址看到右側看到Releases點進去下載最新的afrog_xxx_linux_amd64.zip
或直接訪問 https://github.com/zan8in/afrog/releases
選擇版本下載,然后復制到kali系統、解壓即可用。
# 創建目錄,復制下載的編譯好的zip包到該目錄下
mkdir afrog
# 切換到afrog目錄下
cd afrog
# 解壓壓縮包
unzip afrog_3.0.7_linux_amd64.zip
# 刪除壓縮包
rm -rf afrog_3.0.7_linux_amd64.zip
# 查看版本號驗證命令是否可正常使用
./afrog -v
# 更多命令使用參數-h查看
./afrog -h
3.2、Github下載源碼編譯
方便工具使用管理,一般會單獨放在一個目錄下,比如tools,安裝命令如下:
如果git clone方式,因網絡問題無法正常下載,可直接到github上下載后再復制到kali 虛擬機。
# 切換到tools目錄
cd tools
# 下載afrog源碼
git clone https://github.com/zan8in/afrog.git
# 切換到afrog源碼目錄
cd afrog
# 方式一:生成的執行文件是afrog【建議使用】
go build -o afrog cmd/afrog/main.go
# 方式二:生成的執行文件是main
go build cmd/afrog/main.go
在編譯這個步驟預計10~20分鐘,具體看網速而定,如果網速不好的話,這個步驟會卡很久,卡很久可能是異常了【詳見3.3、Github下載源碼編譯異常處理】。
編譯完后就可以使用命令確認是否正常使用。
# 查看版本號
./afrog -v
# 更多命令使用參數-h查看
./afrog -h
3.3、Github下載源碼編譯異常處理
卡在go: downloading github.com/zan8in/rawhttp
這個地方很久沒反應
如果沒有使用Ctrl+C
命令強制停止,最后會有異常信息如下:
....略
whttp/@v/v0.0.0-20230318132449-31532db674af.zip": dial tcp 172.217.163.49:443: connect: connection refused
pkg/runner/celprogram.go:18:2: github.com/zan8in/oobadapter@v0.0.0-20240611013553-c79cb5eec939: Get "https://proxy.golang.org/github.com/zan8in/oobadapter/@v/v0.0.0-20240611013553-c79cb5eec939.zip": dial tcp 142.251.42.241:443: connect: connection refused
pkg/runner/cel.go:15:2: google.golang.org/genproto/googleapis/api@v0.0.0-20230530153820-e85fd2cbaebc: Get "https://proxy.golang.org/google.golang.org/genproto/googleapis/api/@v/v0.0.0-20230530153820-e85fd2cbaebc.zip": dial tcp 142.251.42.241:443: connect: connection refused
把以上報錯信息復制去ChatGPT給出的說明是安裝和編譯 afrog 時遇到了連接問題,無法從 Go 代理服務器下載所需的包。這可能是由于網絡問題或代理服務器的問題。
嘗試在瀏覽器中打開 https://proxy.golang.org
是能正常訪問。采用更改 Go 代理服務器的方式解決
# 執行該語句后再重新編譯afrog就正常了
go env -w GOPROXY=https://goproxy.cn,direct
4、使用說明
使用命令可用 ./afrog -h
來查看,這里只列出1個命令和對應2個場景靶場使用示例。afrog和其他一些工具的聯動后面我自己測試使用再分享出來。更多用法請參考wiki:https://github.com/zan8in/afrog/wiki
在掃描之前,需要先配置afrog-config.yaml
4.0、配置afrog-config.yaml
配置文件目錄在$HOME/.config/afrog/afrog-config.yaml
。詳細可參考:https://github.com/zan8in/afrog/wiki/Configuration
至少需要配置ceye,api-key和domain 從http://ceye.io/
獲取,自己注冊賬號。
使用命令vim 打開配置文件,按i
鍵進入編輯,退出編輯按esc
,保存退出輸入:wq!
,僅退出不保存輸入:q!
。
4.1、使用命令
掃描單個目標:
默認情況下,afrog 會掃描所有內置 PoC,如果發現任何漏洞,它會自動創建 HTML 報告,以掃描日期作為文件名,并且在web端【需啟用web服務才可看】展示出來;如果沒有發現漏洞不會生成報告。
./afrog -t https://example.com
掃描的結果在/reports
目錄下,或使用命令./afrog --web
啟動web服務查看漏洞報告。
注意:掃描結果不一定完全準確,可結合其他信息收集或檢測一起。
以下演示基于在線靶場:https://vulfocus.cn/
,靶場啟動后20分鐘內有效。
4.2、無漏洞示例
在線靶場搜索SQL注入編號:CVE_2022_28346
,啟動靶場。
執行命令結果如下:
到reports目錄下查看沒有生成xxx.html
文件。
分析原因: 漏洞編號CVE_2022_28346
在afrog收錄的pocs里面有沒有記錄,所以就掃描不出來。
4.3、有漏洞示例
先在github上的pocs記錄上取一個CVE-2020-14750
,再到在線靶場搜索,啟動靶場,得到測試地址。
執行命令結果如下:
訪問web端,可以看到列出結果和控制臺一樣的記錄,只不過web端會有更詳細的記錄可以查看。
以弱口令登錄為示例,查看詳細,會發現測試弱口令登錄成功的賬號密碼都提供出來了。
5、我的公眾號
敬請關注我的公眾號:大象只為你,持續更新網安相關知識中…