afrog-漏洞扫描(挖洞)工具【了解安装使用详细】

★★免责声明★★
文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由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、我的公众号

敬请关注我的公众号:大象只为你,持续更新网安相关知识中…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/40653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL篇-SQL优化实战-减少子查询

回顾 上一篇了解了分析SQL使用的explain,可以点击查看MySQL篇-SQL优化实战了解我在写sql的注意事项还有explain的说明,这次拿一段生产使用的sql进行优化说明。从14s优化到2.6s 待优化的SQL SELECT DISTINCTswpe.tag_number,hca.ACCOUNT_NAME customer…

VBA中类的解读及应用第十三讲:限制复选选择,窗体模块的搭建

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。 类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入&#xff0…

02-部署LVS-DR群集

1.LVS-DR工作原理 LVS-DR模式,Director Server作为群集的访问入口,不作为网购使用,节点Director Server 与 Real Server 需要在同一个网络中,返回给客户端的数据不需要经过Director Server 为了响应对整个群集的访问,…

Java WebService记

Web Services开发 常用的 Web Services 框架有 Apache Axis1 、 Apache Axis2 、 Apache CXF ,而 Apache Axis1 已经逐渐被淘汰所以本文不会讨论,重点关注 Apache Axis2 及 Apache CXF 。 Apache Axis2 在IDEA中新建 Axis2Demo 项目后右键选择 添加框架…

【Android源码】Gerrit安装

前言 如果你打开 https://android.googlesource.com/platform/manifest,就会发现,google官方管理Android源码,使用的是Gerrit。Android系统源码是非常大的,用Git肯定是不适合。对于大型项目,得用Gerrit,今…

NoSQL之Redis高可用与优化

一、Redis高可用 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证…

二叉树的链式访问 与 二叉树专题

目录 二叉树的前、中、后序遍历求二叉树第K层节点的个数二叉树查找值为x的节点leetcode相同的树对称二叉树二叉树的前序遍历另一棵子树牛客 二叉树的遍历 二叉树的前、中、后序遍历 1.前序遍历:先访问根节点,再访问左子树,最后访问右子树 根…

conda中创建环境并安装tensorflow1版本

conda中创建环境并安装tensorflow1版本 一、背景二、命令三、验证一下 一、背景 最近需要使用tensorflow1版本的,发个记录! 二、命令 conda create -n tf python3.6 #创建tensorflow虚拟环境 activate tf #激活环境,每次使用的时候都…

汽车信息安全--数据安全:图像脱敏

General 随着车联网的发展,汽车越来越智能化,就像是一部“装着四个轮子的手机”。 有人说,智能手机就如同一部窃听器,无论你开机或者关机,它都会无时不刻地监听着用户的一举一动。 可想而知,智能车辆上…

马工程刑法期末复习笔记重点2

马工程刑法期末复习笔记重点2

CLAM用于弱监督WSI分析

计算病理学(computational pathology)下的深度学习方法需要手动注释大型 WSI 数据集,并且通常存在领域适应性和可解释性较差的问题。作者报告了一种可解释的弱监督深度学习方法,只需要WSI级标签。将该方法命名为聚类约束注意力多实…

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(二十一)

课程地址: 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发 (本篇笔记对应课程第 31 节) P31《30.数据持久化-关系型数据库》 上一节中学习了使用用户首选项的方式实现数据持久化,但用户首…

微机原理 选择题

D C MOV、PUSH、POP、XLAT(查表)、IN、OUT不影响标志位 D B D C D C D B 1. (单选题, 5分)8位无符号数(字节)表示的数值范围是( ), 16位无符号数(字)表示的数值范围是( )。 A. 0~128 0~32768B. 0~255 0~655…

Vscode快捷键崩溃

Vscode快捷键崩溃 Linux虚拟机下使用vscode写代码【ctrlA,CtrlC,CtrlV】等快捷键都不能使用,还会出现“NO text insert“等抽象的指令,问题就是不知道什么时候装了一个VIM插件,让他滚出电脑》》》

使用 pyecharts 渲染成图片程序报错: echarts is not defined问题处理

背景 之前写的使用 snapshot_selenium 来保存pyeacharts渲染成的网页截图,可以正常运行。程序搁置了半年,不知道动了电脑哪里,再次运行程序时,程序开始报错:JavascriptException: javascript error: echarts is not d…

【SQL】已解决:SQL分组去重并合并相同数据

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:SQL分组去重并合并相同数据 在数据库操作中,数据的分组、去重以及合并是常见需求。然而,初学者在编写SQL语句时,可能会遇到一…

正弦波与单位圆关系的可视化 包括源码

正弦波与单位圆关系的可视化 包括源码 flyfish 正弦波与单位圆的关系 正弦波可以通过单位圆上的点在直线(通常是 y 轴)上的投影来表示。具体来说,考虑一个单位圆,其半径为 1,圆心在原点。我们可以通过旋转一个角度 …

【全网最全流程+所有代码】企业微信回调联调,开通企微回调和收到企微回调

流程图: 只是这里的消息回调,仅作为提示,群内有消息了。不是具体的消息,而是类似这样的结构,: 如果需要获取消息,还需要拉取企微群内消息方法,这个后续再更新。 好了,我们开始吧。 开启消息回调和接收消息回调,地址是一样的,只是 开启消息回调,get请求, 接受消…

人工智能在日常生活中的十大应用:从医疗到智能家居

人工智能已成为当今人类日常生活的重要组成部分,无论您是否意识到,它几乎在所有场景中都能提供帮助。每次您进行网络搜索、在线预订旅行、接收来自京东等购物平台的产品推荐又或是打开您的新浪、抖音时,都能看到影子,这些只是一些…

JAVA案例模拟电影信息系统

一案例要求: 二具体代码(需要在同一个包下创建三个类) Ⅰ:实现类 package 重修;import java.util.Random; import java.util.Scanner;public class first {public static void main(String[] args) {javabean[]moviesnew javabean[4];movies[0] new ja…