写点什么

有人在恶意提权吗?

用户头像
BUG侦探
关注
发布于: 5 小时前
有人在恶意提权吗?

背景

早上收到一条疑似提权的报警,原始数据如下,uid 非 0,euid 为 0,代表用户 6834 通过执行 sg 命令提升了权限。


排查

对 sg 比较陌生,于是查看 sg 命令的用途解释为:可以以不同的组 ID 执行命令。这时才联想到了 su,从命名上可以看出一个是 switch user,一个是 switch group,以不同组 ID 执行命令的前提是可以切换到不同组,即 sg 命令需要拥有 root 权限,查看 sg 的权限位,链到了 newgrp 上,有 suid 标志位,条件达成。



suid 是一种特殊的权限,可以暂时将程序所有者的权限,赋予程序执行者。如 passwd 命令可以修改/etc/shadow 文件,但是普通用户对/etc/shadow 没有修改权限,就是通过为 passwd 赋予 suid 权限来实现的。newgrp 属主为 root 且拥有 suid 标志位,当命令被执行时,用户 6834 被赋予 0(root)的执行权限,满足提权特征被我们捕获,但是此行为是合法的,因为同 su 一样,通过 sg 只能切换到被赋予权限的组,这个环节是在掌控内的。

真相只有一个

那么用户执行 sg run.sh 是什么意图呢?显然是手抖将 sh 打成了 sg 结果触发了一次提权被识别到,而我们对常用的具有 suid 又无实质提权危害的命令已经做了加白处理,这个 case 为我们扩充了规则。

拓展

在 suid 被滥用时,会存在被恶意利用的风险。如果给可以执行任意命令的程序添加 suid 权限,比如 find、vim 甚至 bash,就会导致普通用户找到这些程序,就等于找到了通往程序所有者权限的钥匙,而且往往是 root。举个例子,为 find 赋予 suid 权限,并以普通用户的身份执行 find anyfile -exec 'whoami' \;,运行结果是 root,如果把 whoami 替换成 /bin/bash,那将得到一个 root 权限的 shell。






发布于: 5 小时前阅读数: 4
用户头像

BUG侦探

关注

还未添加个人签名 2021.06.08 加入

专注于发掘程序员/工程师的有趣灵魂,对工作中的思路与总结进行闪光播报。

评论

发布
暂无评论
有人在恶意提权吗?