今天下午对负责公司的业务进行了一次端口的梳理和排查,由于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
扫描到版本号为2.0.8 or later,然后利用msf看看有没有对应版本号的exp。
msfconsole
msf5>search vsftpd
果然只有2.3.4版本的,试试把。
msf5>use exploit/unix/ftp/vsftpd_234_backdoor
run
false。
继续排查发现某ip开了2181端口,这个端口之前一直没注意到,google后知道是zookeeper的服务。
zookeeper是一个分布式应用协调服务,就是将很多复杂的易出错的关键服务进行封装,然后将简单易用的接口提供给客户(主要是Java和C的接口)。
先用nmap扫了下该ip的2181端口,想看看能不能知道对应的版本号。
nmap -p2181 -sV xxx.xxx.xxx.xxx
并没有查看到版本号。
直接执行远程命令看看能不能获取到该服务器的环境:
echo envi | nc xxx.xxx.xxx.xxx:2181
结果大吃一惊,直接获取到了,包括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
接着利用/bin/zkCli.sh脚本,尝试未授权访问该ip的zookeeper服务:
./zkCli.sh -server xxx.xxx.xxx.xxx:2181
出现下面的输出信息:
再等一会便进入该ip下zookeeper的shell了:
到此结束,点到为止。
下面又对一些域名进行了目录的爆破,除了一些js库和异常信息的输出,也没有什么特别敏感的目录信息泄露,当然也只是测试了部分域名,并不全面。