Linux

無法刪除 Linux 上的損壞文件

  • March 18, 2016

所以我被一個腳本小貓擊中了……幸運的是,這個盒子是 Ubuntu 並且能夠從類似的系統中替換 w/ 二進製文件,但是

一些我無法刪除的文件,我仍然對此感到困惑。被劫持的文件位於root/_bin可寫的目錄中。

nathan@db-0:~$ ls -ld !$
ls -ld /_bin
drwxr-xr-x 2 root root 4096 Mar 12 18:00 /_bin

好的,這些是目錄上的權限,現在是其中的文件:

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

現在,當我嘗試刪除其中一個文件(以 root 身份)時:

root@db-0:/home/nathan# rm /_bin/ls
rm: cannot remove `/_bin/ls': Operation not permitted

或者,如果我嘗試刪除整個_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

那麼如何刪除這些文件呢?

編輯:

果然已經設置了不可變位,但是,刪除它不會讓我刪除文件。

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

還驗證/_bin了沒有不可變位:

root@db-0:/home/nathan# lsattr -d /_bin
--------------- /_bin

攻擊者很可能在文件和目錄上設置了不可變屬性。這通常由 rootkit 完成,以使清理更加困難。

要確認這一點,請嘗試:

lsattr /_bin

要刪除不可變屬性,請使用:

chattr -R -i /_bin

您還需要清除as屬性,因為這些可能會影響您刪除文件的能力。

chattr -R -i -a -s /_bin

chattr有關所有屬性是什麼以及它們的作用的完整說明,請參見手冊頁。

看起來粘性部分仍然存在。

chmod -t /_bin

引用自:https://serverfault.com/questions/487113