无法在 Linux 上删除损坏的文件

qui*_*tin 1 linux filesystems hacking command-line-interface rm

所以我被一个脚本小猫击中了......幸运的是,这个盒子是 Ubuntu 并且能够替换来自类似系统的二进制文件,但是

我无法删除的一些文件,仍然难倒这个。被劫持的文件位于root/_bin可写的目录中

nathan@db-0:~$ ls -ld !$
ls -ld /_bin
drwxr-xr-x 2 root root 4096 Mar 12 18:00 /_bin
Run Code Online (Sandbox Code Playgroud)

好的,这些是目录上的权限,现在是其中的文件:

nathan@db-0:~$ ls -l /_bin
total 268
-rwxr-xr-x 1 root root  39696 Nov 19 22:25 ls
-rwxr-xr-x 1 root root 119800 Mar 31  2012 netstat
-rwxr-xr-x 1 root root 101240 Dec 12  2011 ps
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试删除这些文件之一(以 root 身份)时:

root@db-0:/home/nathan# rm /_bin/ls
rm: cannot remove `/_bin/ls': Operation not permitted
Run Code Online (Sandbox Code Playgroud)

或者,如果我尝试删除整个_bin目录(再次以 root 身份):

root@db-0:/home/nathan# rm -rf /_bin
rm: cannot remove `/_bin/ls': Operation not permitted
rm: cannot remove `/_bin/netstat': Operation not permitted
rm: cannot remove `/_bin/ps': Operation not permitted
Run Code Online (Sandbox Code Playgroud)

那么如何删除这些文件呢?

编辑:

果然不可变位已经设置,但是,删除它不会让我删除文件。

root@db-0:/home/nathan# lsattr /_bin
s---ia--------- /_bin/ls
s---ia--------- /_bin/netstat
s---ia--------- /_bin/ps

root@db-0:/home/nathan# chattr -R -i /_bin
root@db-0:/home/nathan# lsattr /_bin
s----a--------- /_bin/ls
s----a--------- /_bin/netstat
s----a--------- /_bin/ps

root@db-0:/home/nathan# rm -rf /_bin
rm: cannot remove `/_bin/ls': Operation not permitted
rm: cannot remove `/_bin/netstat': Operation not permitted
rm: cannot remove `/_bin/ps': Operation not permitted
Run Code Online (Sandbox Code Playgroud)

还验证/_bin没有不可变位:

root@db-0:/home/nathan# lsattr -d /_bin
--------------- /_bin
Run Code Online (Sandbox Code Playgroud)

Mic*_*ton 10

攻击者很可能在文件和目录上设置了不可变属性。这通常由 rootkit 完成,以使清理更加困难。

要确认这一点,请尝试:

lsattr /_bin
Run Code Online (Sandbox Code Playgroud)

要删除不可变属性,请使用:

chattr -R -i /_bin
Run Code Online (Sandbox Code Playgroud)

您还需要清除as属性,因为它们可能会影响您删除文件的能力。

chattr -R -i -a -s /_bin
Run Code Online (Sandbox Code Playgroud)

有关chattr所有属性是什么以及它们的作用的完整说明,请参见手册页。