新功能:史上最好用的反连&JavaHack,安全能力基座强化ing
2022-10-13 17:33:19 Author: Yak Project(查看原文) 阅读量:34 收藏

反序列化类加载JNDI漏洞利用是Java漏洞中特别常见的几种类型,但相对来说利用过程又是较为复杂的。所以Yakit提供了两个特别好用的功能,无需Java环境,仅需一个Yakit

下面先介绍下使用方法再演示下实战利用。

反连服务器

返连服务可用于手工渗透测试,既可用于漏洞检测,也可用于漏洞利用。

01

本地启动

初始页面如图(如果有配置公网反连,则会自动启用公网穿透,并自动填写Bridge信息),反连地址默认是获取本机的第一块网卡IP。

启动成功后如图,根据需求填写蓝色提示框内的地址.

02

漏洞检测

写一段java代码测试下连接

在Yakit上可以看见收到请求,token为aaa,返回内容为<empty>(代表响应内容为空

03

漏洞利用

在返连页面右上角有个Payload配置,开启后可以看见左面出现类似 Yso-Java Hack 的页面,在这里可以配置payload。

命令填写 

open /System/Applications/Calculator.app

然后点生成。可以看见返连地址自动添加了token。

复制新地址,再试一下连接ldap,发现弹出计算器。

在 Yakit 上可以看见利用流程: 受害端发出 ldap 请求,Yakit 返回一个 reference 类,指向一个 web 地址 -> 受害端访问 web 地址,Yakit 返回一个恶意类 -> 受害端加载恶意类导致命令执行。

04

公网穿透

对于公网的目标,反连服务就需要在公网监听了,一是可以将Yak引擎公网部署,二是可以在公网搭建Bridge,这里主要讲下第二种方法。

首先需要在 VPS 上安装 Yak 引擎。

(执行bash <(curl -sS -L http://oss.yaklang.io/install-latest-yak.sh)进行安装),执行yak grpc --secret yourpassword启动Bridge。

更多介绍可以看这篇文章《想拥有自己的 Yak Bridge?DNSLog、ICMPLog、TCPLog 全部免费》。

如图输入 Bridge 地址和密码,启动(如果报错 connection refused 则表示连接 Bridge 失败,检查下密码是否正确、端口是否成功开启、vps 上是否有防火墙限制、云服务控制台上是否设置了安全策略

连接成功后可以看到反连地址的 IP 已经变为 Bridge 服务器的 IP 了,接下来的操作和本地启动相同。

Yso-Java Hack

页面初始状态如图,左侧配置 payload 参数,右侧用来展示生成的 payload。

01

生成序列号payload

默认开启 “使用利用链”,即生成序列化 payload ,一级选项是利用链,二级选项是恶意类。鼠标放到小问号上可以看到介绍。

选择利用链和恶意类后,会出现配置表单,类名默认是随机生成的,填写所有表单信息,点击生成,就可以在右侧看到生成的 payload ,点击上方可以切换展示方式。

还可以展示生成payload的代码,还可以将代码发送到Yak Runner,师傅们写插件时如果懒得写,就可以直接在这里直接生成代码。

最新版本 payload 展示类型增加了一个 DUMP ,可以看到 payload 的数据结构,像下面这样。

02

生成恶意类

如图,关闭 “使用利用链” 就可以生成恶意类,具体操作和生成利用链类似

可以看见关闭 “使用利用链” 时多了一个启动反连服务按钮,下面再看一下反连服务。

0303

配合反连使用

在配置好恶意类后,点击启动反连,就可以使用当前恶意类直接启动反连了(如果配置了公网反连则使用此配置启动,否则使用本地启动,如果启动失败,请自行在高级配置里配置反连地址),如图

实战测试

新功能介绍完了,下面看下实战场景吧,以 Fastjson 和 shiro 利用为例。

01

Fastjson测试

这里使用 vulfocus 启动一个 CNVD-2017-02833 实例,攻击流程如下

  1. 在 vps 启动一个 yak 引擎yak grpc --host 0.0.0.0,Yakit 端输入服务器地址和端口(默认8087),连接

  2. 打开Yakit的端口监听器,监听一个端口,以 8086 为例

  3. 启动反连服务器并配置恶意类为 TCPReverseShell ,主机填 vps 的 ip ,端口填上面监听的 8086 ,点击应用

  1. 打开 webfuzzer,发送 Payload

如图,反连列表中可以看见成功收到 LDAP 和 HTTP 请求,说明目标成功加载了恶意类(如果只收到 LDAP 请求,没有 HTTP 请求,可能是目标未开启 

com.sun.jndi.ldap.object.trustURLCodebase

端口监听器收到了目标机器的连接

02

Shiro测试

使用vulfocus/shiro-CVE-2016-4437镜像搭建环境,启动Yakit

打开Yso-Java Hack

利用链选择CommonsBeanutils1

恶意类选择RuntimeExec,填写命令,生成Yak代码

编写Yak脚本

执行后进入容器看见/tmp目录下多了111文件,利用成功

总结

有些Java漏洞的利用太繁琐了,需要java环境、多种工具配合使用、还要在 VPS 上看回显、记各种命令…

对比之下 Yakit 真的太好用了!本次更新的两个功能基本上可以解决大部分Java漏洞利用的场景,希望师傅们多多使用,欢迎提出意见。

插件新功能速递

插件可以申请修改他人的插件啦!作者同意修改后,插件协作者也会增加你的署名噢~

插件仓库—下载—编辑—提交申请内容,只需几步轻松完成。

提交修改以后,可在“日志”查看修改记录,以及作者审核结果。

为了帮助作者更好审核插件,贴心提供了插件源码的对比功能,一眼就可看出修改内容。

往期推荐>>

插件分析|Yaklang SQL Injection 检测启发式算法

安全研发启蒙课: 子域名收集联动Yak漏扫插件

CVE-2020-2551 深入 IIOP 检测与 Non-Java(Yak) 利用

Low Code, Full Turing: Yaklang 分布式引擎 SaaS 化


文章来源: http://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&mid=2247491180&idx=1&sn=5884aac8716de361a383c6e884bdca39&chksm=c2d262c8f5a5ebdecea937ebc8be5c322c21a1ffcda9b81d66e65d64dc84b64180ec937f122b#rd
如有侵权请联系:admin#unsafe.sh