码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 端口渗透篇:Java RMI 远程代码执行漏洞


    转载https://cloud.tencent.com/developer/article/2149191

    前言

    持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。

    0x01 漏洞描述

    - Java RMI 远程代码执行 -

    Java RMI服务是远程方法调用,是J2SE的一部分,能够让程序员开发出基于JAVA的分布式应用。一个RMI对象是一个远程Java对象,可以从另一个Java虚拟机上(甚至跨过网络)调用它的方法,可以像调用本地JAVA对象的方法一样调用远程对象的方法,使分布在不同的JVM中的对象的外表和行为都像本地对象一样。在RMI的通信过程中,默认使用序列化来完成所有的交互,如果该服务器Java RMI端口(默认端口1099)对公网开放,且使用了存在漏洞的Apache Commons Collections版本,就可以在该服务器上执行相关命令。

    0x02 漏洞等级

    威胁级别

    高危

    中危

    低危

    0x03 漏洞验证

    使用Nmap工具对目标服务器端口扫描,探测发现Java RMI服务端口号。

    # 指定默认端口探测命令
    nmap -vv -sS -sV -p 1099 目标IP地址
    # 全部端口探测命令
    nmap -vv -sS -sV -p 1-65535 目标IP地址
    
    • 1
    • 2
    • 3
    • 4
    • 1
    • 2
    • 3
    • 4

    探测结果

    PORT STATE SERVICE REASON VERSION
    1099/tcp open java-rmi syn-ack ttl 64 Java RMI复制

    输入目标地址端口,使用工具远程执行系统命令。

    • 工具链接: https://pan.baidu.com/s/1i4gatlzs9mAoCocyAmnHNw 提取码: 35cs

    上述利用工具不支持多命令拼接执行,可以在vps上设置好监听地址后,使用如下方法反弹shell获取服务器权限。

    0x04 漏洞修复

    1. 禁止在公网开放Java RMI服务的端口;
    2. 下载SerialKiller临时补丁,这个jar后放置于classpath,将应用代码中的java.io.ObjectInputStream替换为SerialKiller,之后配置让其能够允许或禁用一些存在问题的类,SerialKiller有Hot-Reload,Whitelisting,Blacklisting几个特性,控制了外部输入反序列化后的可信类型
    3. 在不影响业务的情况下,临时删除掉项目里的InvokerTransformer.class文件;
    4. 对WebLogic、Apache、JBoss等中间件进行升级。

    参考分析:https://www.freebuf.com/column/200796.html

  • 相关阅读:
    React报错之react component changing uncontrolled input
    华为数据中心机房集成解决方案
    前端页面左右布局,点击左div增加动画过渡效果
    基于VUE + Echarts 实现可视化数据大屏农村信息可视化
    计算机毕业设计Java酒店预订管理系统(源码+系统+mysql数据库+lw文档)
    TFT-LCD屏幕显示图片
    MFC中窗口居中显示
    Node.js学习
    解锁Spring Boot中的设计模式—05.策略模式:探索【策略模式】的奥秘与应用实践!
    【数据分析】Python:处理缺失值的常见方法
  • 原文地址:https://blog.csdn.net/weixin_50464560/article/details/128047278
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号