Menemukan Backdoor dan Malicious Code Pada Server
Akhirnya ketemu juga cara untuk menscan / find files atau script yang berbahaya di server kita. Saya di tempat kerja menggunakan VDS tanpa panel, dan pernah kemasukan file shell dan sejenisnya. Karena ratusa folder di server sangat menyulitkan jika mencari satu-satu file yang berbahaya tersebut. Maka dari itu linux command berikut sangat berguna sekali. Terimakasih Devilzc0de. Berikut saya repost dari forum devilzc0de yang tujuannya sebagai arsip saya apabila lupa.
Ketika seorang attacker berhasil masuk kedalam sebuah server sudah pasti dia memiliki pintu masuk cadangan, alias pintu masuk alternatif jika sewaktu-waktu dia ingin kembali masuk dalam server yang sudah di ambil alihnya, dan sudah pasti juga pasti dia meninggalkan sebuah file (backdoor) yang berfungsi sebagai pembuka jalan masuk, kadang-kadang juga attaker menyisipkan code jahat ke dalam file-file tertentu sehingga cukup sulit untuk di temukan keberadaaanya, di lain pihak (korban) akan merasa sulit jika sisipan kode tersbut terletak di antara baris-baris kode yang jumlahnya ribuan
Apa hubunganya dengan judul tulisan saya kali ini ? dalam tulisan ini saya akan mencoba mengajak teman-teman untuk belajar bagaiaman menemukan file-file backdoor maupun sisipan kode-kode jahat di dalam server kita setelah terjadi serangan (got hacked), seperti halnya Devilzc0de baru-baru ini terjadi insiden penemuan (bug) yang di temukan oleh salah seorang member devilzc0de (thanks buat poticous) di sonetnya DC, dalam hal ini kita akan mencoba mencari file-file backdoor atau malicious code yang di sisipkan dalam file-file tertentu, jika filenya sedikit saya rasa tidak menjadi masalah, bagaiaman jika filenya sampai puluhan giga ? atau ratusan mega ? saya rasa membutuhkan tenaga dan waktu juga untuk menemukan file-file yang mengandung kode berbahaya tersebut
Sebelum kita memulai mencari file-file tersebut, kita pahami dulu karakter dari file-file jahat tersebut, biasanya dan pastinya file-file tersebut menggunakan beberapa perintah yang dapat mengeksekusi perinta OS, seperti
Code:
passthru
shell_exec
system
phpinfo
base64_decode
chmod
mkdir
fopen
fclose
readfile
jika harus menelusuri per filenya saya rasa tidaklah mungkin, disini kita akan mencoba menggunakan salah satu utility yang ada pada system operasi linux(grep) dan windows (findstr), dengan mengguanakn grep maupun findstr kita tidak harus menelusuri file demi file, kita cukup menunggu hasilnya dan melakukan analisis file mana saja yang mungkin menjadi file-file jahat
GREP di linux
pada OS linux grep sudah terinstall secara default, jadi ga perlu nginstall lagi, cukup dengan mengetikan perintah dengan kombinasi sedeharan saja, ada beberapa versi grep yang belum mendukung (perl Regular Exresion) tetapi sekarang rata-rata sudah mendukung semua so hasil perncarian akan menjadi lebih spesifik
Saya asumsikan bahwa kita berada di folder tempat dimana file-file webkita di simpan, untuk memulai pencarian dengan menggunakan grep cukup login melalui SSH (yang tidak punya akses SSH tidak bisa mengguakan grep) kecuali download dulu semua file yang ada di hostingan bawa kerumah, pake linux trus pake grep.
Code:
grep -Rn "passthru *(" public_html/
baris perintah itu akan mencari semua string yang mengandung kata passtrhu, pada folder public_html untuk menyimpan hasil search bisa menambahkan option >> [nama file], misalnya
Code:
grep -Rn "passthru *(" public_html/ >> hasil.txt
yang perlu di ingat pada saat kita ingin menyimpan hasil search kedalam sebuah file adalah pengguanaan tanda > dan >>, cukup simle memang tapi hasilnya jauh berbeda, jika menggunakn opsi > (hanya satu) maka grep akan menimpa isi dari hasil sebelumnya, atau grep akan menyimpan hasil search yang paling terakhir saja, sedangkan jika menggunaakan option >> (dua) maka grep akan menambahkan hasil search di bawah hasil sebelumnya dalam satu file, hasil dari grep inilah yang nanti kita analis untuk menemukan file-file jahat, karena hasil dari perintah grep ini berupa sedikit string yang di cari, seperti nama file dan pada line berapa string tersebut di temukan, berikut perintah grep yang bisa digunakan
Code:
grep -RPn "(passthru|shell_exec|system|phpinfo|base64_decode|chmod|mkdir|fopen|fclose|readfile) *(" public_html/ >> hasil.txt
findstr di windows
berbeda dengan linux, di windows di namankan dengan findstr, jika kita bekerja dengan windows mungkin peritah-perintah berikut bisa digunakan untuk membantu kita dalam mencari file-file jahat yang terdapat dalam server kita
Code:
findstr /r /s /n /c:"passthru *(" *.*
atau untukmencari semua keyword yang bernilai false postive bisa menggunakan
Code:
findstr /r /s /n "passthru shell_exec system( phpinfo base64_decode chmod mkdir fopen fclose readfile" *.*
Berikkut beberapa hasil pencarian mengguanakan grep pada server berbasis linux
Code:
public_html/xxxxxx/uploads/201010/post_10034_1286189160_c8dac5d30dc3377462340c29b451d7f2.attach:1115: @system($cfe);
public_html/xxxxxx/uploads/201010/post_10034_1286189160_c8dac5d30dc3377462340c29b451d7f2.attach:1122: @passthru($cfe)
public_html/xxxxxx/task.php:59: echo base64_decode("R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==");
public_html/chat/m/test.php:1:
public_html/chat/plugins/filetransfer/uploads/fb506299b71f9559948df6d8feba354e:12:eval("?>".gzinflate(base64_decode("7f2HmtvI0S
.......
Segitu dulu dah, semoga berguna dan bermanfaat buat semua, thanks for reading
Sumber : http://devilzc0de.org/forum/thread-13540.html
Comments