目录

  1. 1. 前言
  2. 2. 漏洞范围
  3. 3. 概述
  4. 4. 原理
  5. 5. 实际题目
    1. 5.1. 法2

LOADING

第一次加载文章图片可能会花费较长时间

要不挂个梯子试试?(x

加载过慢请开启缓存 浏览器默认开启

CVE-2023-22809 提权漏洞学习

2023/5/21 渗透 CVE 提权
  |     |   总文章阅读量:

前言

做2023春秋杯春季赛时遇到的,发现是最新最热CVE,那就随手记之

「Leafzzz__」的参考文章

漏洞范围

sudo -V:1.8.0到1.9.12p1版本

概述

sudo使用用户提供的环境变量让用户选择他们所选择的编辑器。的内容其中一个变量扩展了传递给sudo_edit()函数的实际命令。

然而,后者依赖于--参数的存在来确定要编辑的文件列表。注入在一个已授权的环境变量中使用额外的--参数可以更改此列表并导致特权通过编辑具有RunAs用户权限的任何其他文件来升级。这个问题发生在sudoers之后。

原理

太长,暂时不总结

总之就是利用vim等文本编辑器,进行sudoedit来修改root系统中的敏感文件

在之前的环境中注入额外的双破折号时,这种行为会导致混乱用于查找编辑器的变量。

EDITOR='vim -- /path/to/extra/file'

使用这个值,命令行将被解析为:

vim -- /path/to/extra/file -- /path/from/policy

实际题目

2023春秋杯春季赛sudo

  1. sudo -l查看授权的命令列表

    发现只有一个sudoedit -- /etc/GAMELAB

  2. 同时一波尝试之后发现靶机的环境下只有nano一个编辑器

    那我们就直接执行payload

    EDITOR='nano -- /etc/passwd' sudoedit -- /etc/GAMELAB

    进入nano界面**(图片来自于csdn参考文章)**

    image-20230526235556837

  3. 修改用户名

    将第一行的root改成xiaonannan,就可以让xiaonannan访问/root目录下的/bin/bash从而执行root权限的命令

    image-20230526235816952

    Ctrl+O然后按回车保存,然后Ctrl+x就可以退出/etc/passwd的nano编辑界面,然后发现没有完全退出(当时本人也很疑惑),仔细看上面

    image-20230526235858706

    文件名变成了/tmp/GAMELAB,因为我们的payload是EDITOR='nano -- /etc/passwd' sudoedit -- /etc/GAMELAB,我们将环境变量设置成了/etc/passwd所以sudoedit策略会先执行这个编辑改文件的命令,然后再执行sudoedit /etc/GAMELAB

    这也证实了我们的想法,GAMELAB是个临时文件,然后我们再cat /etc/passwd一下

    image-20230527000143689

    可以看到,root的用户名已经变成了xiaonannan

  4. 切换用户获取flag

    su xiaonannan

    然后输入对应密码,之后直接cat /flag

image-20230527000331238

法2

利用shadow文件修改root的密码(这里root的密码被锁定所以只能修改),可以参考我之前那篇关于shadow文件的博客