vlambda博客
学习文章列表

漏洞挖掘 | Jenkins到命令执行

漏洞挖掘 | Jenkins到命令执行


Jenkins 是一个开源自动化服务器... 作为一个可扩展的自动化服务器,Jenkins 可以用作简单的 CI 服务器,或者变成任何项目的持续交付中心


这篇特别的文章是关于我如何能够在私有漏洞赏金程序中找到可公开访问的Jenkin实例,并利用它来执行远程代码执行(RCE)。

每一次黑客攻击,每一次渗透测试都从侦察(信息收集)开始,因此这-查找子域,开放端口/服务,公共服务器IP是其中的一部分。为了找到公共服务器IP,我通常依赖的工具之一是https://censys.io/。


 
   
   
 
Censys具有查找IP地址并收集有关它们的信息的强大能力。Censys还通过分析SSL证书,打开的端口等来帮助发现内部工具和资产。br
当我在同一目标网站上搜索目标域名时(由于它是一个私有程序,所以将其称为re
dacted.com,因此无法透露名称),我发现一个实例在8080端口上运行—

漏洞挖掘 | Jenkins到命令执行

Censys结果


可以看出,这里的服务器名称是Jetty:8080,这让我瞥见它可能正在运行Jenkins(通常是因为它运行在Jetty的标准端口80/443/8080/8443上)-什么是Jenkins-它用作CI连续集成工具,用于自动化企业中项目/应用程序的部署。我进一步检查了IP(XXXX)以获得更多详细信息,确实是詹金斯在那儿运行-
漏洞挖掘 | Jenkins到命令执行


我打开了它,并且可以公开访问它,最糟糕的是它没有设置任何身份验证。

漏洞挖掘 | Jenkins到命令执行

如您所见,我能够访问Jenkins仪表板,而访问Jenkins仪表板本身是一个安全

问题。攻击者可以访问AWS Access密钥,敏感API令牌,私钥,服务器的pem文


这可能造成多大的灾难,请阅读本文!在与CI团队紧密合作之后,我意识到与Jenkins相关的许多内容,例如希望查

看所有有权访问Jenkins Instance / asynchPeople /的人员


 
   
   
 
漏洞挖掘 | Jenkins到命令执行


/ credentials / -它允许访问查看凭据ID,名称。/ configure / —这是Jenkins的配置管理仪表板。/ configureSecurity / —安全性设置的配置管理。/ script / —运行命令的脚本控制台。br


现在是时候在这里检查它们了,我没有想太多,而是试图查看我是否具有足够的权限来访问/ script /以及我所有的运气,我已经拥有了—

 
   
   
 
漏洞挖掘 | Jenkins到命令执行 / script /可访问,导致远程执行代码(本地服务器映像)


可以看出,我尝试阅读“ / etc / passwd”,并且能够阅读。同样,我可以写任何文件,上传文件等。


由于Jenkins还具有连接Git插件的功能,因此可以从控制台本身运行Git命令。


 
   
   
 


因此,可公开访问的Jenkins控制台使我也可以查看和修改应用程序的生产代码,这使它更加危险!

当公司错误地使Jenkins服务器可以通过Internet访问并且没有为其设置适当的身份验证(认为它是内部应用程序)时,这一切都会发生。