用FOFA定位未授权访问漏洞

作者:小俊 分类: 渗透测试 发布于:2021-8-16 5:22 ė489次浏览 60条评论
一、前言
      很久以前就有一个想法,fofa通过目标ip和port来判断目标是否存活以及目标端口服务并反馈给用户,那我们是否可以根据fofa反馈的信息直接搜索未授权访问漏洞呢?今天又想起这件事来,于是便整理了下网上其他师傅总结的未授权漏洞,结合fofa共发现十个可以直接搜索未授权访问的资产。
      语法如下:

  • protocol="MongoDB" && banner="asserts"
  • protocol="MongoDB" && banner="asserts"
  • protocol="redis" && banner="redis_version"
  • app="MEMCACHED" && banner="STAT"
  • protocol="Zookeeper" && port="2181" && banner="version"
  • app="Elasticsearch" && port="9200" && body="name"
  • app="Kibana" && port="5601" && body="basic license"
  • protocol="docker" && port="2375" && banner="Version"
  • app="hadoop" && banner="/cluster"
  • protocol="dubbo" && banner="dubbo"
  • "Jupyter Notebook" && port="8888" && title="home" && status_code="200"

二、说明
2.1 MongoDB未授权访问
      刚安装完毕时,MongoDB都默认有一个admin数据库,此时admin数据库是空的,没有记录权限相关的信息!当admin.system.users一个用户都没有时,即使mongodb启动时添加了--auth参数,如果没有在admin数据库中添加用户,此时不进行任何认证还是可以做任何操作(不管是否是以--auth 参数启动),直到在admin.system.users中添加了一个用户。
     通过对多个MongoDB资产测试发现,当banner返回asserts时可能存在未授权访问漏洞,固可直接fofa搜索protocol="MongoDB" && banner="asserts",验证如下:
mongodb.png 
2.2 redis未授权访问
      redis端口对外开放并且没有配置认证选项,未授权用户可直接获取数据库中所有信息,造成严重的信息泄露。
      通过对多个redis资产测试发现,当banner返回redis_version时可能存在未授权访问漏洞,固可直接fofa搜索protocol="redis" && banner="redis_version",验证如下:
redis.png 
2.3 MEMCACHED 未授权访问
      Memcached 端口对外开放并且没有配置认证选项,未授权用户可直接获取数据库中所有信息,造成严重的信息泄露。
      通过对多个MEMCACHED资产测试发现,当banner返回STAT时可能存在未授权访问漏洞,固可直接fofa搜索app="MEMCACHED" && banner="STAT",验证如下:
MEMcached.png 
2.4 Zookeeper 未授权访问
        ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
        ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。在通常情况下,zookeeper允许未经授权的访问。
        通过对多个Zookeeper资产测试发现,当banner返回version时可能存在未授权访问漏洞,且通过指定默认端口2181可以让匹配范围更精确,固可直接fofa搜索protocol="Zookeeper" && port="2181" && banner="version",验证如下:
zooker.png 
2.5 Elasticsearch未授权访问
        ElasticSearch安装了 River 机制之后可以同步多种数据库数据(包括关系型的MySQL、MongoDB 等)。如果http://localhost:9200/cat/indices中indices包含了_river,则代表 Elasticsearch 已安装 River 机制。而通过泄露的http://localhost:9200/_rvier/_search URL地址,攻击者可以获取到敏感信息。通常情况下Elasticsearch 未对敏感信息进行过滤,导致任意用户可读取敏感信息。
        通过对多个Elasticsearch资产测试发现,当body存在name时可能存在未授权访问漏洞,且通过指定默认端口9200可以让匹配范围更精确,固可直接fofa搜索app="Elasticsearch" && port="9200" && body="name",验证如下:
ela.png 
2.6 Kibana未授权访问
        Kibana如果允许外网访问,没有做安全的登录认证,也会被外部随意访问查看所有的数据,造成少数据泄露。
        通过对多个Kibana资产测试发现,当body存在basic license时可能存在未授权访问漏洞,且通过指定默认端口5601可以让匹配范围更精确,固可直接fofa搜索app="Kibana" && port="5601" && body="basic license",验证如下:
kib.png 
2.7 docker 未授权访问
        Docker Remote API如配置不当可导致未授权访问,被攻击者恶意利用。攻击者无需认证即可访问到Docker数据,可能导致敏感信息泄露,黑客也可以删除Docker上的数据,直接访问宿主机上的敏感信息,或对敏感文件进行修改,最终完全控制服务器。
        通过对多个docker资产测试发现,当banner存在Version时可能存在未授权访问漏洞,且通过指定默认端口2375可以让匹配范围更精确,固可直接fofa搜索protocol="docker" && port="2375" && banner="Version",验证如下:
docker.png 
2.8 hadoop 未授权访问
        Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。在默认情况下,Hadoop允许任意用户访问管理接口。
        通过对多个hadoop资产测试发现,当banner存在/cluster时可能存在未授权访问漏洞,固可直接fofa搜索app="hadoop" && banner="/cluster",验证如下:
had.png 
2.9 dubbo未授权访问
        Dubbo是阿里巴巴公司开源的一个高性能优秀的 服务框架,使得应用可通过高性能的 RPC 实现服务的输 出和输入功能,可以和 Spring框架无缝集成。dubbo 因配置不当导致未授权访问漏洞。
        通过对多个dubbo资产测试发现,当banner存在dubbo时可能存在未授权访问漏洞,固可直接fofa搜索protocol="dubbo" && banner="dubbo",验证如下:
dubbo.png 
2.10 Jupyter Notebook未授权访问
        Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。如果管理员未为Jupyter Notebook配置密码,将导致未授权访问漏洞,游客可在其中创建一个console并执行任意Python代码和命令。
        通过对多个Jupyter Notebook资产测试发现,当title存在home时可能存在未授权访问漏洞,且通过指定默认端口8888可以让匹配范围更精确,固可直接fofa搜索"Jupyter Notebook" && port="8888" && title="home" && status_code="200",验证如下:
jup.png 
三、总结
        没有对所有资产进行测试,加上fofa搜集资产的时间差,所以可能会导致某些资产显示符和条件但却不存在漏洞。
        通过以上介绍可以发现,通过fofa定位的未授权访问漏洞都是端口存在特殊banner或http请求后body存在特殊标签的,而对于需要进行某些特殊路径访问,如spring未授权和jboss未授权等都不能直接定位到。
参考:
http://www.0xby.com/3174.html
https://blog.csdn.net/qq_29277155/article/details/108390891

本文出自 小俊博客,转载时请注明出处及相应链接。

0

发表评论

电子邮件地址不会被公开。必填项已用*标注


Ɣ回顶部