Cara membersihkan situs web atau blog WordPress yang diretas

Diterbitkan: 2021-02-16

Apakah situs web WordPress Anda telah diretas dan Anda sedang dalam kendali kerusakan, atau apakah Anda sedang bersiap untuk kemungkinan terburuk, artikel ini akan memandu Anda melalui proses pembersihan situs web WordPress yang diretas. Proses ini didokumentasikan dalam format langkah demi langkah yang mudah diikuti untuk membantu Anda mencapai hal berikut:

  • Dapatkan kembali kendali atas situs WordPress Anda
  • Identifikasi kemungkinan sumber infeksi
  • Temukan infeksi & kode berbahaya
  • Hapus semua malware, backdoor, dan web shell
  • Hapus domain Anda dari daftar malware seperti database Google Safe Browsing
  • Mencegah kekambuhan

Apakah situs web WordPress Anda yang diretas benar-benar diretas?

Situs WordPress yang diretas

Terkadang cukup jelas ketika situs WordPress telah diretas, misalnya, jika situs web Anda telah dirusak. Dalam kasus lain, mungkin tidak begitu jelas. Sebelum memulai proses pembersihan WordPress, konfirmasikan bahwa situs web WordPress Anda benar-benar telah diretas, dan ini bukan masalah teknis yang tidak terkait. Baca artikel cara memeriksa apakah WordPress saya diretas untuk menentukan apakah situs web atau blog Anda diretas atau tidak.

Dapatkan kembali kendali

Mendapatkan kembali kontrol dimulai tergantung pada seberapa banyak akses yang mungkin hilang akibat serangan. Misalnya, setelah mendapatkan akses ke server, penyerang dapat merotasi kredensial untuk mengunci pengguna yang sah agar tidak mengakses server, atau mungkin mereka mengubah kata sandi admin WordPress untuk mencegah admin WordPress masuk.

Meskipun ini akan sangat bergantung pada pengaturan Anda, penyedia hosting Anda kemungkinan besar akan dapat membantu memulihkan akses ke lingkungan hosting bersama atau Server Pribadi Virtual (VPS) yang menjalankan situs web Anda. Jika Anda kehilangan akses ke admin WordPress, ikuti panduan resmi WordPress tentang mengatur ulang kata sandi admin Anda.

Mengambil cadangan

Bahkan jika Anda memiliki solusi pencadangan WordPress, buat cadangan situs web WordPress saat ini. Mengambil cadangan WordPress pada tahap ini sangat penting karena sejumlah alasan, termasuk berikut ini.

  • Cadangan memungkinkan Anda untuk menganalisis infeksi pada tahap selanjutnya,
  • Beberapa penyedia hosting mungkin akan menghapus situs web yang diretas sebagai tindakan pencegahan untuk mencegah penyebaran malware atau spam — tergantung pada penyedia hosting Anda, hal ini dapat terjadi tanpa peringatan,
  • Jika saat ini Anda tidak memiliki strategi pencadangan, Anda mungkin dapat menyelamatkan beberapa konten situs web dari pencadangan ini sebelum keadaan menjadi lebih buruk.

Selain itu, jika Anda menjalankan WordPress di Virtual Private Server (VPS), pertimbangkan untuk mengambil snapshot dari seluruh mesin virtual jika memungkinkan (ingat bahwa ini biasanya terkait dengan biaya tambahan). Saat mengambil snapshot, ingatlah bahwa jika Anda menggunakan volume eksternal apa pun untuk meng-host instalasi WordPress Anda (mis. penyimpanan yang terpasang ke jaringan), Anda juga harus mengambil salinan volume apa pun yang menyimpan instalasi WordPress utama, wp-content , database MySQL Anda , serta akses server web dan log kesalahan.

Memulihkan dari cadangan

Jika Anda memiliki strategi cadangan, sekaranglah saatnya untuk menerapkannya. Dengan asumsi Anda memiliki akses ke cadangan terbaru, memulihkan mungkin merupakan cara tercepat untuk membuat diri Anda kembali online – namun jangan salah, sementara memulihkan dari cadangan situs WordPress Anda dapat menghapus infeksi dan memungkinkan Anda untuk beroperasi kembali, itu tidak memecahkan mengapa Anda diretas di tempat pertama.

Jika situs web WordPress Anda diretas sebagai akibat dari kerentanan yang dieksploitasi atau kelemahan keamanan, ini adalah langkah penting berikutnya untuk berusaha keras mencari tahu apa yang terjadi (jika mungkin).

Bagaimana jika saya tidak memiliki cadangan, atau saya tidak berhasil memulihkan cadangan saya?

Jika Anda tidak memiliki cadangan yang dapat Anda pulihkan dengan sukses, tergantung pada beratnya situasi Anda mungkin ingin menempatkan situs web WordPress Anda ke mode pemeliharaan untuk memungkinkan Anda bekerja memulihkan situs Anda sambil memberi tahu pengunjung bahwa mereka harus memeriksa kembali nanti. Sementara itu, lanjutkan mengikuti sisa panduan ini. Dengan menempatkan situs web Anda dalam mode pemeliharaan, melalui penggunaan wp_maintenance() 1 fungsi, WordPress akan mengembalikan kode status HTTP 503. Status 503 menunjukkan kepada Google dan perayap lain bahwa ada yang tidak beres pada laman, dan mereka harus memeriksanya kembali nanti.

Respons HTTP 503 penting untuk SEO karena akan mencegah kerusakan pada peringkat pencarian Anda jika situs web Anda sedang down sementara. Untuk informasi lebih lanjut tentang kode status HTTP 503 dan pentingnya dalam SEO, lihat artikel Yoast tentang topik tersebut.

Identifikasi bagaimana WordPress diretas

Setelah situs Anda dicadangkan, agenda berikutnya adalah mencari tahu sebanyak mungkin tentang apa yang terjadi, yaitu kelemahan keamanan mana yang dimanfaatkan penyerang untuk mendapatkan akses ke instalasi WordPress Anda.

Memeriksa log aktivitas, server web, dan log server FTP

Jika Anda menyimpan log aktivitas WordPress, ini mungkin tempat terbaik untuk memulai analisis Anda. Lihat apakah Anda dapat mengidentifikasi perilaku yang mencurigakan. Cari peristiwa pengguna yang baru dibuat, atau perubahan kata sandi pengguna. Periksa juga apakah ada file WordPress, plugin, atau tema yang dimodifikasi.

Anda juga harus melihat server web, server FTP, dan file log sistem operasi untuk mencari perilaku yang tidak biasa atau mencurigakan. Meskipun ini mungkin merupakan proses yang luar biasa, Anda akan ingin memulai dengan memeriksa apakah ada lalu lintas aneh yang berasal dari satu alamat IP. Anda dapat melakukan ini menggunakan berbagai skrip shell utilitas dan satu liner. Untuk tampilan real-time pada log server web Anda, GoAccess mungkin berguna.

Plugin dan tema WordPress yang tidak digunakan dan ketinggalan zaman

Periksa daftar plugin yang diinstal, baik dari dashboard WordPress maupun di direktori /wp-content/plugins/ . Apakah semua plugin WordPress digunakan? Apakah mereka semua mutakhir? Periksa tema dan direktori tema /wp-content/themes/ juga. Anda seharusnya hanya menginstal satu tema, tema yang Anda gunakan. Jika Anda menggunakan tema anak, Anda akan memiliki dua direktori.

Kode dan instalasi WordPress yang tidak digunakan

Kode yang tersisa dan tidak digunakan adalah masalah umum lainnya. Terkadang pengembang dan sysadmin memperbarui file langsung di server dan membuat cadangan file asli dengan ekstensi seperti .old , .orig , atau .bak . Penyerang sering memanfaatkan praktik buruk ini dan alat untuk mencari file cadangan seperti itu tersedia secara luas dan tersedia.

Cara kerjanya adalah dengan penyerang yang mencoba mengakses file seperti index.php.old . Biasanya, file .php dikonfigurasi untuk dieksekusi oleh interpreter PHP, tetapi dengan menambahkan ekstensi .lama (atau lainnya) ke akhir file menyebabkan server web menyajikan file tersebut kepada pengguna. Dengan hanya menebak nama file cadangan, penyerang mungkin dapat mengunduh kode sumber yang mungkin berisi informasi sensitif, atau memberikan petunjuk kepada penyerang tentang apa yang harus dieksploitasi.

Masalah serupa adalah mempertahankan instalasi lama WordPress. Ketika sysadmin membangun kembali situs web mereka, terkadang mereka meninggalkan salinan instalasi WordPress lama di subdirektori /old/ . Instalasi lama WordPress ini biasanya masih dapat diakses melalui internet, dan oleh karena itu menjadi target yang menarik bagi penyerang untuk mengeksploitasi kerentanan yang diketahui di WordPress versi lama bersama dengan plugin apa pun.

Disarankan untuk menghapus kode yang tidak digunakan, instalasi WordPress, plugin WordPress, tema WordPress, dan file lama atau tidak terpakai lainnya (ingat bahwa Anda selalu dapat beralih ke cadangan jika perlu memulihkan sesuatu yang tidak sengaja terhapus). Situs web Anda seharusnya hanya berisi file yang Anda butuhkan. Apa pun yang ekstra atau tidak digunakan harus diperlakukan sebagai permukaan serangan tambahan.

Pengguna dan peran WordPress

Verifikasi bahwa semua pengguna WordPress digunakan. Apakah ada yang baru yang mencurigakan? Periksa apakah semua peran utuh. Jika Anda mengikuti pedoman pengguna dan peran WordPress, Anda seharusnya hanya memiliki satu pengguna dengan peran administrator WordPress.

Penyedia hosting bersama

Jika WordPress Anda berjalan di penyedia hosting bersama, sumber peretasan bisa jadi adalah situs web lain yang kebetulan berjalan di server yang sama dengan milik Anda. Dalam hal ini, skenario yang paling mungkin adalah penyerang akan berhasil meningkatkan hak istimewa mereka. Kemudian sebagai konsekuensinya, dapatkan akses ke seluruh server, dan pada gilirannya ke situs WordPress Anda. Jika Anda menduga serangan seperti itu terjadi, jalan terbaik adalah segera menghubungi penyedia hosting Anda, setelah mencadangkan situs web Anda.

.htaccess file

File .htaccess (file konfigurasi Apache HTTP Server tingkat direktori) juga merupakan target umum bagi peretas. Mereka biasanya digunakan untuk mengarahkan pengguna ke spam, phishing, atau situs web berbahaya lainnya. Periksa semua file .htaccess di server Anda, bahkan yang tidak digunakan oleh WordPress. Beberapa pengalihan mungkin sulit dikenali.

Berikan perhatian khusus pada konfigurasi yang mengalihkan permintaan HTTP berdasarkan string Agen Pengguna tertentu—penyerang mungkin menargetkan perangkat tertentu (misalnya pengguna seluler), atau bahkan terlibat dalam SEO topi hitam dengan mengonfigurasi server web Anda untuk merespons secara berbeda terhadap perayap mesin telusur.

Jika memungkinkan, pertimbangkan untuk mengadopsi konfigurasi global daripada mengandalkan file .htaccess dalam Apache HTTP Server. File .htaccess tidak hanya menurunkan kinerja, tetapi juga membuka situs web WordPress Anda hingga berbagai kerentanan keamanan jika penyerang berada dalam posisi untuk membaca, atau yang terburuk, menulis konten file ini. Sesuai dengan dokumentasi Apache HTTP Server 2 , penggunaan file .htaccess dapat dinonaktifkan sepenuhnya dengan menyetel direktif AllowOverride ke none di file httpd.conf utama.

Memeriksa titik entri lainnya

Ada beberapa poin entri lain di server web. Pastikan Anda memeriksa semuanya, seperti server FTP, SSH, server web, dll.

Temukan infeksi WordPress dan kode berbahaya

Sebelum Anda Mulai : Peretasan WordPress biasanya melibatkan penyisipan kode dalam tema WordPress, plugin, atau file inti. Oleh karena itu, untuk melanjutkan pembersihan, Anda harus nyaman dengan memodifikasi kode. Jika tidak, pekerjakan profesional keamanan WordPress.

Setelah Anda mengidentifikasi titik masuk peretas, biasanya relatif mudah untuk menemukan infeksi. Meskipun untuk berjaga-jaga jika Anda belum menemukan infeksi, ada beberapa metode yang dapat Anda gunakan untuk menemukan infeksi. Berikut adalah beberapa.

Memeriksa file mana yang dimodifikasi dalam beberapa hari terakhir

Idealnya, Anda harus menggunakan plugin pemantau file WordPress yang memantau file di seluruh instalasi WordPress Anda untuk perubahan dan segera memberi tahu Anda. Jika Anda tidak memiliki plugin File Integrity Monitoring (FIM), Anda harus mencari perubahan file secara manual.

Jika Anda memiliki akses SSH ke server Anda, periksa file mana di situs WordPress Anda yang baru saja diubah. Biasanya, disarankan untuk mulai mencari perubahan dalam lima hari terakhir setelah peretasan diketahui, memperluas pencarian Anda seperlunya. Untuk melakukannya, navigasikan ke direktori tempat situs WordPress Anda berada dan gunakan perintah find.

find .mtime -5 –ls

Perintah di atas mencantumkan (-ls) semua file yang telah dimodifikasi (.mtime) dalam lima hari terakhir (-5). Jika daftar terlalu panjang, gunakan pager yang lebih sedikit untuk menelusuri dan menelusuri daftar dengan lebih mudah.

find .mtime -5 –ls | less

Jika Anda baru saja memperbarui plugin atau tema, semua perubahan file terkait akan muncul di hasil pencarian Anda. Log, file debug juga sering diperbarui, sehingga akan muncul di hasil Anda juga. Akibatnya, Anda mungkin harus melakukan beberapa pemfilteran ekstensif dari hasil untuk menemukan perubahan file yang diinginkan. Perhatikan bahwa plugin khusus seperti plugin WordPress File Changes Monitor untuk WordPress dirancang khusus untuk menghilangkan kesalahan positif tersebut untuk Anda secara otomatis. Plugin ini sengaja dibuat untuk WordPress dan dapat mengidentifikasi perubahan file dari inti WordPress, pembaruan plugin atau tema, menginstal atau menghapus instalasi.

Memeriksa semua file HTML

Di WordPress ada sangat sedikit file HTML dan peretas suka memanfaatkannya. Cari melalui situs web Anda untuk semua file HTML dan analisis kontennya. Pastikan semua file HTML yang Anda miliki di situs web Anda sah, dan Anda tahu untuk apa mereka digunakan.

Cara mudah untuk membuat daftar semua file HTML di direktori WordPress Anda (dan subdirektori) adalah dengan menggunakan perintah berikut.

 
find . -type f -name '*.html' 

Mencari teks infeksi

Jika situs web Anda telah dirusak, atau beberapa teks muncul di situs web Anda sebagai akibat dari infeksi, cari dengan alat grep. Misalnya jika Anda melihat teks "diretas oleh", navigasikan ke direktori root situs web dan jalankan perintah berikut.

grep –Ril "hacked by"

Perintah di atas akan mengembalikan daftar file yang menyertakan konten "diretas oleh". Setelah Anda memiliki daftar file yang terinfeksi, Anda dapat menganalisis kode dan menghapus infeksi.

Apa yang dimaksud dengan sakelar grep?

  • -R menunjukkan grep untuk mencari secara rekursif (mencari melalui seluruh struktur direktori, termasuk semua subdirektori dan tautan simbolik).
  • -i menunjukkan ke grep bahwa pencarian harus peka huruf besar/kecil (yaitu untuk mengabaikan kapitalisasi istilah pencarian). Ini sangat penting di lingkungan Linux/Unix, karena tidak seperti di Windows, sistem file Linux peka huruf besar/kecil.
  • -l menunjukkan kepada grep bahwa itu harus mengembalikan nama file, daripada konten file. Ketika situs WordPress Anda diretas, ini adalah kode berbahaya lainnya yang harus dicari.

Terlepas dari string “diretas oleh” yang jelas, di bawah ini adalah daftar kode dan frasa teks yang biasanya digunakan di situs web WordPress yang diretas. Anda dapat menggunakan alat grep untuk mencari yang berikut:

  • base64_decode
  • is_admin
  • evaluasi
  • gzuncompress
  • lewat
  • eksekutif
  • shell_exec
  • menegaskan
  • str_rot13
  • sistem
  • info php
  • chmod
  • mkdir
  • fopen
  • tutup
  • baca file

Cara cepat untuk mencapai ini menggunakan grep adalah melalui perintah grep berikut yang mencari file secara rekursif (mengikuti tautan simbolis apa pun), mencari string yang cocok dengan ekspresi reguler PCRE yang ditentukan 3 , dan mengembalikan kecocokan teks serta nomor baris tempat kecocokan terjadi.

grep -RPn "(base64_decode|is_admin|eval|gzuncompress|passthru|exec|shell_exec|assert|str_rot13|system|phpinfo|chmod|mkdir|fopen|fclose|readfile) *\("

CATATAN : Beberapa kode ini juga dapat digunakan dalam kode yang sah, jadi analisis kode dengan benar dan pahami cara penggunaannya sebelum menandai sesuatu sebagai infeksi atau peretasan.

Bandingkan file dengan instalasi WordPress asli

Ini adalah metode jadul, dan meskipun agak memakan waktu, ini bekerja dengan sangat baik. Bandingkan file situs web Anda dengan file situs web yang tidak dirusak. Karena itu, jika Anda memiliki salinan cadangan situs web Anda, bandingkan situs web yang dirusak. Jika tidak, instal salinan baru WordPress dan plugin yang Anda miliki di situs web yang terinfeksi di host yang berbeda dan bandingkan.

Ada beberapa alat yang dapat Anda gunakan untuk membandingkan file. Dalam contoh ini, kami menggunakan alat komersial yang disebut Beyond Compare, meskipun ada beberapa alternatif gratis. Di bawah ini adalah beberapa tangkapan layar dari contoh perbandingan.

Saat membandingkan direktori root dari dua situs WordPress, alat ini menyoroti perbedaan dalam konten file index.php , file .htaccess dan wp-config.php baru, dan perbedaan dalam subdirektori.

Membandingkan direktori root dari Dua situs web WordPress

Dengan mengklik dua kali file index.php kita dapat melihat apa perbedaannya.

Index.php yang terinfeksi di situs WordPress

Apa yang harus dicari dalam perbandingan file WordPress?

Cari file yang bukan bagian dari inti WordPress. Sebagian besar infeksi menambahkan file ke root instalasi WordPress atau ke direktori wp-content . Jika peretasan disebabkan oleh plugin yang rentan, file plugin mungkin telah dimodifikasi.

Bersihkan peretasan WordPress

Saatnya untuk mulai membersihkan dengan mengikuti prosedur di bawah ini, setelah Anda mengetahui sumber peretasan WordPress dan menemukan infeksinya.

Menemukan infeksi secara otomatis dengan layanan WordPress

Jika hal di atas tampaknya terlalu banyak untuk ditangani, jangan putus asa. Ada beberapa layanan dan plugin keamanan WordPress yang dapat Anda gunakan untuk memindai situs web Anda dari malware dan infeksi lainnya. Kami merekomendasikan Layanan Keamanan WordPress Malcare.

Namun perhatikan bahwa plugin tersebut memiliki daftar tanda tangan malware yang terbatas yang mereka cari. Dengan demikian, jika serangan yang memengaruhi situs WordPress Anda tidak biasa, plugin ini mungkin gagal mengidentifikasi infeksi. Bukan hal yang aneh bagi kami untuk menerima umpan balik dari administrator WordPress yang situs web WordPress-nya menjadi korban serangan yang tidak diidentifikasi oleh plugin malware WordPress.

Kesimpulannya di sini adalah bahwa kontrol keamanan yang efektif melibatkan beberapa lapisan pertahanan dan deteksi. Meskipun analisis manual hampir selalu merupakan cara terbaik ke depan jika Anda dapat melakukannya; plugin ini juga tidak boleh diremehkan – mereka masih dapat digunakan dan akan berguna di beberapa titik.

Memulihkan WordPress Anda dari cadangan

Jika Anda memiliki cadangan situs web atau blog WordPress Anda, pulihkan. Itu selalu jauh lebih mudah daripada membersihkan kode secara manual.

Mengubah semua kata sandi, menghapus pengguna yang tidak digunakan, dan memverifikasi peran pengguna WordPress

Ubah semua kata sandi semua pengguna dan layanan Anda termasuk WordPress, CPanel, MySQL, FTP, dan komputer pribadi Anda. Periksa daftar pengguna di FTP, WordPress, MySQL, dan layanan lainnya untuk mengonfirmasi bahwa semua pengguna sah. Jika ada pengguna yang tidak lagi digunakan, hapus. Periksa apakah semua pengguna WordPress memiliki peran dan izin yang benar.

Meningkatkan inti WordPress, plugin, tema, dan perangkat lunak lainnya

Pastikan Anda menjalankan versi terbaru dari semua perangkat lunak yang diperlukan untuk menjalankan situs web WordPress Anda. Ini tidak hanya terbatas pada WordPress itu sendiri, tetapi juga meluas ke plugin, tema, serta patch sistem operasi, PHP, MySQL dan server web (misalnya Apache HTTP Server atau Nginx) dan server FTP apa pun yang mungkin Anda jalankan.

Mencadangkan situs WordPress Anda

Cadangan situs web WordPress

Setelah pada tahap ini, sebelum menghapus kode yang terinfeksi, ambil cadangan situs WordPress Anda.

Hapus lansiran perangkat lunak perusak Google Safe Browsing

Peringatan perangkat lunak jahat Google

Jika situs web Anda ditolak oleh Google Safe Browsing, Anda dapat mengajukan permohonan peninjauan keamanan untuk menghapus lansiran.

Setelah Anda menghapus peretasan WordPress…

Proses keamanan WordPress

Selamat, Anda memulihkan situs WordPress Anda dari peretasan. Sekarang Anda harus memastikan bahwa itu tidak terjadi lagi. Berikut adalah beberapa tips tentang apa yang harus Anda lakukan:

  1. Instal plugin log aktivitas WordPress untuk melacak semua yang terjadi di situs WordPress Anda.
  2. Jika Anda tidak memiliki solusi cadangan, dapatkan satu.
  3. Gunakan layanan pemindaian keamanan WordPress.
  4. Putar database dan kata sandi admin, dan paksakan keamanan kata sandi WordPress yang kuat.
  5. Selalu perbarui WordPress, plugin WordPress, tema, dan perangkat lunak lain yang Anda gunakan.
  6. Hapus semua file yang tidak digunakan seperti instalasi WordPress lama, plugin dan tema WordPress yang tidak digunakan (termasuk tema WordPress default yang tidak digunakan). Komponen dan perangkat lunak yang tidak digunakan menambah permukaan serangan yang tidak perlu dan idealnya harus dihapus.
  7. Ikuti panduan pengerasan keamanan WordPress kami untuk memastikan Anda menangani setiap kemungkinan masalah keamanan di situs web Anda.

Referensi yang digunakan dalam artikel ini [ + ]

Referensi yang digunakan dalam artikel ini
1 https://developer.wordpress.org/reference/functions/wp_maintenance/
2 http://httpd.Apache.org/docs/current/howto/htaccess.html#when
3 https://regexr.com/5lpf0