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

news2024/11/23 19:13:34

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

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

相关文章

全面教程:在Ubuntu上快速部署ZeroTier,实现Windows与VSCode的局域网无缝访问

文章目录 1 背景介绍2 Windows上的操作3 Ubuntu上的操作4 连接 1 背景介绍 在现代工作环境中,远程访问公司内网的Ubuntu主机对于开发者来说是一项基本需求。然而,由于内网的限制,传统的远程控制软件如向日葵和todesk往往无法满足这一需求。作…

【后端面试题】【中间件】【NoSQL】MongoDB查询过程、ESR规则、覆盖索引的优化

任何中间件的面试说到底都是以高可用、高性能和高并发为主,而高性能和高并发基本是同时存在的。 性能优化一直被看作一个高级面试点,因为只有对原理了解得很透彻的人,在实践中才能找准性能优化的关键点,从而通过各种优化手段解决性…

YOLOv5改进 | 损失函数 | EIoU、SIoU、WIoU、DIoU、FocuSIoU等多种损失函数

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录: 《YOLOv5入门 …

VsCode允许JSON文件注释

打开设置 配置 输入:文件关联或者Files: Associations

Qt实现检测软件是否多开

Qt实现检测软件是否多开 在桌面软件开发中,软件通常要设置只允许存在一个进程,像一些熟知的音乐软件,QQ音乐这种。而这些软件在限制只有一个进程的同时,通常还会有双击桌面图标唤醒已运行的后台进程的功能。关于双击桌面唤醒已运…

Android广播机制

简介 某个网络的IP范围是192.168.0.XXX,子网 掩码是255.255.255.0,那么这个网络的广播地址就是192.168.0.255。广播数据包会被发送到同一 网络上的所有端口,这样在该网络中的每台主机都将会收到这条广播。为了便于进行系统级别的消息通知&…

Android使用http加载自建服务器静态网页

最终效果如下图,成功加载了电脑端的静态网页内容,这是一个xml文件。 电脑端搭建http服务器 使用“Apache Http Server”,下载地址是:https://httpd.apache.org/download.cgi。具体操作步骤,参考:Apache …

使用 urllib OpenSSL 时遇到的问题及解决

题意: ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1, currently the ssl module is compiled with LibreSSL 2.8.3 当前使用的 urllib3 版本(v2.0)仅支持 OpenSSL 1.1.1 或更高版本,但你的 Python 环境中的 ssl 模块…

Windows 11 安装 Python 3.11 完整教程

Windows 11 安装 Python 3.11 完整教程 一、安装包安装 1. 下载 Python 3.11 安装包 打开浏览器,访问 Python 官方下载页面。点击“Download Python 3.11”,下载适用于 Windows 的安装包(Windows installer)。 2. 安装 Python 3.11 运行下载的安装包 python-3.11.x-amd6…

django @login_required 为什么会自动重定向到/accounts/login/?next=/myblog/post/new/

在Django中,login_required 装饰器用于确保用户在访问某个视图时已经登录。如果用户未登录,那么Django会自动重定向用户到登录页面。默认情况下,Django使用/accounts/login/作为登录URL。如果用户试图访问一个需要登录的视图,比如…

eNSP-VLAN虚拟局域网

一、出现Vlan的原因 同一个局域网,使用交换机连接,虽然比集线器相连,降低了广播风暴,但是局域网主机数量够多的时候,正常的广播数据(arp、dhcp)也很影响网络性能,所以还需要进一步降低广播风暴——VLAN (图…

Altium Designer专业PCB设计软件下载安装 Altium Designer安装包下载获取

在电子设计的广袤领域中,PCB设计无疑占据着重要的地位。而Altium Designer作为一款业界领先的电子设计自动化软件,其提供的先进布局工具,无疑为设计师们打开了一扇通往高效、精确设计的大门。 在PCB设计的核心环节——布局中,Alti…

xinput1_4.dll丢失怎么办?如何来解决xinput1_4.dll丢失问题

在电脑启动游戏时候经常会出现一些问题导致游戏无法打开运行,其中找不到xinput1_4.dll文件丢失就是常见问题之一,那么当遇到xinput1_4.dll丢失怎么办呢?今天就教大家如何来解决xinput1_4.dll丢失问题。 一、xinput1_4.dll文件详解 XINPUT1_4…

一款优秀、亮眼的开源堡垒机

介绍 在运维的日常工作中,登陆服务器操作不可避免,为了更安全的管控服务器,但凡有点规模的公司都会上线堡垒机系统,堡垒机能够做到事前授权、事中监控、事后审计,同时也可以满足等保合规要求。 提到堡垒机&#xff0…

小白 | 华为云docker设置镜像加速器

一、操作场景 通过docker pull命令下载镜像中心的公有镜像时,往往会因为网络原因而需要很长时间,甚至可能因超时而下载失败。为此,容器镜像服务提供了镜像下载加速功能,帮助您获得更快的下载体验。 二、约束与限制 构建镜像的客…

LVS+Nginx高可用集群--基础篇

1.集群概述 单体部署: 可以将上面内容分别部署在不同的服务器上。 单体架构的优点: 小团队成型就可完成开发,测试,上线 迭代周期短,速度快 打包方便,运维简单 单体架构的挑战:单节点宕机造成…

SecureCRT--使用sftp上传和下载文件

原文网址:SecureCRT--使用sftp上传和下载文件_IT利刃出鞘的博客-CSDN博客 简介 本文介绍SecureCRT如何在软件内直接上传和下载文件。 SecureCRT可以用如下两种方法上传和下载文件: 自带的sftp插件服务器安装rz/sz命令 本文介绍第一种方法&#xff0…

12个视觉艺术分类

视觉设计可以按照多种方式进行分类,这些分类通常基于设计的目的、风格或应用场景。本文为大家介绍12种视觉设计,分别是平面设计、标志设计、包装设计、用户界面设计 (UI Design)、用户体验设计 (UX Design)、插图设计、网页设计、动画设计、展览设计、环…

Jenkins 下使用 Node 和 Npm(借助 nvm-wrapper 插件)构建前端程序

一、前言 搭建完Jenkins后,如何使用node进行构建前端呢,多个项目会使用的node的多个版本。如何动态指定node的版本进行构建呢。 方案一: 安装多个node版本,然后进行指定。这样比较麻烦。 方案二: 使用Jenkins的nv…

C++时区转换

#include <iostream> #include "cctz/civil_time.h" #include "cctz/time_zone.h"// 时区转换库 // https://github.com/google/cctzint test() {for (cctz::civil_day d(2016, 2, 1); d < cctz::civil_month(2016, 3); d) {std::cout << &…