Linux 2.6.* 内核Capability LSM模块进程特权信任状本地权限提升漏洞

【信息科学与工程学】【安全领域】第八十三篇 云安全解决方案02 企业中“搞人”与“搞事情”常见问题的分析框架。我将选取4个典型场景,每个场景都从实际管理现象出发,逐步推导出数学模型、参数设定及关联知识。 阅读详情
Linux内核Capability LSM模块进程特权信任状本地权限提升漏洞 (Linux,缺陷)
 
涉及程序:
Linux内核程序
 
描述:
Linux内核Capability LSM模块进程特权信任状本地权限提升漏洞
 
详细:
Linux Kernel是开放源代码操作系统Linux的内核。

Linux Kernel在处理Capability模块实现时存在问题,本地攻击者可以利用这个漏洞提升权限。

当特权操作由Capability LSM 模块控制时,系统基于进程信任状(creds)来仲裁特权操作。当Capability未被编译进内核时,内核使用默认的安全模块(security/dummy.c)仲裁特权操作,机制非常简单,仅仅检查进程euid、fsuid(进行文件系统相关特权操作时)是否为0。在这种情况下,dummy模块根本不关心进程的信任状,每个进程的信任状都拷贝其父进程的信任状。追根溯源,每个进程的信任状无论进程用户是否为超级用户,最终都拷贝Init进程的信任状,信任状中包含有超级用户进程的所有权能。在根据用户ID进行特权判断情况下,此错误未被激发。但在插入Capability模块后,特权机制转为根据进程信任状进行判断,而此前存在的任何进程的信任状都与Init进程一致,导致这些进程都具有超级用户root的特权。此错误的本质是装载Capability模块时没有对已有进程的信任状按Capability机制的要求进行重新计算。试验表明,此错误出现在2.6.* Linux内核中。

<*来源:liangbin (liangbin@venustech.com.cn)

链接:http://marc.theaimsgroup.com/?l=bugtraq&m=110384535113035&w=2
*>

受影响系统:
Linux kernel 2.6.9
Linux kernel 2.6.8
Linux kernel 2.6.7
Linux kernel 2.6.6
Linux kernel 2.6.5
Linux kernel 2.6.4
Linux kernel 2.6.3
Linux kernel 2.6.2
Linux kernel 2.6.1
Linux kernel 2.6
 
攻击方法:
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

当Capability模块未被编译进内核时,(如果已经编译进内核,须disable相应编译选项后重新编译内核)。在装载Capability模块前,以普通用户身份允许一个vim编辑器,在vim种输入命令:

:r /etc/shadow

vim 将回应 “can't open file /etc/shadow”,这个访问root文件操作的操作被拒绝。
不要终结vim,转到其它控制台以root身份登录,插入Capability模块:

#modprobe capability

在模块被转载后,回到vim中再次尝试打开shadow文件,将发现能够以普通用户读写并且保存(w!)shadow文件!根本的原因是vim进程的信任状中包含了权能CAP_DAC_OVERRIDE和CAP_DAC_READ_SEARCH,因而能够进行超越访问控制策略的特权操作。

使用以下命令可查看vim的信任状:

$cat /proc/2454/status         (2454 是vim进程的pid)

Name: vim
State: S (sleeping)
SleepAVG: 91%
Tgid: 2454
Pid: 2454
PPid: 1552
TracerPid: 0
Uid: 500 500 500 500
Gid: 500 500 500 500
FDSize: 256
Groups: 500
VmSize: 9356 kB
VmLck: 0 kB
VmRSS: 2728 kB
VmData: 856 kB
VmStk: 16 kB
VmExe: 1676 kB
VmLib: 3256 kB
Threads: 1
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 8000000000003000
SigCgt: 00000000ef824eff
CapInh: 0000000000000000
CapPrm: 00000000ffffffff
CapEff: 00000000fffffeff

最后3行即是vim的信任状,可以看到它具有除了CAP_SETPCAP外的所有Capability权能。
以上测试在 2.6.* 和2.5.72-lsm1中通过。

 
解决方案:
临时解决方法:

如果您不能立刻安装补丁或者升级,CNNS建议您采取以下措施以降低威胁:

* 第三方补丁如下:

在 security/capability.c中加入以下代码
static void recompute_capability_creds(struct task_struct *task)
{
     if(task->pid <= 1)
           return;


     task_lock(task);
     task->keep_capabilities = 0;
      
     if ((task->uid && task->euid && task->suid) && !task->keep_capabilities)
           cap_clear (task->cap_permitted);
     else
           task->cap_permitted = CAP_INIT_EFF_SET;



     if (task->euid != 0){
           cap_clear (task->cap_effective);
     }
     else{
           task->cap_effective = CAP_INIT_EFF_SET;
     }
      
     if(task->fsuid)
           task->cap_effective &= ~CAP_FS_MASK;
     else
           task->cap_effective |= CAP_FS_MASK;
      
     task_unlock(task);
      
     return;
}

并且在已有capability_init 函数在其返回前加入以下代码:
  
   struct task_struct *task;

     read_lock(&tasklist_lock);
     for_each_process(task){
           recompute_capability_creds(task);
     }
     read_unlock(&tasklist_lock);
      
     return 0;

厂商补丁:

Linux
-----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.kernel.org/
STM32 Proteu直流电机正反转控制系统限位开关-0035 硬件组成:STM32F103C6单片机 +L298N电机控制电路+直流电机+3个按键(正转、反转、停止)+LED指示灯(正转、反转、停止)+限位开关(正限位 反限位) 1.通过3个按键(正转、反转、停止)控制电机的正转、反转、停止。 2.有3个LED指示灯,正转时正转指示灯亮。反转停止对应反转停止指示灯亮。 3.有自动正转反转停止功能,正转时当正限位按键按下时说明正转到最大距离。此时自动停止。反转一样。 阅读详情

相关推荐

概率论—期末复习速成笔记(自用)

概率论期末复习

a200327的博客 2万+

Linux必备知识——开发必备(实时更新)

tail -f 文件

weixin_43397580的博客 368

我用 AI Agent 全自动跑 COMSOL 仿真:从建模到后处理,踩了 10+ 个深坑

本文探讨了利用AI通过COMSOL Java API实现AI芯片液冷冷板全流程自动化仿真的实践。针对700W高功耗AI芯片的散热需求,构建了包含4颗Chiplet和微通道冷板的三维液冷模型。通过严格设计的Prompt工程,AI Agent成功完成了从几何建模到结果验证的全过程,最终实现了芯片最高温度54°C的良好散热效果。文章重点分享了10个关键问题的解决经验,包括流体连通性验证、网格顺序控制、离散阶数选择、收敛判据优化等,并建立了包含流场/热场/网格独立性的三重验证体系。实践表明,AI可高效处理重复性工作

sjjsjjsjjsjjsjj的博客 972

Linux安全体系的文件权限管理

<br /><br />自主访问机制(Discretionary Access Control,DAC) 指对象(比如程序、文件或进程等)的的拥有者可以任意的修改或授予此对象相应的权限。Linux的UGO(User、Group、Other)和ACL(Access Control List,访问控制列表)权限管理方式就是典型的自主访问机制。<br />Linux支持UGO和ACL权限管理方式,UGO将权限位信息存储在节点的权限中,ACL将权限位信息存储在节点的扩展属性中。不同的文件系统权限位的存储和处理方式不

neverforgetZYP的专栏 7021

Stable-Baselines3性能优化:多环境训练对比指南(DummyVecEnv vs SubprocVecEnv)

本文深入对比了Stable-Baselines3中DummyVecEnv与SubprocVecEnv两种向量化环境的性能差异与应用场景。DummyVecEnv适用于轻量级、步进快的环境,调试友好且开销低;而SubprocVecEnv则通过真正的多进程并行,能显著加速计算密集型环境的训练。文章通过基准测试与决策树,指导开发者根据环境计算成本、CPU核心数等关键因素做出最优选择,以实现训练效率最大化。

weixin_29063979的博客 147

解密网页视频Blob链接:从防盗链到流媒体分片技术

本文深入解析了网页视频中Blob链接的工作原理,揭示了其作为现代视频防盗链与流媒体分片技术核心的本质。文章详细阐述了Blob对象与Media Source API如何协同工作,将视频数据分片传输,并结合HTML5的video元素实现安全、流畅的播放体验,有效提升了资源保护能力。

c7d8e的博客 317

Linux能力机制

Linux能力机制早期linux上信任状模型非常简单,就是"超级用户对普通用户"模型。普通用户的很多操作需要root权限,这通过setuid实现。如果程序编写不好,就可能...

Linux知识积累 3495

Python+Seaborn可视化:双因素方差分析结果这样呈现更专业

本文详细介绍了如何利用Python中的Seaborn和statsmodels库,专业地执行并可视化双因素方差分析结果。通过模拟实验数据,演示了从模型构建、统计检验(包括交互作用分析)到诊断验证的全流程。重点展示了如何使用Seaborn绘制交互效应图、组合分布图及热图,将复杂的统计结果转化为直观、富有洞察力的可视化图表,助力科研论文与商业报告的专业呈现。

weixin_29274969的博客 137

Linux 0号进程的建立

目录进程的内核表示进程0的创建进程0的运行 0号进程在内核中是一个比较特殊的进程,因为它是静态创建的,不是通过do_fork()创建的。所以从0号进程出发有助于理解一个进程的创建需要为它准备好哪些条件。 进程的内核表示 进程可以简单理解为Linux操作系统中的一个运行实体,在内核中用数据结构task_struct表示,这个结构体表示了进程运行时所需要的所有信息,所以这是内核中较为复杂的一个结构体,基于我们此篇文章所需要表达的知识,我们重点介绍下该结构体的成员thread_info,这个成员所分配的内存空间与

wu670431的博客 1032

基于PCL、Open3d、Easy3d 、VTK等常见开源库的QT开发

PCL+QT开发

阁楼 2万+

VCAST创建单元测试工程

选择工作目录,后面创建胡UT工程将会生成到这个目录。

qq_42851449的博客 2482

Linux 权能综述

为了执行权限检查,传统的 UNIX 实现区分两种类型的进程:特权进程(其有效用户 ID 为0,称为超级用户或 root),和非特权用户(其有效 UID 非0)。特权进程绕过所有的内核权限检查,而非特权进程受基于进程的认证信息(通常是:有效 UID,有效 GID,和补充组列表)的完整权限检查的支配。 自内核 2.2 版本开始,Linux 将传统上与超级用户关联的特权分为几个单元,称为 capabil

tq08g2z的专栏 3275

华为OD技术面真题 - JAVA开发 - 1

汇总华为OD技术面八股JAVA八股,高频技术真题并提供详细解答。

qq_45776114的博客 1201

[AD_LAB-04003] Linux 2.6.* 内核Capability LSM模块进程特

[安全通告]通告:[AD_LAB-04003] Linux 2.6.* 内核Capability LSM模块进程特权信任状本地权限提升漏洞分类:设计错误日期:12/20/2004CVE编号:NO受威胁的系统:    Linux kernel 2.6.*未受威胁的系统:1.漏洞描述当POSIX权能(Capability)LSM未被编译进内核时,在插入Capability模块(commoncap.ko

陈巍@人生态度 1184

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

容器的“信任幻觉”:深入解析容器逃逸风险与纵深防御

容器技术(如Docker)依赖共享内核实现隔离,但内核漏洞或配置错误可能导致容器逃逸。本文剖析四大攻击向量:内核漏洞利用、不安全的内核子系统交互(如CVE-2022-0492)、特权容器和危险挂载,并提出纵深防御方案:1)无根容器(Rootless)降低逃逸危害;2)AppArmor/SELinux限制容器行为;3)Seccomp过滤危险系统调用;4)Capabilities剥离非必要权限。通过多层防护,平衡容器化敏捷性与安全性。

专注于网络安全攻防技术与安全运营(SecOps)实践。 747

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

linux lsm实现进程白名单,linux安全模块学习之LSM的介绍实现

原标题:linux安全模块学习之LSM的介绍实现文章来自公众号:睿江云计算相关背景介绍近年来Linux系统由于其出色的性能和稳定性,开放源代码特性带来的灵活性和可扩展性,以及较低廉的成本,而受到计算机工业界的广泛关注和应用。但在安全性方面,Linux内核只提供了经典的UNIX自主访问控制(root用户,用户ID,模式位安全机制),以及部分的支持了POSIX.1e标准草案中的capabilities...

weixin_33421411的博客 906

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[转载] Linux的capability深入分析

[转载] Linux的capability深入分析 一)概述: 1)从2.1版开始,Linux内核有了能力(capability)的概念,即它打破了UNIX/LINUX操作系统中超级用户/普通用户的概念,由普通用户也可以做只有超级用户可以完成的工作. 2)capability可以作用在进程上(受限),也可以作用在程序文件上,它与sudo不同,sudo只针对用户/程序/文件的概

a172742451的专栏 3028

linux系统利用可执行文件的Capabilities实现权限提升

一、操作目的和应用场景 Capabilities机制是在Linux内核2.2之后引入的,原理很简单,就是将之前与超级用户root(UID=0)关联的特权细分为不同的功能组,Capabilites作为线程(Linux并不真正区分进程和线程)的属性存在,每个功能组都可以独立启用和禁用。其本质上就是将内核调用分门别类,具有相似功能的内核调用被分到同一组中。 这样一来,权限检查的过程就变成了:在执行特权操作时,如果线程的有效身份不是root,就去检查其是否具有该特权操作所对应的capabilities,并以此为

whatday的专栏 3552

Linux学习笔记 - 程序的执行(一)

进程用来表示正在运行的一组程序竟争系统资源的行为。程序和进程之间的联系,表现在如何在程序文件的内容上建立起进程执行上下文。除了把一组指令装入内存并让CPU执行外,内核还须灵活处理以下几方面的问题:  不同的可执行文件格式。 共享库:很多可执行文件并不包含执行程序所需的所有代码,而是期望内核在运行时从共享库中加载函数。 执行上下文的其他信息:这包括程序员熟悉的命令行参数与环境变量。

cangel1988的专栏 1945

Linux安全模块(LSM)简介

Linux安全模块(LSM)简介 2009-07-11 11:36中国IT实验室佚名 关键字:Linux技巧   Linux安全模块(LSM)是Linux内核的一个轻量级通用访问控制框架。本文介绍Linux安全模块(LSM)的相关背景,设计思想,实现方法;并说明如何使用Linux安全模块(LSM)来增强Linux系统的...

weixin_33896069的博客 794

Linux的capability深入分析

                                  Linux的capability深入分析 from:https://www.cnblogs.com/iamfy/archive/2012/09/20/2694977.html 一)概述: 1)从2.1版开始,Linux内核有了能力(capability)的概念,即它打破了UNIX/LINUX操作系统中超级用户/普通用户的概念...

ConceptCon 4196

debian 安装vsftpd

----------------------------------------------------------------------------------------------------------- 虚拟用户登录(使用db4.8数据库文件)  ------------------------------------------------------------------

roy9494的专栏 1330

linux2.6.36内核配置笔记

1、解压飞凌自己的内核linux2.6.36到/home/ok6410中: root@ubuntu:/mnt/hgfs/FORLINX_share/OK6410/Linux-2.6.36# tar zxvf FORLINX_linux-2.6.36.2.tar.gz -C /home/ok6410/ 2、在/home/ok6410/linux-2.6.36.2-v1.05中,查看配置文件ls

Sun_Rise2011的专栏 2235

selinux 学习笔记一(LSM在kernel中的实现)

LSM(linux security module)作为一个单独模块,通过在kernel编译过程中的编译flag:CONFIG_SECURITY 控制是否启用该模块中定义的安全相关的功能。具体配置信息见:kernel/linux-4.9/security/Kconfig 当在编译阶段打开该配置开关,kernel中的用于管理各个进程的task_struct对象会增加一个安全相关的引用。如下所示: k...

weixin_34273046的博客 3092

linux capability 权限控制

http://www.ibm.com/developerworks/library/l-posixcap.html Some programs need to perform privileged operations on behalf of an unprivileged user. For instance, the passwd program writes to the ver

xuguokun1986的博客 3172
上一篇: Debian Woody 3.0安装使用
下一篇: 无聊死了~~~完整的a2c.c
bmsdr
博客等级 码龄22年 11粉丝 65原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值