一.Jenkins
默认情况下 Jenkins⾯板中⽤户可以选择执⾏脚本界⾯来操作⼀些系统层命令,攻击者可通过未授权访问漏洞或者暴⼒破解⽤户密码等进⼊后台管理服务,通过脚本执⾏界⾯从⽽获取服务器权限。
漏洞复现
首先我们利用如下语句在fofa中搜索
port="8080" && app="JENKINS" && title=="Dashboard [Jenkins]"
找到一个页面中有Manage Jenkins的,往下滑会有一个Scritp Console
点开之后我们就可以在里面执行命令了,这里我们执行一个println "whoami" .execute().text,发现成功执行
如何修复
1. 升级版本。
2. 添加认证,设置强密码复杂度及账号锁定。
3. 禁⽌把Jenkins直接暴露在公⽹。
二.Jupyter NoteBook
Jupyter Notebook(此前被称为 IPython notebook)是⼀个交互式笔记本,⽀持运⾏ 40多种编程语⾔。如果管理员未为Jupyter Notebook配置密码,将导致未授权访问漏洞,游客可在其中创建⼀个console并执⾏任意Python代码和命令,默认端⼝:8888。
漏洞复现
同样的,我们在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端⼝设置认证等