实战之一直被忽略的2181端口(Zookeeper未授权访问)

今天下午对负责公司的业务进行了一次端口的梳理和排查,由于ip较多,两个多小时的时间仅排查了40+个ip,200+个端口。除了80 443等常见的之外,也存在一些敏感端口暴露在公网上:21、22、3306、2181等。
对于22ssh、3306mysql的处理,首先排查是否存在弱密码。用hydra爆破了一下,无果。试了下之前同样暴露在公网的mysql弱密码,好像也失效了。
对于21端口,之前接触过一次PCMan FTP的rce漏洞分析,不过自己并没有复现成功,所以直接忽略掉了。google了一下,发现21端口之前被爆出了vsftpd(ftp的一个版本类型)存在后门,攻击者可以通过后门直接获取root权限,利用的是msf的远程溢出。
不过好像影响的版本号为2.3.4,抱着侥幸的心理尝试了下:
先用nmap扫下该ip的21端口的详细信息:

nmap -sV -p21 xxx.xxx.xxx.xxx
image.png

扫描到版本号为2.0.8 or later,然后利用msf看看有没有对应版本号的exp。

msfconsole
msf5>search vsftpd
image.png

果然只有2.3.4版本的,试试把。

msf5>use exploit/unix/ftp/vsftpd_234_backdoor
run
image.png

false。
继续排查发现某ip开了2181端口,这个端口之前一直没注意到,google后知道是zookeeper的服务。
zookeeper是一个分布式应用协调服务,就是将很多复杂的易出错的关键服务进行封装,然后将简单易用的接口提供给客户(主要是Java和C的接口)。
先用nmap扫了下该ip的2181端口,想看看能不能知道对应的版本号。

nmap -p2181 -sV xxx.xxx.xxx.xxx
image.png

并没有查看到版本号。
直接执行远程命令看看能不能获取到该服务器的环境:

echo envi | nc xxx.xxx.xxx.xxx:2181
image.png

结果大吃一惊,直接获取到了,包括zookeeper的版本号,创建时间,host_name,系统名称以及java环境等等。
知道了zookeeper对应的版本号后,尝试检测是否存在未授权访问。
并没有找到对应版本号的漏洞复现,不过有类似的,复现过程如下:
首先先下载下zookeeper的组件(里面有需要用到的sh脚本)

wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz

虽然跟这台服务器上的zookeeper版本不一致,但是也没有找到完全对应的,所以选了个版本最近的安装包。
解压:

tar -zxvf apache-zookeepre-3.5.8-bin.tar.gz

进入到配置文件:

cd apache-zookeepre-3.5.8-bin/conf

以防万一,先备份下

cp zoo_sample.cfg zoo.cfg

接着在zoo_sample.cfg文档里修改配置:

加入:
dataLogDir=/tmp/zookeeper/logs   
clientPort=2181
autopurge.purgeInterval=24
admin.serverPort=2821
server.1=zk01:2888:3888
server.2=zk02:2888:3888
server.3=zk03:2888:3888
image.png

接着利用/bin/zkCli.sh脚本,尝试未授权访问该ip的zookeeper服务:

./zkCli.sh -server xxx.xxx.xxx.xxx:2181

出现下面的输出信息:


image.png

再等一会便进入该ip下zookeeper的shell了:


image.png

到此结束,点到为止。

下面又对一些域名进行了目录的爆破,除了一些js库和异常信息的输出,也没有什么特别敏感的目录信息泄露,当然也只是测试了部分域名,并不全面。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容