【问题标题】:Request root access programmatically [duplicate]以编程方式请求root访问权限[重复]
【发布时间】:2012-06-19 19:21:54
【问题描述】:

可能重复:
How to programmatically gain root privileges?

有什么方法可以通过 linux 以编程方式向 C 中的用户请求 root 访问权限?

我使用的是原始套接字,因此需要 root 访问权限。

【问题讨论】:

标签: c linux sockets


【解决方案1】:

惯用的方法是让你的程序成为suid-root,并让main的前两行打开原始套接字并删除root。

从安全的角度来看,这仍然不够理想,因为:

  1. 程序后期的妥协将使攻击者能够访问原始套接字,该套接字可用于许多恶意目的,可能获得足够的信息来提升权限。

  2. 任何 suid-root 二进制文件都可能受到动态链接器或在 main 之前运行的启动代码中的缺陷的影响。虽然这些变得越来越少见,但即使在去年,使用LD_AUDIT 的东西在 glibc 的链接器中再次发现了一个。由于这个原因,许多具有安全意识的系统(例如 Openwall Linux)完全禁止 suid-root 二进制文件。

更安全但更复杂的方法是让您的程序作为具有提升(但仍然是最小)权限的守护程序运行,并让 CLI 接口只是一个普通包装器,通过 unix 套接字通过普通程序与守护程序通信可以机械检查漏洞的协议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 2013-09-28
    • 2011-04-13
    • 1970-01-01
    相关资源
    最近更新 更多