jenkins CVE-2024-43044

漏洞分析报告

漏洞说明

Jenkins 是一种广泛使用的工具,用于自动执行构建、测试和部署软件等任务。它是许多组织开发流程的关键部分。如果攻击者获得 Jenkins 服务器的访问权限,他们可以造成严重破坏,例如窃取凭据、篡改代码,甚至破坏部署。通过访问 Jenkins,攻击者可以篡改软件管道,可能导致开发流程混乱并泄露敏感数据。

漏洞复现

jenkins CVE-2024-43044

漏洞需要一个secret key 这里复现的话 可以通过创建一个节点去获取。

jenkins CVE-2024-43044

漏洞分析

在fetchJar(URL):950, RemoteClassLoader$ClassLoaderProxy (hudson.remoting), RemoteClassLoader.java中,没有对传入的url做判断,会直接去读取内容导致了任意文件读取。

jenkins CVE-2024-43044

脚本这里通过爆破secret.key的位置,去盘点jenkins的路径。

后续会去读取参考文章的一系列配置文件(为了伪造cookie)

jenkins CVE-2024-43044

前面的流量都是通过文件读取的方式去获取值,然后生成一个对应的cookie,没有太多的特征。

(1)访问jenkins /tcpSlaveAgentListener/ 查看是否支持代理

(2)读取伪造cookie需要的数据

jenkins CVE-2024-43044

file:/var/jenkins_home/secret.keyfile:/var/jenkins_home/users/users.xmlfile:/var/jenkins_home/users/admin_9313578255646860931/config.xmlfile:/var/jenkins_home/secrets/master.keyfile:/var/jenkins_home/secret.keyfile:/var/jenkins_home/secrets/org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices.mac

后续利用cookie remember去伪造一个用户

jenkins CVE-2024-43044

这里为了获取Crumb(没有会失败),会去访问/crumbIssuer/api/json

jenkins CVE-2024-43044 jenkins CVE-2024-43044

后续通过执行println ‘123test123 判断是否成功

jenkins CVE-2024-43044

最终的命令执行还是通过scriptText接口的script参数导致的命令执行,可以执行groovy脚本。

jenkins CVE-2024-43044

jenkins CVE-2024-43044

这里我在复现的时候发现在读取response回复的时候,会一直卡着(一直没读取完,所以加了一个10行的判断)

jenkins CVE-2024-43044

最后,如果两个同时在尝试访问就会报错

jenkins CVE-2024-43044

原文始发于微信公众号(e0m安全屋):jenkins CVE-2024-43044

版权声明:admin 发表于 2024年9月3日 下午4:09。
转载请注明:jenkins CVE-2024-43044 | CTF导航

相关文章