Jenkins 是一个开源自动化服务器... 作为一个可扩展的自动化服务器,Jenkins 可以用作简单的 CI 服务器,或者变成任何项目的持续交付中心
Censys具有查找IP地址并收集有关它们的信息的强大能力。Censys还通过分析SSL证书,打开的端口等来帮助发现内部工具和资产。br
当我在同一目标网站上搜索目标域名时(由于它是一个私有程序,所以将其称为re dacted.com,因此无法透露名称),我发现一个实例在8080端口上运行— Censys结果
可以看出,这里的服务器名称是Jetty:8080,这让我瞥见它可能正在运行Jenkins(通常是因为它运行在Jetty的标准端口80/443/8080/8443上)-什么是Jenkins-它用作CI连续集成工具,用于自动化企业中项目/应用程序的部署。我进一步检查了IP(XXXX)以获得更多详细信息,确实是詹金斯在那儿运行-
我打开了它,并且可以公开访问它,最糟糕的是它没有设置任何身份验证。 如您所见,我能够访问Jenkins仪表板,而访问Jenkins仪表板本身是一个安全
问题。攻击者可以访问AWS Access密钥,敏感API令牌,私钥,服务器的pem文
件,IP地址,用户名和电子邮件地址等。
这可能造成多大的灾难,请阅读本文!在与CI团队紧密合作之后,我意识到与Jenkins相关的许多内容,例如希望查
看所有有权访问Jenkins Instance / asynchPeople /的人员
/ credentials / -它允许访问查看凭据ID,名称。/ configure / —这是Jenkins的配置管理仪表板。/ configureSecurity / —安全性设置的配置管理。/ script / —运行命令的脚本控制台。br
现在是时候在这里检查它们了,我没有想太多,而是试图查看我是否具有足够的权限来访问/ script /以及我所有的运气,我已经拥有了— / script /可访问,导致远程执行代码(本地服务器映像)
可以看出,我尝试阅读“ / etc / passwd”,并且能够阅读。同样,我可以写任何文件,上传文件等。
由于Jenkins还具有连接Git插件的功能,因此可以从控制台本身运行Git命令。
因此,可公开访问的Jenkins控制台使我也可以查看和修改应用程序的生产代码,这使它更加危险! 当公司错误地使Jenkins服务器可以通过Internet访问并且没有为其设置适当的身份验证(认为它是内部应用程序)时,这一切都会发生。
本文转自:学神来啦
推荐阅读
学习更多技术,关注我:
觉得文章不错给点个‘再看’吧
原文始发于微信公众号(编码安全研究):漏洞挖掘 | Jenkins到命令执行
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论