最近的一篇文章激起了我的好奇心;请告诉我,我不是安全专家,只是一名 Linux 管理员。
这表明 rootkit 从用户空间运行,但/etc/so.preload
在/usr/share
. 通过什么机制可以做到这一点?据我所知,这篇文章没有提到。
最近的一篇文章激起了我的好奇心;请告诉我,我不是安全专家,只是一名 Linux 管理员。
这表明 rootkit 从用户空间运行,但/etc/so.preload
在/usr/share
. 通过什么机制可以做到这一点?据我所知,这篇文章没有提到。
您只是在问用户模式程序如何写入文件吗?用户模式(环 3)并不意味着无特权,尽管内核模式(环 0,与用户模式相反)确实意味着有特权。每次sudo
执行命令时,您都在运行可以修改任意文件的 ring 3 代码。“root”用户的程序在 ring 3 中运行,与其他任何人的程序一样。
像这样的rootkit 显然需要特权(即root)才能安装。它执行诸如创建用户之类的操作,这可以通过用户空间代码完成(对内核有一些调用,但您不必安装内核模块来执行此操作),但不能由非特权用户完成。
附带说明一下,用户模式的 rootkit 比内核模式的弱。实际上,第三方代码基本上永远不会直接进行系统调用,因为系统调用不像“普通”函数,而且细节是平台和实现特定的,并且可能在主要内核版本之间发生变化。直接从您的代码中进行系统调用可能会使其不可移植,并且很容易搞砸。但是,这是有可能的,如果您这样做,您将绕过用户模式 rootkit 设置的用于篡改您的系统调用的 shim。