Dubbo Telnet暴露在公网的危害
Dubbo
Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。(百度百科)
当Dubbo提供了面向接口的远程方法调用,会开放Telnet端口供管理员调试,而如果这些个Telnet端口是开放在公网当中,那么也就方便了攻击者
探查接口
dubbo推荐以zookeeper作为注册中心,于是我们在扫C段时发现开放2181,就值得对该IP进行全端口扫描
可直接通过nmap -sV 来识别dubbo telnet端口,或者在某个Web端口会存在者像如下这类的服务预览页面
其中在应用Applications栏中,有分别给不同角色提供的接口(providers、consumers)
查看其中一个应用的接口
可以看到有些接口是开放在公网中的(192开头的IP应该还在C段上),而172开头的IP明显是处于内网中的,为内网IP的可能有对应的公网可以找到
通过这里我们获取到了公网IP,以及对应的端口情况,使用Telnet进行连接
接着就是靠dubbo telnet提供的命令来进行敏感操作,列出几个用到的命令
ls
1 | ls [-l] [service] |
ls查看服务名或者服务中方法的详细信息
可以看到这里getBannerListByStatus()
中的参数我们可以直接提供,尝试利用
invoke
1 | invoke [service.]method(args) |
调用服务中的方法,注意的参数类型问题