Jenkins漏洞利用实战:预认证用户信息泄露与CVE分析

本文详细分析了Jenkins中的预认证用户信息泄露漏洞(CVE-2017-1000395等),包括漏洞原理、影响版本(如Jenkins 2.137及更早版本)、PoC利用方式,并提供了实际测试中的注意事项和变通方案。

Jenkins - 探索新漏洞利用第一部分

Jenkins笔记参考:

下载旧版Jenkins WAR文件:

博客中提到的第一个漏洞是用户名枚举漏洞,影响版本:

  • Jenkins周版本至2.145(包括)
  • Jenkins LTS版本至2.138.1(包括)

预认证用户信息泄露

在测试Jenkins时,常见场景是希望执行暴力破解攻击,但不知道可以尝试哪些账户(有效凭证至少可以读取源代码,因此值得首先尝试)。在这种情况下,此漏洞非常有用!由于搜索功能缺乏权限检查,通过修改关键字从a到z,攻击者可以列出Jenkins上的所有用户!

PoC:

1
http://jenkins.local/securityRealm/user/admin/search/index?q=[keyword]

示例:

  • /securityRealm/user/admin/search/index?q=a
  • /securityRealm/user/admin/search/index?q=c

注意:尽管公告说影响版本包括2.138_1,但测试2.138时漏洞利用无效。因此,实际受影响版本为Jenkins <= 2.137。

如果Jenkins版本非常旧,上述漏洞利用应有效,同时还可利用https://nvd.nist.gov/vuln/detail/CVE-2017-1000395,通过类似查询获取电子邮件地址。

影响版本:

  • 至2.73.1(包括)
  • 至2.83(包括)

PoC:

1
http://jenkins.local/securityRealm/user/admin/api/xml

对于版本2.137,可以获取用户名/ID:

  • /securityRealm/user/cg/api/xml

标签: devops, jenkins, Pentesting

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计