![无需 root 或 sudo 的 Linux 键盘记录器!这是真的吗?](https://linux22.com/image/1280778/%E6%97%A0%E9%9C%80%20root%20%E6%88%96%20sudo%20%E7%9A%84%20Linux%20%E9%94%AE%E7%9B%98%E8%AE%B0%E5%BD%95%E5%99%A8%EF%BC%81%E8%BF%99%E6%98%AF%E7%9C%9F%E7%9A%84%E5%90%97%EF%BC%9F.png)
Youtube 上有人声称在 Ubuntu 上有一个键盘记录器,既没有以 root 身份执行也没有安装。下面的链接展示了它的运行演示。
http://www.youtube.com/watch?v=Y1fZAZTwyPQ
尽管他们声称相反,但这个人可能在视频演示之前以 root 身份安装了它。还有其他半可信的证据表明,在没有 root 的情况下安装或执行确实有可能吗?
更新:6 月 24 日的回答中提到的软件如果没有 sudo/root 则无法安装。我已向提供可用 Linux 键盘记录软件链接的人提供悬赏,该软件可以使用普通用户权限安装和运行。
答案1
是的,这是真的。如果你被利用了(通过开源供应链攻击、浏览器漏洞、电子邮件附件等)并且攻击者可以使用您的用户权限运行代码,他们可以通过 GNOME 或 KDE 自动启动功能注册一个程序,并在登录时运行程序。
任何程序都可以获取 X Window 系统中所有按下的键的扫描码。使用以下命令可以轻松演示这一点xinput
:
$ xinput list
# identify the ID of your keyboard device
$ xinput test <that id>
如果没有出现任何内容,请将 ID 更改为列表中的另一个。
看到这个发布有关 GUI 隔离的帖子有关详细信息,请参阅核心贡献者Qubes 操作系统,唯一从头开始设计的操作系统,可以减轻这种风险(以及许多其他风险)。
答案2
该视频中的概念 100% 真实,而且代码非常简单。
使用以下方式识别您的键盘 ID:xinput --list
使用以下方式记录击键:xinput --test $id
将数字与按键匹配:xmodmap -pke
答案3
是的,这是可能的。
你可以在自己的机器上使用类似的软件尝试一下陣容。
答案4
这是 100% 可能的。对于 ttys/ptys(文本模式),最简单的方法是向 /bin/{ba,da,a}sh 添加一个 shim(例如,第二个 .code 段,RX)并更改入口点(就像 ELF 病毒一样)。在这种情况下,除非访问该入口点,否则可以修改 ~/.profile 或 ~/.bashrc(等等),作为一个非常简单的假设模型:
执行〜/.malicious_programme
它可能加载动态共享对象代码来隐藏有问题的恶意程序(例如:允许.profile读取和修改,但隐藏该行。和/或隐藏程序。)
然后可以使用 UNIX98 pty(7) 系统或甚至简单的 pipe(2) 来记录分叉 shell 中的所有输入(假设 fd 未标记为 FD_CLOEXEC),甚至可以将用户输入更改为 shell。
在 X11 中,尽管 kdm/gdm/xdm 以 setuid root 身份运行(或功能等效 [请参阅 setcap(8)] 或您使用的任何非默认安全模型),但事情显然变得更加复杂。如果可以提升权限?iopl(2) 或 ioperm(2) 可以直接访问 x86 上的 0x60 / 0x64 键盘端口,让生活变得非常轻松。由于我们假设您不能,我们必须寻找替代路线。我知道几个,但我不完全确定您是否想要一篇关于它如何实现以及所涉及的接口的论文。
可以说,尽管有进程隔离,但 ring 3 的非超级用户木马在 *nix 上还是很有可能出现的,这是由于各种问题(尤其是 X)导致的,这些问题增加了用户模式守护进程的功能,例如,为所有应用程序提供文本转语音支持,而不会危及系统的安全性。我已经概述了一种类似于 ttysnoops 的程序(早已过期),并且不需要 root。我有这种情况的示例代码(包括 X 中的内部终端),但我尚未发布它。如果您想了解更多信息,请随时与我联系。