Linux
無法刪除 Linux 上的損壞文件
所以我被一個腳本小貓擊中了……幸運的是,這個盒子是 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
您還需要清除
a
和s
屬性,因為這些可能會影響您刪除文件的能力。chattr -R -i -a -s /_bin
chattr
有關所有屬性是什麼以及它們的作用的完整說明,請參見手冊頁。
看起來粘性部分仍然存在。
chmod -t /_bin