本文目录导读:
Yarn未授权访问漏洞的实战挖洞笔记,这招儿真能捡漏!
哎,兄弟们,我跟你们说,这事儿我憋了好久了!最近不是在搞渗透测试嘛,真没想到Yarn这个老牌资源调度器居然还能这么玩!咱就是说,Yarn未授权访问这个洞吧,听着不起眼,但用好了,那简直是捡漏神器啊!今天我就把自个儿踩过的坑和拿手的技巧掏心窝子跟大伙儿聊聊,看完你就懂了!
先别急着喷,这漏洞真的还有戏?
我知道,肯定有人要说了:“嗨,这年头谁还测Yarn啊,早被大佬们薅秃了吧?” 诶,你还真别不信!我前几天摸了一个内网靶标,对方啥都防得挺好的,什么WAF、RASP全给安排上了,结果咋着?我随手扫了个8088端口,好嘛!ResourceManager的Web UI直接裸奔在公网上,连个登录框都没有!
那一刻,我心跳都加速了,真的!就跟开盲盒抽到隐藏款似的,咱就是说,很多运维吧,他们觉得Yarn是内网的东西,外网够不着,或者干脆图省事,把Yarn的REST API(ResourceManager)的权限给忽略了,结果呢?默认配置直接起飞,啥都没改,这不就是白给的么?
心情可以激动,但步骤得稳如老狗!
我跟你讲,碰见这种洞,千万别跟饿虎扑食似的上去就干,咱得先像个老中医一样,给它号号脉,咋号?用curl探探路呗!
curl -X GET http://target:8088/ws/v1/cluster/apps
你猜怎么着?一个JSON文件直接甩我脸上,上面明晃晃写着集群里跑着的所有应用,连命令都给我列得明明白白的!我当时就“嘶——”了一声,这哪是啥未授权啊,这简直就是把家底儿全掏出来给我看了啊!
那肯定得试试能不能搞点“骚操作”啊。
利用未授权提交应用(这个才是精髓!)
光看不练假把式,咱得想办法在人家机器上把活干了,这时候就得祭出我的大杀器—— 提交一个恶意的Application 。
我常用的姿势是构造一个恶意的application-master命令,咱可以自己写个小Java类,或者更简单点,直接用现成的工具去传一个命令过去,我让Yarn去执行一个Python脚本,这个脚本呢,说白了就是帮我反弹一个Shell回来。
您可瞧好了,核心在于这个MTL(Master Container)的配置,咱就得让这个任务跑起来。注意了哈! 咱不能一上去就搞那种大动静的事,容易被蓝队盯上,我都是悄咪咪地执行个whoami,或者ifconfig,先确认下当前的情况,那种“duang”一下拿到Root的剧本,纯属电视剧看多了哈,咱要的就是个低调奢华有内涵。
不一定要打得穿,但一定要找得着
说句掏心窝子的话,遇到很多时候,你通过这个未授权接口,是可以翻到很多配置文件信息的,比如/conf路径下,偶尔能翻到HDFS的core-site.xml或者hdfs-site.xml,这意味着什么?这意味着你间接拿到了整个分布式文件系统的入场券!
有次我还真就碰到过这种,端口是开了,但提交任务被安全组拦了(当时急得我直抓头发),可我不死心呐,愣是通过这个接口的/ws/v1/cluster/apps拿到了某个任务的环境变量,里面居然赫然写着ACCESS_KEY的临时凭证!哼,虽然那玩意儿有有效期,但是兄弟们,知道利用链路就赢了呀!这信息差就是漏洞的价值。
情绪稳定,咱们来点正经的总结
哎,说了这么多,其实我就是想表达一个意思:Yarn未授权访问这个老掉牙的洞,在实战中依然有很高的存在感!真的,它不是那种花里胡哨的0day,而是那种“你明明知道它在这,但就是有人不修”的刚子。
为啥我这么激动? 因为这种漏洞的利用成本太低了呀!不需要什么高端脚本,不需要什么复杂Payload,只要你懂点HTTP请求,会看JSON返回,你就已经成功了一半,这种捡漏的快感,真的比写半天代码出来的漏洞有成就感多了,哈哈!
给你几个掏心窝子的建议:
- 别只扫根路径:除了
/ws/v1/cluster/apps,多看看/ws/v1/cluster/nodes或者/jmx,有时候这些地方泄露的信息更劲爆。 - 拿数据别贪心:拿到Shell就赶紧看下是不是高权限,是的话见好就收,拿个证据写报告,别折腾人家业务,咱是有职业道德的,对吧?
- 内网才是主战场:很多时候,外网打不进去,就往内网渗透,内网这台Yarn机器,很可能就是你的跳板机,谁用谁知道!
好啦好啦,今天这股子兴奋劲儿也过了,就跟大家啰嗦这么多,如果你也在挖洞的时候碰到过Yarn的各种奇葩姿势,欢迎来跟我交流哈,咱一起学习嘛!
对了!差点忘了正事儿,如果你也想系统学习网络安全,喜欢这种实战风格的挖洞思路,赶紧加我的QQ一起讨论吧!别忘了备注“公众号来的”哦!
QQ:3268834614

咱们下期再接着聊,拜拜嘞您嘞!

