日常刷网页的时候,无意中看到一个storm ui 的web页面,搜了一下好像是大数据的框架,顺便看到了aRe00t 师傅的文章《黑掉大数据之spark》蛮有意思的,spark,storm 都有一个很有意思的功能,可以远程提交代码,了解了一番,storm是有专门的安全设置,但是在默认配置情况,nimubs的6627端口是对外开放,若是该端口可任意访问,那我们就可以在任意地方给nimbus 提交代码,然后实现远程命令执行。
临时翻看了一些关于storm 的资料,若有错误,望大神们多多指导。下面是我对strom 实现远程命令执行的一些思路及本地实践。
>>>> >>>> 提前条件<<<< <<<<
nimbus 的6627端口可以访问。
>>>> >>>> 步骤<<<< <<<<
打包jar包
通过storm 客户端将jar包上传到nimbus
通过 web ui 观察命令执行情况
>>>> >>>> 执行命令代码<<<< <<
>>>> >>>> 上传jar 包<<<< <<<<
在storm ui上可以看到刚上传的Topology
稍等片刻就可以在storm ui 的日志里面看到命令执行的结果
>>>> >>>> 总结 <<<< <<<<
Storm 远程提交代码给开发人员提供便利的同时,但若部署时配置不当,不做访问限制,就很容易给集群带来风险。类似的安全问题还有redis、memcache等,很多都是因为该服务部署时缺少安全意识未作访问限制也没做权限限制,导致该服务可任意访问使用。那黑客们也就可以随意利用了。
本文转载自微信公众号“新浪安全中心”,原文作者:浪剑枫