白帽故事 · 2023年6月6日 0

30000美元赏金事件

背景介绍:

一位国外漏洞赏金猎人正在对一家金融公司进行着渗透测试,天气的炎热使他感到不安和厌倦,半天过去了,他依然一无所获,以下的故事分为两部分。

端口8081的秘密:

这位猎人开始在 Censys 和 Shodan 上挖掘目标 redacted.com 的每个 IP 地址。

挖掘了一段时间后,他看到了一个有趣的 IP 地址,上面有很多端口是开放的, 80、443、8081、8080等。

所以这个 IP 很可疑,尤其是在端口 8080 和 8081 上,从 Censys 的侧边栏可以发现这个 IP 地址与 MongoExpress 和 Jenkins 有关,但还是不确定这个IP是不是目标公司的,因此,在探索这些端口和所有内容之前,赏金猎人去了 https://www.sslshopper.com/ssl-checker.html 只是为了检查 IP 是否属于目标公司,幸运的是它属于目标公司,并且还与这家公司的许多其他在线资产相关联。

所以直接先访问8081端口:https://ipaddress:8081

这是一个暴露的 MONGOEXPRESS 面板,且没有任何身份验证。

因为可以自由访问这个面板,所以可以做任何想做的事情,包括:

  • 配置现有数据库
  • 创建新数据库
  • 删除现有的数据库
  • 其它更多操作

由于一些严重的配置错误,还能够访问以下路径:

http://ip:8081/db/config/

http://ip:8081/db/config/system.sessions

http://ip:8081/db/admin/system.users

http://ip:8081/db/admin/system.version

http://ip:8081/db/local/startup_log

最重要的是,猎人从 admin 数据库中找到了\’加盐\’形式的管理员密码,并且能够对其进行编辑。

所以该猎人立即向目标公司报告了漏洞,并将漏洞评级为严重级。

接下来是故事的第 2 部分,来看看一些真正的转折:

8080端口的宝藏:

正如第一部分解释的那样,猎人正在检查这个 Majestic IP 地址上的所有端口,8081端口的谜团也揭晓了,可能有人会问为什么先测试8081再测试8080,原因只有一个:8080是一个404错误页面。

如果你遇到过这样的 404 页面,请不要关闭它。因为对目录进行扫描时,不管状态代码是 200、404 还是 403,宝藏往往都会在这些页面内!

于是开始对 http://ip:8080/ 进行扫描,只发现了一个响应 200 的页面。

强烈建议将此路径添加到你的‘字典’中。

/jenkins/script

访问这个路径:http://ip:8080/jenkins/script

端口 8081 是 MongoExpress 的大门,但 8080 更特别,这是Jenkins敞开的大门,未经身份验证顺利进入了这个Jenkins面板,那里有很多路径和信息。

最重要的是,/script 的控制台也是开放的:

曾有人在 Twitter 写过关于 jenkins 实例上 RCE 的推文,因此在 Twitter 上进行搜索,并在 HackerOne 上阅读了之前有关 jenkins rce 的报告。

接下来要做的就是在/script 控制台上注入命令了!

"ls /".execute().text 
"ps aux".execute().text 
println "whoami".execute().text

这些命令将从内部产生正确的输出,例如,如果在脚本控制台上输入:


println “whoami”.execute().text

输出将是Jenkins。

是时候报告漏洞了,目标公司认真审核了这两个漏洞,奖励的赏金也是预期的2倍。

总结下来,一共3步:

1、使用简单的 Censys 搜索 services.software.product=jenkins

2、或者 shodan 查询:Set-Cookie: mongo-express= 200 OK

3、将 /jenkins/script 添加到‘字典’中

最主要的是:

永远不要相信404页面~

你学废了吗?