Linux 曝出 Sudo 提权漏洞 受限用户亦可运行 root 命令

VSole2019-11-03 22:12:02

作为 Linux 中最常使用的重要实用程序之一,Sudo 几乎安装在每一款 UNIX 和 Linux 发行版上,以便用户调用和实施核心命令。然而近期曝出的一个提权漏洞,却直指 sudo 的一个安全策略隐患 —— 即便配置中明确不允许 root 用户访问,该漏洞仍可允许恶意用户或程序,在目标 Linux 系统上以 root 用户身份执行任意命令。

据悉,Sudo 特指“超级用户”。作为一个系统命令,其允许用户以特殊权限来运行程序或命令,而无需切换使用环境(通常以 root 用户身份运行命令)。 默认情况下,在大多数 Linux 发行版中(如屏幕快照所示),/ etc / sudoers 的 RunAs 规范文件中的 ALL 关键字,允许 admin 或 sudo 分组中的所有用户,以系统上任何有效用户的身份运行任何命令。 然而由于特权分离是 Linux 中最基本的安全范例之一,因此管理员可以配置 sudoers 文件,来定义哪些用户可以运行哪些命令。

这样一来,基板限制了用户以 root 身份运行特定或任何命令,该漏洞也可允许用户绕过此安全策略,并完全控制系统。 Sudo 开发者称: “只要 Runas 规范明确禁止 root 访问、首先列出 ALL 关键字,具有足够 sudo 权限的用户就可以使用它来以 root 身份运行命令。” 据悉,该漏洞由苹果信息安全部门的 Joe Vennix 追踪发现(CVE-2019-14287)。且想要利用这个 bug,只需 Sudo User ID -1 或 4294967295 。

这是因为将用户 ID 转换为用户名的函数,会将 -1(或无效等效的 4294967295)误认为 0,而这正好是 root 用户 User ID 。 此外,由于通过 -u 选项指定的 User ID 在密码数据库中不存在,因此不会运行任何 PAM 会话模块。 综上所述,该漏洞影响最新版本 1.8.28 之前的所有 Sudo 版本。庆幸的是,几个小时前,各大 Linux 发行版都已经在向用户推送新版本了。 来源:开源中国

sudoroot权限
本作品采用《CC 协议》,转载必须注明作者和本文链接
sudo 命令只允许使用提升的权限运行单个命令,而 su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录。不过有时间限制,Ubuntu默认为一次时长15分钟。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。想退回普通账户时可以执行“exit”或“logout” 。要求执行该命令的用户必须在sudoers中才可以。
须安装AFL++,可以使用官方docker镜像;如果已经在本地安装,也可直接使用。测试的场景为,非特权用户输入恶意构造程序执行参数,引起sudo程序崩溃。sudo程序由root用户和其他用户启动的表现是不同的。sudo的所有权是root,但却是由普通用户调用的。argv作为一个指针数组的指针,该指针数组中最后一个指针应为0,其余的每一项为一个字符串指针。注意到afl_init_argv函数中,存在对0x02的判断,编写这个文件的作者解释到,以单独一个0x02作为参数表
vulnhub之Five86-1的实践
2023-10-16 09:27:53
vulnhub之Five86-1的实践
名称:(家庭)难度:中等创作者:cromiphi发布日期:2021-04-30目标:user.txt和falg.txt,root权限搭建靶机下载完Family.ova后,使用Oracle VM VirtualBox导入即可导入时注意!!
今天实践的是vulnhub的Corrosion2镜像, 下载地址,https://download.vulnhub.com/corrosion/Corrosion2.ova, 用workstation导入成功,能扫描到地址, sudo netdiscover -r 192.168.137.0/24,
在这个层中,来自upper层的更改会覆盖lower层的相应文件。对于同名文件upper层中的文件优先级更高。一个Overlay文件系统可以有一个或多个lower层。此层拥有写时复制特性,当想要修改lower层不可修改的fileC时,先拷贝副本到upper层,修改后呈现到merged视图。OverlayFS 操作流程挂载OverlayFS文件系统mkdir lower upper work merged. sudo mount -t overlay -o lowerdir=lower,upperdir=upper,workdir=work overlay merged # 挂载OverlayFS
在过去的远程代码调试场景中,需要调试远程服务器上的Lua代码,需要登录服务器,进行代码的编辑。或者将服务器上的代码进行下载,然后编辑后再上传到服务器上。 有了VSCode及SSH远程访问插件,Lua远程Debug插件后,远程调试服务器上的Lua代码变的简单了,只要打开VSC点击要链接访问的服务器,通的VSC的SSH插件访问,省去的了Lua源文件下载、编辑、上传的过程,并且Debug的操作一并可
另外需要说明一下,原文只是一个系列(https://sploitfun.wordpress.com/2015/06/26/linux-x86-exploit-development-tutorial-series/)中的一篇文章:
环境变量里,如果直接输入?不管用的话,就用绝对路径名的方式:/usr/sbin/useradd?。
之前一直对 su 和 sudo 这两个命令犯迷糊,最近专门搜了这方面的资料,总算是把两者的关系以及用法搞清楚
VSole
网络安全专家