没有root或sudo的Linux键盘记录程序!这是真的吗?


29

Youtube上的某人声称在Ubuntu上有一个键盘记录器,该键盘记录器既未执行也不以root身份安装。下面的链接显示了其工作的演示。

http://www.youtube.com/watch?v=Y1fZAZTwyPQ

尽管他们有相反的说法,但该人可以在演示视频之前以root用户身份安装它。是否还有其他半可信的证据表明,没有root用户就可以进行安装或执行,这真的可能吗?

更新:如果没有sudo / root,将无法安装6月24日答案中引用的软件。我向任何提供了可正常运行的Linux键盘记录器软件链接的人添加了一笔赏金,该软件可以常规用户权限安装和运行。


我相信这可以在X级别轻松完成。只要考虑一下带有全局快捷方式的程序。
丹尼斯·尼古拉年科2011年

为了防止X窗口系统键盘记录程序,您需要为X实现SELinux。据我所知,没有广泛使用的Linux发行版可以做到这一点。nsa.gov/research/_files/selinux/papers/x11/t1.shtml
Denis Nikolaenko 2011年

您知道任何实际的工作示例吗?在没有亲眼看到它起作用的情况下,我仍然持怀疑态度。而且,在不知道是否有可能在没有sudo / root特权的情况下安装键盘记录程序的情况下,处理设置AppArmor或SELinux防御它的复杂性就不值得了。
Mike Rowave 2011年


3
请在您的答案中总结视频的重点。可以将其删除,或者服务器可能不可用。(是的,正如我所发布的,Youtube处于关闭状态。)要求访问者观看视频以弄清楚您的问题是很不礼貌的。
吉尔斯(Gilles)'所以

Answers:


29

是的,这是真实的。如果您被浏览器所利用,并且攻击者可以使用您的用户特权运行代码,则攻击者可以通过GNOME或KDE自动启动工具注册程序,该工具会在登录时运行程序。任何程序都可以获取X Window System中按键的扫描代码。使用xinput命令可以很容易地演示它。有关详细信息,请参见有关GUI隔离的博客文章


12

视频中的概念是100%真实的,并且代码非常简单。

使用以下命令标识您的键盘ID: xinput --list

使用以下命令记录击键: xinput --test $id

将数字与键匹配: xmodmap -pke


11

对的,这是可能的。
您可以使用类似的软件lkl在自己的计算机上试用


如果它是真实的,那太可怕了。我将建立一个虚拟机对其进行测试。但是,接下来的难题是,如果它通过浏览器漏洞或类似的方式自行安装,如何立即检测到它,或者至少主动阻止它在运行时将任何内容传输到Internet。
Mike Rowave 2011年

我对该领域知之甚少,但wiki.ubuntu.com/SELinux可能会有所帮助。随时使用您的发现来更新原始问题。:D
bbaja42 2011年

1
仅凭视频就很难说出恶作剧,真实或虚假的样子。如果我想制作一个视频来演示一个巨大的漏洞(suid技巧,sudo超时,掺假的系统工具等,令人作呕的影片),我已经可以想到起点了。是愚蠢的。但是,您无法根据Youtube视频得出结论。
Andrew Lambert

@Amazed有效点,但是请随时安装lkl并在您自己的计算机上对其进行测试。
bbaja42 2011年

1
没用 运行make install产生错误 cannot create regular file '/usr/local/bin/lkl': Permission denied。运行sudo make install没有给出错误,但是随后尝试实际运行lkl则给出了另一个错误Have to be root to perform a iopl()!
Mike Rowave 2011年

9

我还没有看过视频,所以我回应的是我对SU线程而不是您引用的视频所声称的印象。

如果攻击者可以您的用户身份在您的计算机上运行代码,则他们可以记录您的按键操作。

好吧,嗯 您正在运行的所有应用程序都可以访问按键。如果您在Web浏览器中键入内容,则Web浏览器可以访问按键。

嗯,您说,但是在另一个应用程序中记录按键操作呢?只要其他应用程序在同一台X服务器上运行,它们仍然可以被记录下来。X11不会尝试隔离应用程序-这不是它的工作。X11允许程序定义全局快捷方式,这对于输入法,定义宏等非常有用。

如果攻击者可以以您的用户身份运行代码,则他还可以读取和修改您的文件,并造成各种其他危害。

这不是威胁。这是工作系统正常期望的一部分。如果允许攻击者在计算机上运行代码,则计算机将不再安全。这就像您打开前门并允许一个凶手杀人斧一样:如果您随后被劈成两半,那不是因为您的前门是不安全的。

键盘记录程序只能记录被感染用户按下的键。(至少只要受感染的用户没有键入sudo密码即可。)


参见法律1
Iszi 2013年

“不允许攻击者在您的计算机上运行代码”是一种很好的安全模型...我猜想,当Linux用户使用Windows时,Windows会变得完全安全(他肯定不会“允许攻击者运行代码”) ...
gbr

3

这是100%可能的。对于ttys / ptys(文本模式),最简单的方法是在/ bin / {ba,da,a} sh(例如,第二个.code段RX)中添加填充码并更改入口点(例如ELF)。病毒会)。在这种情况下,除非对此进行访问,否则可以将〜/ .profile或〜/ .bashrc(等)修改为一种非常简单的假设模型:

exec〜/ .malicious_programme

可能会加载动态共享对象代码以隐藏有问题的恶意程序(例如:允许读取和修改.profile,但隐藏行。和/或隐藏程序。)

然后,可以假定fd未标记为FD_CLOEXEC,甚至可以使用UNIX98 pty(7)系统或什至简单地使用pipe(2)将所有输入记录在派生的shell中,甚至将用户输入更改为该shell。

在X11中,尽管kdm / gdm / xdm是作为setuid根运行的(或等效功能[请参见setcap(8)]或非默认情况下使用的任何安全模型),但事情显然变得更加复杂。是否可以提升特权?通过直接访问x86上的0x60 / 0x64键盘端口,iopl(2)或ioperm(2)使生活变得非常轻松。由于我们假设您做不到,因此我们必须寻找替代路线。我知道几个,但是我不完全确定您想要关于如何实现以及涉及的接口的论文。

可以说,尽管进程隔离,但由于各种问题(尤其是X的问题)增加了用户模式守护程序提供的功能(例如,文本),因此* nix上仍然有可能在非* nix上使用环3非超级用户木马。对所有应用程序的语音转换支持,而不会损害系统的安全性。我已经概述了一个与ttysnoops类似的工具(它已经过期了很长时间),并且不需要root。我有这种情况的示例代码(它将包含在X的内部终端中),但是我尚未发布它。如果您需要更多信息,请随时与我联系。


问题说“没有root或sudo”。攻击者将如何在/bin没有特权的情况下修改程序?
G-Man说'Resstate Monica''Aug

0

是的,可以在没有su或sudo特权的情况下安装软件;但是,这通常是通过特权升级漏洞来完成的。该视频在键盘记录器的功能方面做得很好,但是在键盘记录器的安装上却没有太多细节。这里可能有一些诡计,但仅凭视频很难分辨。


你是在扭曲单词。可以在不运行 su或的情况下将软件安装到系统目录中sudo,但是特权升级利用将赋予攻击者root特权-aka“超级用户”或“ su”特权。
G-Man说'Resstate Monica''Aug

0

为了进行测试,我创建了一个TTY键盘记录程序,该程序可以动态地附加到用户的tty上,并且该程序不需要由root用户安装,并且可以由任何帐户使用。附加后,它将在程序启动时记录与命令行上给出的模式匹配的输入。


-3

像Crunchbang(基于Debian的发行版)之类的系统是可能的,只需在终端中使用nano visudo 来向sudoers文件添加权限,并像Linux的logkey一样将keylogger添加到autostart即可,例如logkeys --start --output /home/user/.secret /日志

祝好运


5
需要root或sudo特权才能编辑sudoers文件。
Mike Rowave 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.