Bagaimana cara menghapus file tanpa izin?

22

Seorang hacker telah menjatuhkan file di dir tmp saya yang menyebabkan masalah. Tidak ada yang berbahaya kecuali membuat GB dari entri error_log karena skrip mereka gagal. Namun, file yang mereka gunakan untuk mengeksekusi tidak memiliki izin dan bahkan sebagai ROOT saya tidak dapat menghapus atau mengganti nama file ini.

----------  1 wwwusr wwwusr 1561 Jan 19 02:31 zzzzx.php

root@servername [/home/wwwusr/public_html/tmp]# rm zzzzx.php
rm: remove write-protected regular file './zzzzx.php'? y
rm: cannot remove './zzzzx.php': Operation not permitted

Saya juga mencoba menghapus dengan inode

root@servername [/home/wwwusr/public_html/tmp]# ls -il

...
1969900 ----------  1 wwwusr wwwusr 1561 Jan 19 02:31 zzzzx.php

root@servername [/home/wwwusr/public_html/tmp]# find . -inum 1969900 -exec rm -i {} \;

rm: remove write-protected regular file './zzzzx.php'? y
rm: cannot remove './zzzzx.php': Operation not permitted

Bagaimana cara saya menghapus file ini?

Bradley
sumber
15
Jika saya adalah Anda, saya akan mencari untuk membuka dan membuka kotak itu. Jelas memiliki setidaknya satu lubang keamanan, yang cukup buruk bahwa seseorang dapat menulis file baru dengan izin khusus di luar root dokumen, dan di atas semua itu, mengelola untuk mendapatkan PHP / Apache untuk mencoba dan memuatnya. Teman saya, Anda secara merajalela. Jika Anda ingin kotak itu kembali, Anda harus melepaskannya dari orbit. Itu satu-satunya cara untuk memastikan .
Warren Young
Warren terima kasih. Ini sebenarnya adalah kotak baru yang memindahkan akun yang belum pernah dikompromikan sebelumnya. Saya mencoba mencari tahu apa pengaturannya yang berbeda (kedua kotak CPanel).
Bradley
2
Hanya karena OSnya baru dan instal baru tidak berarti Anda tidak dapat memiliki kompromi. Bug yang terdeteksi hari ini di OS yang dikirimkan 6 bulan lalu mungkin bertahan selama bertahun-tahun, karena orang terus menginstal OS yang lebih lama dari CD yang terus bertambah. Bahkan jika ada patch untuk cacat, jendela antara instalasi dan pembaruan memungkinkan kompromi. Mengesampingkan itu, jika saya salah bahwa beberapa aktor buruk menempatkan file itu pada sistem Anda, sysadmin yang teliti harus setidaknya mencoba menjelaskan keberadaannya dengan cara lain.
Warren Young

Jawaban:

26

File mungkin telah dikunci menggunakan atribut file .

Sebagai root, lakukan

lsattr zzzzx.php

Atribut a(mode tambahan) atau i(tidak berubah) yang ada akan mencegah Anda rm. Jika mereka ada di sana, maka

chattr -ai zzzzx.php
rm zzzzx.php

harus menghapus file Anda.

ire_and_curses
sumber
Saya akan menghindari memanggil mereka atribut file yang diperluas , karena dapat menyebabkan kebingungan dengan atribut file yang diperluas sebagaimana diatur dengan setfxattrdan digunakan untuk menyimpan atribut ACL atau SELinux ....
Stéphane Chazelas
@Stephane Chazelas - ok. Apakah 'atribut file' biasa berfungsi untuk Anda?
ire_and_curses
1
Saya tidak bisa memikirkan yang lebih baik. Mereka dulunya atribut file ext2 tetapi sekarang didukung oleh FS lain di Linux seperti xfs dari btrfs, jadi orang tidak bisa lagi memanggil mereka itu.
Stéphane Chazelas
3

Sayangnya Warren tidak memposting sebagai jawaban tetapi sebagai komentar; Saya tidak bisa cukup menekankan bahwa dia sepenuhnya benar.

Menghapus / mengubah satu file tidak akan memperbaiki masalah NYATA Anda; itu akan membuat SATU gejala hilang. Bawalah kotak itu offline, ambil gambar untuk forensik nanti, dan instal ulang, dengan versi yang lebih baru (semoga dengan perbaikan keamanan baru) dari apa pun yang Anda jalankan.

Saya ulangi: menghapus file BUKAN FIX .

Tink
sumber
7
Saya tidak memposting jawaban karena komentar saya tidak menjawab pertanyaan yang diajukan.
Warren Young
Heh ... Saya kira saya masih terlalu baru dengan cara stackexchange dalam melakukan sesuatu. Saya lebih suka turun memilih untuk "tidak menjawab" daripada tidak mengatakan apa yang perlu dikatakan; D
tink
Pertanyaannya bukan tentang memperbaiki masalah itu, ini tentang menghapus file tanpa izin. Dan ini pertanyaan yang menarik!
wim
5
@tink: Itulah komentar untuk : untuk mengatakan hal-hal yang perlu dikatakan, yang bukan jawaban untuk pertanyaan.
Warren Young
Jelas ini tidak menjawab pertanyaan yang diminta. Menyeka disk akan menghapus file! Biasanya ini bukan metode yang wajar untuk menghapus file, tetapi dalam kasus ini, ini adalah cara yang paling masuk akal, karena itu memecahkan masalah yang mendasarinya pada saat yang sama. (Lebih jauh lagi, bahkan jika ini tidak secara harfiah menjawab pertanyaan seperti yang secara eksplisit ditanyakan - yang benar! - tidak salah untuk mengirim solusi untuk masalah aktual OP .)
Eliah Kagan