一位国外漏洞赏金猎人正在对一家金融公司进行着渗透测试,天气的炎热使他感到不安和厌倦,半天过去了,他依然一无所获,以下的故事分为两部分。
端口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
所以该猎人立即向目标公司报告了漏洞,并将漏洞评级为严重级。
接下来是故事的第 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页面~
你学废了吗?
====正文结束====