VMware VRealize Network Insight 命令注入和目录穿越及补丁绕过
本文分为两部分,前半部分主要是对VMSA-2022-0031的分析,后半部分是我挖的补丁绕过,官方公告是VMSA-2023-0012。
Tag
本文分为两部分,前半部分主要是对VMSA-2022-0031的分析,后半部分是我挖的补丁绕过,官方公告是VMSA-2023-0012。
漏洞概述 由于7848端口采用hessian协议传输数据,反序列化未设置白名单导致存在RCE漏洞。
前言 这个漏洞是看了mrme的文章之后 顺手看了看vROPS,发现也存在这个漏洞,于是有此文,漏洞比较简单,下面简单写一下。这是一个授权后的RCE漏洞。
配置调试 修改/opt/vmware/etc/vmware-vcops-firewall.conf配置文件,修改加上自己的端口然后vmware-vcops-firewall restart开防火墙。
思考很久,发现还是自己底子不扎实,于是学了很长一段时间的静态软件分析,看了很多的论文(折磨)和视频,其中包括南京大学谭添、李樾两位老师的课,北大熊英飞老师的课等等,今天就简单写一下谭添、李樾两位老师开发的tai-e指针分析框架的简单使用。
补丁要求用户名不能有空白字符,典型。我们需要看这个空白字符在哪用到了,以及对我们漏洞利用起了什么作用。
调试java需要编辑/usr/sbin/r1soft/conf/server.conf加一行。
回顾fastjson历史漏洞 fastjson1.2.47是通过MiscCodec向白名单缓存中put任意类。
基本使用 doop仓库是一个gradle项目,./doop其实就是一个bash去调用gradle命令。
ByteCodeDL也是一款java字节码静态分析工具,它借助了soot-fact-generator + Souffle 两个工具实现了一款声明式的静态分析工具。
MickeyLiteUtil.getUserId()需要给一个正确的domainName才行,得看数据库AaaLogin表中有什么值。
所以要找一个触发tostring的,给的版本是dubbo-2.7.14.jar,这个版本有一个任意tostring调用CVE-2021-43297 见。
需要加一个Upgrade等于hello的头,并且Connection要为Upgrade。
generateActivationToken为oauth2客户端生成激活码。
Petrus Viet在UrlRewriteFilter过滤器中找到了用RequestDispatcher绕过权限校验的点。
回顾 CVE-2020-9496 Apache Ofbiz XMLRPC RCE漏洞 漏洞由XmlRpcRequestParser解析xml时触发,由此我们用tabby来查询谁调用了XmlRpcRequestParser。
那么mysqldump可以拼接-w参数将内容写入文件,然后可以多次传递-r参数覆盖原有的-r文件路径值。
分析 这个洞用了两个点串起来成了一个rce,分别是xxe和一个readObject的点。
安装fmw12.2.1.3.0infrastructure.jar 下一步下一步就行。
补丁对比 HW-156875-Appliance-21.08.0.1/frontend-0.1.war中增加了一个HostHeaderFilter,匹配全路由。
前言 最近爆出来的bigip的CVE-2022-1388漏洞,涉及到一个知识点就是hop by hop,对这个东西没了解过,所以有了此文。
议题中讲到了jboss的4446端口反序列化rce,和一条jndi注入的gadget。
前言 注入内存马借助当前的webshell工具而言,冰蝎可以通过创建hashmap放入request、response、session替换pagecontext来解决。
看路由是在catalog-portal app下,cd到/opt/vmware/horizon/workspace/webapps/catalog-portal,然后把jar包拖出来解压之后,grep -irn "console.log"。
朋友叫帮忙打一个内存马进去,用的是cb链,无cc依赖,我寻思这不是有手就行吗,谁知道接下来遇到了无数的坑。
这个normalizeProperties()是对filter的属性进行解析,会将filter的配置属性传入normalize中,最后进入getValue执行SPEL表达式造成SPEL表达式注入。
先说原理,enableuserdefinedfunctionsthreads为false时会隐式禁用security-manager,导致可以通过udf执行java代码。
handleLogin函数处理登录时会进行判断,如果authenticationResult.isSuccess()登录成功会返回getToken()。
文件名形如/opt/metersphere/data/body/plugin/490fb08a-eae3-4414-a991-09f16f5b8f5etest.jar。
在spring-boot-actuator-logview 0.2.13版本之前,对文件路径参数过滤不严导致可以目录穿越读取任意文件。
CommVault这玩意是两种语言(.net和java)开发的,两掺挺有意思。
10对应的是实现了ExternalizableLite接口的类。继续跟进readExternalizableLite(),其使用loadClass进行加载类,不受weblogic黑名单限制。
分析 consolejndi.portal中存在JNDIBindingPageGeneral jndi绑定的东西。
RouterHandler类是路由核心类,用于处理路由的整体交互走向。QueryStringDecoder类是自实现的解码类,在qsd.path()中首次进行url解码。
本文将要讲解的是通过Java agent拦截修改关键类的字节码,最大程度实现一套代码通用注入内存shell。
使用Spring Cloud SnakeYAML的反序列化漏洞一键注册cmd shell和reGeorg。
UniversalExtractor任意调用get、is方法导致JNDI注入。
首先判断非空和安全模式以及typename长度来决定是否进行autotype。
getTransletInstance()中将恶意字节码加载进来并且new实例,在实例化时rce。
参考 Spring-Cloud-Config-Server-任意文件读取分析。
关于JEP290 JEP290是Java底层为了缓解反序列化攻击提出的一种解决方案,主要做了以下几件事。
写在文前 在研究weblogic、fastjson、shiro反序列化漏洞时,多次遇到了回显问题,本文将从以下几种角度出发来分别探讨反序列化回显的问题,也感谢各位师傅们的反序列化回显研究。
禁用/启用EL表达式 全局禁用EL表达式,web.xml中进入如下配置:。
分析 首先要知道shiro是一个用来做身份验证的框架,其原理是基于servlet的filter进行的。在web.xml中定义了ShiroFilter,作用范围是当前目录下所有的url。
fastjson是阿里巴巴的一个json库,频频爆RCE。本文分析fastjson至今的一些RCE漏洞。
前言 Java中所有的类都被编译为class文件来运行,在编译完class文件之后,类不能再被显示修改,而Javassist就是用来处理编译后的class文件,它可以用来修改方法或者新增方法,并且不需要深入了解字节码,还可以生成一个新的类对象。
反序列化从PriorityQueue开始,进入PriorityQueue的readObject()。
简介 XMLDecoder是java自带的以SAX方式解析xml的类,其在反序列化经过特殊构造的数据时可执行任意命令。在Weblogic中由于多个包wls-wast、wls9asyncresponse war、async使用了该类进行反序列化操作,出现了了多个RCE漏洞。
攻击JNDI 作者水平有限,本文仅讲述以下几种攻击JNDI的方法。 JNDI 配合 RMI Remote Object(codebase) JNDI Reference 配合 RMI JNDI Reference 配合 LDAP。
简述代理模式 代理是英文(Proxy)翻译过来的,在我们的实际生活中,最常见的代理模式应该是朋友圈中的微商了。在起初的时候,厂商直接对标顾客,没有微商在中间赚差价,结构就是如图。
漏洞描述 在3月6日,@steventseeley 在twitter上发布了关于 Zoho 企业产品 Zoho ManageEngine Desktop Central 中的反序列化远程代码执行漏洞。
2020.03.06 早上4点,看到了清水川崎师傅推送了Weblogic CVE-2020-2555的通告,在推特上搜了一波,发现有详细的分析文章,遂有此文。
关于JNDI JNDI(Java Naming and Directory Interface)是Java提供的Java 命名和目录接口。通过调用JNDI的API应用程序可以定位资源和其他程序对象。
在Weblogic中,默认启用了IIOP,而IIOP的传输也是通过序列化和反序列化的形式来进行的。在Weblogic中RMI-IIOP模型可以借用奇安信观星实验室的一张图来说明。
JRMP在前文中提到了在传输过程中也会自动序列化和反序列化,那么我们可以构造一个gadgets,通过T3协议让weblogic自动请求我们的JRMPListener,然后JRMPListener返回给他一个恶意的gadgets对象,weblogic自动反序列化恶意对象,达到rce。
RMI简介 Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程人员能够在网络环境中分布操作。
可以看到是HashMap类的问题,而触发反序列化的⽅法是 readObject ,直奔 HashMap 类的 readObject ⽅法:。
成功执行命令,断点同样下在InvokerTransformer的transform(),堆栈如下。
后来集成为一个补丁 p219845891036Generic ,补丁下载需要Oracle的metalink账号也就是付费客户才可以下载,p219845891036Generic 补丁我在网上没找到,只能退而求其次用两个补丁的方式了。
common-collections导致的反序列化RCE,闲着也是闲着,分析下。
Java中执行命令有很多姿势,但是有时候带有|, 等符号的命令没办法正常执行。为什么呢?
在我的上篇关于 Java反序列化 的文章中,简单提到了反序列化的入口(readObject)和反射,本文我们根据上文的基础来学习 ysoserial CommonsCollections5 的反序列化流程。
两周的Java实训结束了,学了一个servlet做接口,给前端提供数据支持,记下笔记,免得以后忘了。