利用LXD实现Linux权限提升:一键本地root漏洞利用工具
项目简介
Linux Privilege Escalation via LXD
是一个开源项目,旨在揭示在Linux系统中,如何通过LXD(Linux Container)服务从普通用户权限提升至root权限。项目提供了两种完全自动化本地root权限的利用脚本,并附带详细的博客解释了其工作原理和过程。这个项目提醒我们,即使没有容器逃逸,LXD也可能成为低权限用户获取主机root访问权的安全风险。
技术剖析
项目中的两个脚本——lxd_rootv1.sh
和 lxd_rootv2.py
,各自采用了不同的攻击策略:
-
lxd_rootv1.sh
创建一个将主机根文件系统挂载到容器内的环境,使得低权限用户能够在容器内获得root权限,从而影响主机。 -
lxd_rootv2.py
更具创新性,它利用LXD的代理设备将主机的systemd私有UNIX套接字引入容器,然后回传到主机。由于这些代理设备拥有root权限,在通信过程中会传递它们的身份凭证,而非发起请求的低权限用户的凭证,借此创建临时systemd服务以修改/etc/sudoers
文件。
应用场景
对于任何运行LXD且非安全意识强烈的Linux环境,这个项目都提供了一个实际的威胁模型。特别是当多个用户共享一个系统,并被赋予了LXD组成员身份时,每个用户都可能利用此方法对主机进行权限提升。这对于日常运维、服务器管理或开发环境来说,是一个重要的警示。
项目特点
- 简单易用:只需要一个已存在的容器,然后在主机上执行相应的脚本即可尝试权限提升。
- 新颖的攻击手法:
lxd_rootv2.py
的独特利用方式展示了新的攻击思路。 - 风险提示:该项目不仅提供了漏洞利用方法,还强调了在LXD配置中添加用户到
lxd
组的潜在危险。 - 社区响应:Canonical公司已经更新了LXD文档,明确警告用户不应随意给予非root用户
lxd
组权限。
补救措施
目前,官方并没有发布针对这两种漏洞的修复方案。因此,使用LXD的用户应谨慎考虑将谁添加到lxd
组,尽量避免在不需要时使用sudo
命令与LXD API交互。对于多用户环境,建议采用分层环境隔离,每个人只在其自己的环境中具备较高的权限。
总的来说,虽然存在这样的安全隐患,但LXD仍然是一个强大的容器管理工具。了解这些风险并采取适当的安全措施是确保系统安全的关键。如果你正在使用LXD,那么这个项目将是你提高安全意识和实践防御策略的重要参考。
- CangjieCommunity为仓颉编程语言开发者打造活跃、开放、高质量的社区环境Markdown00
- redis-sdk仓颉语言实现的Redis客户端SDK。已适配仓颉0.53.4 Beta版本。接口设计兼容jedis接口语义,支持RESP2和RESP3协议,支持发布订阅模式,支持哨兵模式和集群模式。Cangjie032
- 每日精选项目🔥🔥 推荐每日行业内最新、增长最快的项目,快速了解行业最新热门项目动态~ 🔥🔥02
- qwerty-learner为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workersTSX022
- Yi-CoderYi Coder 编程模型,小而强大的编程助手HTML07
- advanced-javaAdvanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。JavaScript085
- taro开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/TypeScript09
- CommunityCangjie-TPC(Third Party Components)仓颉编程语言三方库社区资源汇总05
- Bbrew🍺 The missing package manager for macOS (or Linux)Ruby01
- byzer-langByzer(以前的 MLSQL):一种用于数据管道、分析和人工智能的低代码开源编程语言。Scala04