侦听此UNIX套接字的永久运行进程是通过使用以下命令将Ebury有效负载加载到合法的可执行文件中来启动的
LD_重新加载
-
21 我认为您误解了Unix-Linux安全范例。 权限被授予 用户 不是为了 程序 。普通用户可以执行任意代码,甚至可以提供自己的代码(默认情况下通常安装C编译器)。 如果有人可以在您的环境中添加LD_PRELOAD变量,那么它也可以更改您的路径,使您启动程序的修改副本。 因此,这不能用于特权升级。 我看不出LD_PRELOAD如何成为一个安全问题,就像set_user_id位那样。 – 谢尔盖·巴列斯塔 评论 5月15日7:12 -
三 与指定要运行的可执行文件的显式路径类似,可以显式清除 LD_重新加载 从shell运行可执行文件时的变量: LD_PRELOAD=/usr/bin/program args。。。 – 帕布克-乌克兰保持强大 评论 5月15日20:56 -
4 我不认为Serge这么认为 路径 这是一个错误的特征。 他的观点是专注于 LD_重新加载 放错了位置。 如果对手有足够的权限控制任意用户的环境,那么游戏就已经失败了。 如果对手可以控制特定用户的环境,则该用户的帐户已经受到威胁。 使用的技巧 LD_重新加载 不是主要漏洞。 它们可能是 有效载荷 单独的攻击,而不是提供特权升级的攻击。 – 约翰·布林格 评论 5月16日14:55 -
2 作为 雷蒙德 他说:这相当于在这个密闭舱口的另一边。 – 马丁 评论 5月17日8:25 -
2 @AustinHemmelgarn,你可以看看已经到位的缓解机制。 请参见 stackoverflow.com/questions/9232892/… 询问为什么对setuid二进制文件使用LD_PRELOAD不起作用——其答案链接到相关资源。 – 查尔斯·达菲 评论 5月17日15:25
2个答案
-
28 -
9 -
1 -
三 -
2 @埃戈尔·索佐诺夫,你为什么认为这是一个安全问题? 如果用户说 LD_PRELOAD=/tmp/evil.so ls ,然后 该用户 故意要求 邪恶的 并且有足够的权限执行 邪恶的 想要做的(否则由其进行的系统调用将失败)。 – 查尔斯·达菲 评论 5月17日15:17
没有“Linux默认”这样的东西。 这个“恶意软件”是sharedlib,它注入到以root身份运行的进程中,可以将自身分发到系统的所有进程中。 很好,但这并没有什么特别的,显然作为root用户,您可以在系统中做任何事情,包括修改所有二进制文件。 无法通过以下方式将任何内容远程或甚至本地作为非根注入到linux进程中 LD_重新加载 。上一次使用此功能的安全漏洞是在90年代末关闭的。 从这个意义上说,你可以说是的, LD_重新加载 是“禁用的”(嗯,不是完全禁用的,只是以其他用户的名义执行操作是禁用的,包括使用 LD_重新加载 ).