GinkDigital

Cara Membersihkan Webshell dari Hosting

Panduan langkah demi langkah — dari deteksi hingga verifikasi

Level
Pemula - Menengah
Estimasi
15-30 menit
Kebutuhan
Akses FTP / cPanel

Webshell adalah backdoor berbasis web — file PHP jahat yang memungkinkan hacker mengendalikan server Anda dari browser. Cukup dengan mengakses satu URL, hacker bisa membaca file, mengubah database, upload malware baru, bahkan mengambil alih seluruh akun hosting.

Dalam studi kasus terbaru kami, 24 webshell ditemukan di satu akun hosting — tersembunyi di setiap direktori website, menunggu untuk diaktifkan.

Panduan ini akan menunjukkan cara mendeteksi, membersihkan, dan mencegah webshell.

Sebelum Mulai: Backup Dulu!

⚠️ JANGAN PERNAH membersihkan tanpa backup. File yang salah hapus bisa merusak website. Backup dulu file dan database via cPanel atau FTP.

Langkah 1: Kenali Ciri-ciri Webshell

1 Cari file PHP dengan ukuran mencurigakan

2 Cek pola obfuskasi

Webshell biasanya menggunakan fungsi-fungsi ini untuk menyembunyikan kode:

eval(base64_decode(...))
gzinflate(...)
str_rot13(...)
preg_replace('/.*e/', ...)  # e modifier (PHP <7)

Cari file yang mengandung eval(, base64_decode, atau gzinflate bersamaan.

3 Cek file terbaru / termodifikasi

Di cPanel → File Manager, urutkan file berdasarkan tanggal modifikasi. Webshell biasanya muncul di tanggal yang sama dengan insiden.

Langkah 2: Lakukan Scan via FTP

4 Gunakan Python untuk scan massal

Untuk hosting dengan banyak direktori, scan satu-satu lewat cPanel tidak efisien. Gunakan script sederhana via FTP:

import ftplib

ftp = ftplib.FTP()
ftp.connect("ftp.anda.com", 21, timeout=15)
ftp.login("user@domain", "password")

# Cek file webshell di setiap direktori
for dir in daftar_direktori:
    ftp.cwd(dir)
    try:
        size = ftp.size("VroC4lVHXdefault.php")
        print(f"⚠️  DITEMUKAN: {dir}/VroC4lVHXdefault.php ({size} bytes)")
    except:
        pass
💡 Tip: Hapus dulu akses FTP dari cPanel setelah scan selesai, lalu buat password baru. Jangan biarkan kredensial FTP tersimpan di mana pun.

Langkah 3: Hapus Webshell

5 Hapus file via FTP

ftp.delete("VroC4lVHXdefault.php")
# Ulangi untuk semua file webshell yang ditemukan

Atau via cPanel → File Manager → klik kanan → Delete.

6 Jangan lupa marker files

Hacker biasanya meninggalkan file marker (0 bytes) sebagai "daftar sudah dikunjungi". Dalam kasus kami, ada 22 file tf88.php (0 bytes) yang tersebar di hosting. File ini sendiri tidak berbahaya, tapi jadi petunjuk bagi hacker lain bahwa hosting ini sudah pernah ditembus.

7 Hapus directory lister

Jika ditemukan file default.php, index.php palsu, atau script directory listing — hapus juga. Ini alat navigasi hacker.

Langkah 4: Verifikasi

8 Scan ulang seluruh direktori

Pastikan tidak ada file webshell yang tersisa:

# Verifikasi semua folder
for dir in daftar_direktori:
    ftp.cwd(dir)
    for nama_file in ["VroC4lVHXdefault.php", "tf88.php", "default.php"]:
        try:
            size = ftp.size(nama_file)
            print(f"❌ MASIH ADA: {dir}/{nama_file}")
        except:
            print(f"✅ Bersih: {dir}")

print("🎉 Selesai!")
✅ Hasil akhir: Jika scan lanjutan tidak menemukan file mencurigakan, hosting Anda sudah bersih dari webshell. Tapi ingat — membersihkan saja tidak cukup.

Setelah Bersih: Jangan Berhenti di Sini

Membersihkan webshell itu seperti mengobati luka. Tapi penyebab lukanya — celah keamanan — harus ditutup. Kalau tidak, hacker akan masuk lagi dari pintu yang sama.

🔴 Wajib Dilakukan Setelah Bersih
  1. Ganti SEMUA password — FTP, database, admin WordPress/Moodle, cPanel
  2. Update semua plugin & CMS — terutama plugin pihak ketiga
  3. Cek user admin palsu — hacker sering buat akun admin baru
  4. Install security plugin — Wordfence untuk WordPress
  5. Audit akses FTP — hapus akun FTP yang tidak perlu

Studi Kasus: 24 Webshell dalam Satu Hosting

Dalam penanganan insiden baru-baru ini, kami menemukan pola yang sama: satu plugin vulnerable menyebabkan 24 webshell tersebar di 18 website. Total ~37 MB malware dibersihkan dalam waktu kurang dari 24 jam.

Bedanya dengan panduan di atas: kami menggunakan script otomatis untuk scan, delete, dan verifikasi — karena melakukannya manual untuk 24 direktori akan memakan waktu berjam-jam.

📖 Baca juga: Satu Plugin Bobolkan 18 Website
🏢 Kenapa Shared Hosting Bahaya untuk Multi-Site

Website Anda pernah kena hack? Atau ingin audit keamanan?

Kami bantu bersihkan dan amankan — dari 1 website hingga 1 akun hosting penuh.

Baca case study selengkapnya →