ring 3 rootkit 如何修改 /etc 和/或 /usr 中的文件?

信息安全 linux Rootkit
2021-09-04 04:41:58

最近的一篇文章激起了我的好奇心;请告诉我,我不是安全专家,只是一名 Linux 管理员。

这表明 rootkit 从用户空间运行,但/etc/so.preload/usr/share. 通过什么机制可以做到这一点?据我所知,这篇文章没有提到。

1个回答

您只是在问用户模式程序如何写入文件吗?用户模式(环 3)并不意味着无特权,尽管内核模式(环 0,与用户模式相反)确实意味着有特权。每次sudo执行命令时,您都在运行可以修改任意文件的 ring 3 代码。“root”用户的程序在 ring 3 中运行,与其他任何人的程序一样。

像这样的rootkit 显然需要特权(即root)才能安装。它执行诸如创建用户之类的操作,这可以通过用户空间代码完成(对内核有一些调用,但您不必安装内核模块来执行此操作),但不能由非特权用户完成。

附带说明一下,用户模式的 rootkit 比内核模式的弱。实际上,第三方代码基本上永远不会直接进行系统调用,因为系统调用不像“普通”函数,而且细节是平台和实现特定的,并且可能在主要内核版本之间发生变化。直接从您的代码中进行系统调用可能会使其不可移植,并且很容易搞砸。但是,这是有可能的,如果您这样做,您将绕过用户模式 ​​rootkit 设置的用于篡改您的系统调用的 shim。