假设我让我的朋友“Stuart”在我的 VPS 上拥有一个权限非常有限的帐户,因为他问得非常好。由于 Stuart 不那么聪明,他不小心将自己的密码发布到了 IRC 聊天室,现在每个人和他/她的奶奶都可以 ssh 进入他的帐户。我的问题是,在有经验的黑客手中,会对系统造成什么样的破坏?
有人可以编写一个简单的 C 程序来故意操纵缓冲区溢出strcpy
并提供一个 root shell 以完全控制系统,还是在操作系统中有内置的保护措施?
假设我让我的朋友“Stuart”在我的 VPS 上拥有一个权限非常有限的帐户,因为他问得非常好。由于 Stuart 不那么聪明,他不小心将自己的密码发布到了 IRC 聊天室,现在每个人和他/她的奶奶都可以 ssh 进入他的帐户。我的问题是,在有经验的黑客手中,会对系统造成什么样的破坏?
有人可以编写一个简单的 C 程序来故意操纵缓冲区溢出strcpy
并提供一个 root shell 以完全控制系统,还是在操作系统中有内置的保护措施?
具有本地权限的攻击者可以执行任意数量的攻击者,包括但不限于:
但是,您描述的攻击是不可能的,因为该文件必须由 root 拥有并设置 setuid 或 setgid 位。
一旦有人可以访问机器,而不需要远程利用,他们只需要升级权限即可获得 root 访问权限。
远程攻击需要有一个外部可公开访问的易受攻击的服务。假设它得到很好的维护,不应该有任何人在标准 VPS 上运行。
一旦远程用户可以进行身份验证,他们就可以执行机器上的任何代码,或者引入更多代码。如果内核中或任何将 setuid 设置为 root 的程序中存在错误,他们可以使用它来将权限提升到具有更大权限的用户(例如 root)。
因此,攻击者编写的自定义程序中的简单缓冲区溢出不是您关心的问题 - 这不应该让他们拥有任何额外的权力。您担心的是系统中的一个漏洞,攻击者现在可以访问,因此,有能力利用。