Website WordPress yang dikelola secara mandiri di VPS memberikan fleksibilitas tinggi dalam pengelolaan server, performa, dan keamanan. Namun di sisi lain, kebebasan tersebut juga menghadirkan tanggung jawab besar bagi administrator untuk menjaga integritas sistem.
Salah satu insiden yang semakin sering ditemukan dalam beberapa tahun terakhir adalah munculnya fake CAPTCHA atau ClickFix Malware Campaign pada website WordPress yang telah terkompromi. Pada pandangan pertama, masalah ini terlihat seperti gangguan tampilan biasa. Namun setelah ditelusuri lebih dalam, ternyata fake CAPTCHA merupakan bagian dari rantai serangan yang jauh lebih serius.
Dalam studi kasus ini, sebuah website WordPress yang berjalan pada VPS Ubuntu mengalami gejala berupa:
- Munculnya CAPTCHA palsu pada halaman utama website.
- Pengunjung diarahkan untuk menjalankan perintah tertentu pada sistem Windows.
- Terdapat script JavaScript mencurigakan yang disisipkan ke dalam halaman website.
- Ditemukannya beberapa file backdoor dan webshell tersembunyi.
- Website tetap berjalan normal di area administrasi WordPress.
Artikel ini membahas proses investigasi secara lengkap dengan menyamarkan seluruh informasi sensitif seperti nama domain, alamat IP, kredensial, dan informasi internal server.
Memahami Gejala Awal
Fake CAPTCHA yang Muncul di Halaman Depan
Gejala pertama yang terlihat adalah munculnya halaman verifikasi palsu yang meminta pengguna:
- Menekan tombol Windows + R
- Menjalankan perintah tertentu
- Menyalin script dari clipboard
- Menjalankan command yang mengarah ke server eksternal
Secara teknis, ini bukan CAPTCHA sungguhan.
Tujuan utamanya adalah:
- Mengelabui pengguna
- Menjalankan malware pada komputer korban
- Menginstal infostealer
- Mencuri cookie browser
- Mengambil kredensial akun
Jenis serangan ini dikenal luas sebagai:
- ClickFix Attack
- Fake CAPTCHA Campaign
- Social Engineering Malware Delivery
Analisis Awal
Indikasi Bahwa WordPress Telah Terkompromi
Investigasi menemukan beberapa fakta penting:
Dashboard WordPress Normal
Area:
/wp-admin
/wp-login.php
masih dapat diakses secara normal.
Ini menunjukkan bahwa:
- Database masih berfungsi.
- Core WordPress masih berjalan.
- Malware tidak memblokir seluruh website.
Hanya Homepage yang Terpengaruh
Ketika homepage diperiksa menggunakan:
curl -s https://domain-sanitized.tld
ditemukan script mencurigakan berupa:
<script src="data:text/javascript;base64,..."></script>
Keberadaan script semacam ini tidak normal pada WordPress standar.
Tahapan Investigasi
1. Mencari Domain Berbahaya
Pencarian dilakukan terhadap seluruh direktori website menggunakan:
grep -R "keyword_malware" .
Hasil awal tidak menemukan sumber injeksi secara langsung.
Ini menunjukkan bahwa malware kemungkinan:
- Disembunyikan menggunakan obfuscation.
- Menggunakan base64 encoding.
- Memuat payload secara dinamis.
2. Pemeriksaan File Mencurigakan
Pemeriksaan menemukan file PHP mencurigakan di lokasi yang tidak lazim.
Contohnya:
wp-content/themes/[theme]/images/widgets/index.php
wp-content/themes/[theme]/Backup/index.php
Folder seperti:
images/
widgets/
Backup/
secara normal tidak membutuhkan file PHP obfuscated.
3. Ditemukan Webshell Aktif
Analisis isi file menunjukkan adanya fungsi seperti:
base64_decode()
eval()
curl_setopt()
mysqli_query()
unlink()
chmod()
rename()
Selain itu ditemukan fitur:
- File Manager
- Upload File
- SQL Console
- Remote Access
- Download File
Temuan tersebut merupakan indikator kuat keberadaan webshell.
Mengapa Fake CAPTCHA Tetap Muncul Setelah Webshell Dihapus?
Inilah bagian paling menarik dari investigasi.
Setelah webshell berhasil dihapus:
Fake CAPTCHA masih muncul
Artinya:
Webshell bukan sumber utama tampilan CAPTCHA.
Webshell hanyalah alat yang digunakan penyerang untuk mempertahankan akses ke server.
Menelusuri Script Berbahaya
Analisis Source HTML
Dilakukan inspeksi menggunakan:
curl -s https://domain-sanitized.tld
Hasil menunjukkan adanya:
<script src="data:text/javascript;base64,..."></script>
Script tersebut muncul tepat di bagian:
<meta name="generator" content="WordPress">
dan sebelum:
<meta name="generator" content="Elementor">
Ini memberikan petunjuk bahwa malware menyisipkan payload pada area:
wp_head()
Menemukan Akar Masalah Sebenarnya
Analisis Payload Base64
Setelah dilakukan decoding terhadap payload JavaScript, ditemukan indikator:
bsc-testnet-rpc.publicnode.com
eval(atob())
String tersebut kemudian digunakan sebagai indikator pencarian.
Pencarian dilakukan dengan:
grep -R "indikator_unik" .
Sumber Injeksi Berhasil Ditemukan
Hasil investigasi mengarah ke sebuah plugin tidak dikenal yang tersimpan di direktori:
wp-content/plugins/[plugin_malware]/
Di dalam file utama plugin ditemukan kode:
add_action('wp_head', 'fungsi_berbahaya');
yang melakukan:
echo '<script src="data:text/javascript;base64,...">';
Dengan kata lain:
Plugin inilah yang menyisipkan fake CAPTCHA ke setiap halaman website.
Bagaimana Malware Ini Bekerja?
Secara sederhana alurnya:
Pengunjung membuka website
↓
Plugin malware aktif
↓
Hook ke wp_head()
↓
Menyisipkan script base64
↓
Browser menjalankan JavaScript
↓
Muncul Fake CAPTCHA
↓
Korban diarahkan menjalankan command
↓
Malware terinstal pada komputer korban
Penyebab Website Bisa Terinfeksi
Berdasarkan pola yang ditemukan, kemungkinan sumber infeksi meliputi:
Plugin Rentan
Plugin lama yang tidak diperbarui dapat menjadi titik masuk penyerang.
File Manager Plugin
Plugin pengelola file sering menjadi target karena memberikan akses langsung ke sistem file.
Kredensial Bocor
Password administrator yang lemah atau bocor dapat dimanfaatkan untuk mengunggah plugin berbahaya.
Backdoor Lama
Situs yang pernah terinfeksi sebelumnya sering kali masih menyimpan backdoor tersembunyi.
Langkah Pemulihan yang Dilakukan
Menghapus Plugin Malware
Plugin berbahaya dikarantina dan dihapus.
Membersihkan Webshell
Semua file PHP mencurigakan diperiksa dan dibersihkan.
Verifikasi HTML
Pemeriksaan ulang dilakukan menggunakan:
curl -s https://domain-sanitized.tld | grep "data:text/javascript"
Hasil:
Tidak ada output
Ini menandakan payload berhasil dihapus.
Best Practice Setelah Pembersihan
Update Seluruh Komponen
- WordPress Core
- Plugin
- Tema
Audit Direktori Uploads
Pastikan tidak ada file:
.php
.phtml
.phar
di folder upload.
Hapus Plugin Tidak Digunakan
Semakin banyak plugin, semakin besar permukaan serangan.
Gunakan Firewall Aplikasi
Contoh:
- Wordfence
- Shield Security
- Imunify360
Aktifkan Backup Otomatis
Minimal:
- Harian
- Mingguan
- Bulanan
Kesalahan yang Sering Terjadi
Hanya Menghapus Gejala
Menghapus CAPTCHA tanpa mencari sumber malware.
Dampak
Malware akan kembali muncul.
Tidak Mengganti Password
Setelah kompromi terjadi, seluruh kredensial harus dianggap tidak aman.
Dampak
Penyerang dapat masuk kembali.
Tidak Memeriksa Backdoor
Webshell sering kali tersebar di beberapa lokasi.
Dampak
Infeksi berulang.
Tips dan Rekomendasi
- Lakukan audit keamanan berkala.
- Nonaktifkan plugin yang tidak digunakan.
- Gunakan prinsip least privilege.
- Pantau log web server.
- Gunakan WAF.
- Verifikasi checksum WordPress secara rutin.
- Blokir eksekusi PHP pada folder uploads.
- Terapkan backup offsite.

Kesimpulan
Kasus fake CAPTCHA pada website WordPress ini menunjukkan bahwa serangan modern tidak selalu menyerang melalui cara yang terlihat jelas.
Awalnya gejala hanya berupa CAPTCHA palsu pada halaman depan. Namun investigasi mendalam berhasil mengungkap keberadaan:
- Plugin malware tersembunyi
- Webshell aktif
- Script JavaScript obfuscated
- Mekanisme injeksi melalui hook WordPress
Akar masalah utama bukan pada database, bukan pada WordPress Core, dan bukan pada browser pengunjung. Sumbernya adalah plugin berbahaya yang menyisipkan payload JavaScript melalui hook wp_head().
Setelah plugin malware dihapus dan sistem diverifikasi ulang, website kembali normal dan payload berbahaya tidak lagi muncul pada source HTML.
FAQ
Pertanyaan:
Apa itu fake CAPTCHA pada website?
Jawaban: Fake CAPTCHA adalah tampilan verifikasi palsu yang digunakan untuk mengelabui pengguna agar menjalankan malware.
Pertanyaan:
Apakah fake CAPTCHA berasal dari WordPress Core?
Jawaban: Tidak. Umumnya berasal dari plugin, tema, atau file yang telah disusupi malware.
Pertanyaan:
Mengapa hanya homepage yang terkena?
Jawaban: Karena malware sering memanfaatkan hook frontend seperti wp_head() yang hanya tampil pada halaman publik.
Pertanyaan:
Apa itu webshell?
Jawaban: Webshell adalah script yang memberi akses jarak jauh kepada penyerang untuk mengelola server.
Pertanyaan:
Bagaimana memastikan malware sudah hilang?
Jawaban: Lakukan verifikasi source HTML, audit file, scan malware, dan periksa kembali log server.
Pernah mengalami website WordPress diretas, redirect ke situs asing, muncul iklan misterius, atau menemukan file backdoor yang sulit dilacak? Bagikan pengalaman Anda di kolom komentar agar dapat menjadi pembelajaran bersama.
Jika artikel ini bermanfaat, jangan ragu membagikannya kepada rekan administrator server, pengelola website sekolah, praktisi Linux, maupun sysadmin yang mengelola WordPress di VPS. Jangan lupa juga membaca artikel terkait keamanan WordPress, hardening Linux server, monitoring VPS, dan teknik investigasi malware lainnya untuk meningkatkan keamanan infrastruktur digital Anda.