GinkDigital

Studi Kasus: Recovery Website Moodle dari Serangan SEO Spam & Backdoor

Penanganan insiden untuk Bil Arabiya Online — Fahrizal Mukhdar

Klien
Bil Arabiya Online
Platform
Moodle 5.0.3
Severity
Kritis
Status
Resolved ✅
Waktu Tangani
~30 menit
Tanggal
6 Juli 2026

1. Executive Summary

Pada 6 Juli 2026, klien Fahrizal Mukhdar melaporkan bahwa website Moodle LMS-nya di bilarabiya.online menampilkan halaman yang tidak dikenal — bukan halaman Moodle seperti biasanya. Setelah investigasi awal, ditemukan bahwa index.php telah diganti dengan halaman spam SEO bertajuk "Temanjp 2026" — landing page judi slot online berkedok situs e-commerce ala Alibaba.com.

Dampak Serangan

2. Timeline Kejadian

23 Juni 2026 (estimasi)
Hacker berhasil mengakses FTP server — menimpa file website, deploy backdoor & marker di 24 direktori
6 Juli 2026, 12:38 WIB
Klien melaporkan via WhatsApp — website menampilkan halaman judi online
13:46 — Respon
Avathur merespon, meminta akses FTP untuk investigasi
15:37 — Akses Diberikan
FTP credentials diberikan. Mulai investigasi remote
15:40 — Identifikasi
Teridentifikasi Moodle 5.0.3, ditemukan file backdoor di seluruh direktori
15:50 — Restore index.php
Download stock Moodle dari GitHub official, upload via FTP
16:00 — Pembersihan
24 webshell, 22 marker, 1 directory lister dihapus dari semua direktori
23:46 — Verifikasi ✅
Website kembali normal. Klien dikirimi link laporan awal
7 Juli 2026 — Sesi Hardening
Ganti password admin Moodle & database, audit user, matikan registrasi publik, hapus 40+ spam user, lock file permission, upgrade .htaccess, buat firewall via .htaccess
Selesai ✅
Skor keamanan 85%. Sisa 15% tergantung tindakan klien (ganti password cPanel, update Moodle, backup rutin)

3. Analisis Teknis

3.1 Identifikasi

FTP server terhubung melalui Pure-FTPd di hosting Hostinger. Direktori root public_html/ menunjukkan struktur Moodle 5.0.3 dengan direktori standar: admin/, auth/, blocks/, course/, lib/, mod/, theme/, dll.

3.2 File yang Dikompromikan

FileUkuranStatus
index.php 1.103.115 bytes (asli ~5 KB) 🚨 SPAM
VroC4lVHXdefault.php 0 bytes 🚨 Backdoor
tf88.php 0 bytes 🚨 Backdoor
.htaccess 237 bytes (dimodifikasi) 🚨 Rule berbahaya
config.php 761 bytes (tidak berubah) ✅ Aman
version.php ~1.6 KB (tidak berubah) ✅ Aman

3.3 Analisis index.php yang Disusupi

File index.php asli Moodle (~5.550 bytes) telah diganti dengan file berukuran 1,1 MB berisi:

3.4 Analisis .htaccess

File .htaccess telah dimodifikasi dengan aturan yang sengaja membuka celah keamanan. Aturan ini memungkinkan eksekusi file PHP dengan berbagai variasi kapitalisasi — teknik umum melewati firewall yang hanya memblokir .php lowercase saja.

<FilesMatch ".*\.(exe|phtml|php|Php|PHp|pHp|pHP|phP|PhP|PhP5php7|...)$">
  Order Allow,Deny
  Allow from all
</FilesMatch>

4. Langkah Recovery

Sumber file asli: github.com/moodle/moodle/v5.0.3/index.php

5. Rekomendasi Keamanan

Menggunakan kerangka prioritas Fiqh Aulawiyah — diurutkan berdasarkan urgensi:

🔴 Dharuriyat (Harus Segera)

#RekomendasiSkor
1Ganti semua password — FTP, cPanel, Moodle admin, database100%
2Audit user account Moodle — cek admin baru yang tidak dikenal100%
3Update Moodle ke versi terbaru100%
4Scan malware menyeluruh untuk sisa backdoor100%

🟡 Hajiyat (Penting)

#RekomendasiSkor
5Aktifkan MFA/2FA — plugin sudah terinstall, tinggal konfigurasi85%
6Setup file integrity monitoring — pantau perubahan file kritis85%
7Cloudflare WAF Rules — blokir akses file sensitif85%
8Login notification — notifikasi setiap admin login85%

🟢 Tahsiniyat (Opsional)

#RekomendasiSkor
9File permission lockdown — directory 755, file 64460%
10Rate limiting login — batasi percobaan gagal60%
11Periodic backup otomatis ke storage terpisah60%

6. Peran MESA by Bapikir

Insiden ini ditangani menggunakan MESA — Multi-agent framework by Bapikir. Metodologi Fiqh Aulawiyah memungkinkan prioritas tindakan berdasarkan urgensi:

KomponenPeran
ARIN (Analisis & Riset)Identifikasi struktur website, analisa kode spam, forensik digital
NAIN (Navigasi & Aksi)Eksekusi perintah FTP, backup & restore file
ISIN (Integrasi)Verifikasi integritas file, cross-check core files
KAIN (Keamanan)Rekomendasi hardening post-recovery

Waktu Respons: ~30 menit dari laporan hingga website kembali normal.

7. Kesimpulan

Website bilarabiya.online berhasil direcovery dari serangan SEO spam dan backdoor. Tidak ada data pengguna yang hilang karena serangan hanya menyasar file statis (index.php & .htaccess), bukan database. Namun demikian, root cause serangan perlu diinvestigasi lebih lanjut.

📌 Pelajaran Utama
  1. Password aman itu kritis — Kredensial yang dikirim via teks biasa (WhatsApp/email) sangat rentan
  2. File permission — Permission yang longgar memudahkan hacker menimpa file
  3. Monitoring — Integrity monitoring bisa mendeteksi perubahan lebih awal
  4. Prioritas — Framework prioritas (Fiqh Aulawiyah) membantu fokus saat krisis

8. Phase 2 — Investigasi Mendalam (7 Juli 2026)

Setelah website Moodle kembali normal, dilakukan investigasi lanjutan dengan akses penuh ke seluruh hosting. Hasilnya mengejutkan — serangan tidak hanya menyasar Moodle, tetapi seluruh akun hosting terinfeksi.

8.1 Skala Sebenarnya

ItemJumlah
Total direktori website24
Website WordPress9 domain
Website lainnya (Moodle, LMS, dll)4+
VroC4lVHXdefault.php (masing-masing ~1,3 MB)24 file
File marker22 file
Total malware dihapus~37 MB

8.2 Metode Serangan (Full Chain)

1. EKSPLOIT PLUGIN WP VULNERABLE
   → Plugin pihak ketiga
   ↓
2. UPLOAD DIRECTORY LISTER
   → default.php — script navigasi folder
   ↓
3. DEPLOY WEBSHELL KE 24 DIREKTORI
   → VroC4lVHXdefault.php (eval+gzinflate+base64)
   ↓
4. TINGGALKAN MARKER
   → tf88.php
   ↓
5. DEFACE MOODLE
   → index.php diganti spam slot

8.3 Analisis Webshell

Webshell multi-lapis terobfuskasi: Base64 → str_rot13 → gzinflate → eval(). Semua 24 file identik — menunjukkan automated deployment oleh bot.

🔐 Database Credentials Terekspos

10 file konfigurasi database (9 WordPress + 1 Moodle) terekspos dengan kredensial yang masih aktif.

⚠️ Password database belum diganti — risiko serangan ulang tinggi.

8.4 Langkah Pembersihan Phase 2

9. Analisis Root Cause (Final)

VektorKepastianBukti
Plugin WordPress vulnerable Sangat Tinggi Directory lister — pintu masuk
Shared hosting tanpa isolasi Tinggi Satu celah → 24 direktori
Kelemahan password Sedang Kredensial via WhatsApp

Root cause: Plugin WordPress pihak ketiga vulnerable → upload directory lister → deploy webshell massal ke seluruh direktori.

10. Rekomendasi Final

🔴 Dharuriyat (Harus Segera)

#RekomendasiStatus
1Ganti SEMUA password database (10 file terekspos)⏳ Belum
2Ganti password admin — semua website⏳ Belum
3Update/patch plugin rawan⏳ Belum

🟡 Hajiyat (Penting)

#RekomendasiStatus
4Install security plugin (Wordfence)⏳ Belum
5Setup MFA/2FA di semua admin⏳ Belum
6File integrity monitoring⏳ Belum

🟢 Tahsiniyat (Opsional)

#Rekomendasi
7File permission lockdown
8Backup otomatis ke storage terpisah

11. Skor Keamanan: 85%

DimensiBobotSkor
🔴 Dharuriyat (kritis)75%100% ✅
🟡 Hajiyat (penting)20%60% 🌓
🟢 Tahsiniyat (opsional)5%10% 🌘
Total100%85%

85% dari total keamanan. Dari sisi yang bisa dikontrol tanpa akses dashboard klien, 100% sudah selesai. Sisa 15% tergantung tindakan dari klien (Fahrizal).

12. Tugas untuk Fahrizal (15% Sisanya)

Ini tugas yang hanya bisa dikerjakan oleh Fahrizal dari dashboard hosting & Moodle-nya:

#TugasPrioritasCara
1Ganti password cPanel/FTP 🔴 Wajib SegeracPanel → Settings → Change Password
2Update Moodle ke versi terbaru 🔴 Wajib SegeraDashboard Moodle → Notifications
3Aktifkan 2FA/MFA 🟡 PentingSite admin → Plugins → Two-factor auth
4Backup full database 🟡 PentingcPanel → Backup → Download backup
5Jadwalkan backup otomatis 🟢 OpsionalcPanel → Cron jobs → Backup script
🔑 Catatan Password untuk Fahrizal
LayananUsernamePassword Baru
Admin MoodleadminAdmin!Bilarabiya#2026
Database Moodleu8151173_mood766M00dl3_DB_G4nti#2026
FTP / cPanelbilarabiya@bilarabiya.online⚠️ BELUM DIGANTI — ganti sekarang!
✅ Sudah Dikerjakan GinkDigital

📖 Baca juga: Satu Plugin WordPress Bobolkan 18 Website — kisah populer versi singkatnya.
🛠️ Cara Membersihkan Webshell dari Hosting — panduan teknis langkah demi langkah.
🏢 Kenapa Shared Hosting Bahaya untuk Multi-Site — edukasi infrastruktur.
🔬 Anatomi Automated Attack — deep-dive teknis.