HomeWeb dan Cyber SecuritySkrip Bash atau PHP untuk melakukan audit dan pembersihan otomatis 

Skrip Bash atau PHP untuk melakukan audit dan pembersihan otomatis 

Artikel ini akan menjelaskan bagaimana memeriksa infeksi skrip pemulihan otomatis (self-healing / auto-recovery) pada berkas wp-config.php dan index.php membutuhkan pendekatan analitis berbasis perbedaan struktur berkas (diffing), pemeriksaan hook eksekusi dini, serta pelacak manipulasi berkas secara real-time.

Berikut adalah panduan teknis langkah demi langkah untuk melakukan audit dan memastikan kedua berkas utama tersebut bersih.

1. Indikator Khas Infeksi pada wp-config.php & index.php

Skrip pemulihan otomatis WordPress Must Use Plugin Stealth Malware umumnya menyuntikkan kode tepat di baris paling atas (sebelum <?php atau tepat setelah <?php) agar berjalan sebelum sistem WordPress memuat plugin pertahanan.

Cari pola-pola kode mencurigakan berikut:

  • Pemuatan Berkas Tersembunyi (Auto-include):PHP@include_once('/path/to/hidden/backdoor.php'); // atau menggunakan require/file_get_contents dengan base64
  • Penggunaan Fungsi Obfuskasi Dini: Fungsi seperti eval(), base64_decode(), gzuncompress(), atau dekoder substitusi abjad kustom yang dipanggil sebelum konstanta WordPress didefinisikan.
  • Registrasi Shutdown Function:PHPregister_shutdown_function('recreate_malware_file'); Malware menyuntikkan skrip ini agar saat proses PHP berakhir, ia memeriksa dan membuat ulang berkas mu-plugins jika dihapus.
  • Modifikasi Timestamp: Tanggal modifikasi berkas (mtime) terlihat baru atau justru dimanipulasi agar tampak lama (touch attack).

2. Cara Memeriksa Berkas wp-config.php

wp-config.php adalah berkas konfigurasi sensitif. Struktur resminya tidak pernah memuat perintah include, require, atau hook fungsi dari direktori luar.

Langkah A: Bandingkan dengan wp-config-sample.php

Jalankan perintah diff di terminal (SSH/CLI) untuk membandingkan struktur wp-config.php Anda dengan sampel standar WordPress:

Bash

diff -u wp-config-sample.php wp-config.php

Yang Harus Diperiksa:

  1. Atas Berkas (Baris Pertama): Pastikan baris 1 dimulai dengan <?php. Jika ada teks terenkripsi, baris kosong yang sangat panjang, atau kode heksadesimal sebelum <?php, berkas tersebut dipastikan terinfeksi.
  2. Sebelum require_once ABSPATH . 'wp-settings.php';: Semua opsi resmi WordPress diletakkan di atas baris wp-settings.php. Jika ada fungsi kustom PHP yang didefinisikan di sekitar baris ini (terutama yang menyentuh direktori wp-content/mu-plugins), itu adalah skrip self-healing.

3. Cara Memeriksa Berkas index.php (Root & Theme)

Berkas index.php resmi di direktori utama (root) WordPress hanya berisi 17 baris kode standar.

Tampilan index.php Asli WordPress:

PHP

<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to display the loaded page.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define( 'WP_USE_THEMES', true );

/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';

Cara Memeriksa Singkat Lewat CLI:

  1. Cek Jumlah Baris Berkas index.php:Bashwc -l index.php Jika hasilnya jauh melebihi 20 baris, berkas tersebut hampir dipastikan telah disuntikkan skrip malware.
  2. Periksa Adanya Eksekusi Obfuskasi:Bashgrep -E "eval|base64|gzinflate|assert|str_rot13|include|require" index.php Berkas index.php asli hanya menggunakan satu perintah require untuk wp-blog-header.php.

4. Perintah Bash CLI untuk Memindai Infeksi Otomatis

Jalankan perintah gabungan ini di root direktori WordPress Anda untuk memindai tanda-tanda injeksi pada kedua berkas sekaligus:

Bash

grep -RnE "(\@?include|\@?require|eval|base64_decode|register_shutdown_function|show_advanced_plugins)" wp-config.php index.php

Hasil Normal: Hanya akan menampilkan baris require __DIR__ . '/wp-blog-header.php'; pada index.php dan require_once ABSPATH . 'wp-settings.php'; pada wp-config.php. Selebihnya menandakan adanya injeksi malware.

5. Langkah Pemulihan Jika Terinfeksi

  1. Ganti Berkas index.php secara Total: Jangan mencoba mengedit atau membersihkan index.php. Timpa (overwrite) langsung berkas index.php dengan berkas bersih dari repositori resmi WordPress (fresh WordPress download).
  2. Bersihkan wp-config.php secara Manual:
    • Buka wp-config.php.
    • Hapus semua kode asing di luar variabel DB_NAME, DB_USER, DB_PASSWORD, DB_HOST, keys/salts, dan $table_prefix.
    • Simpan berkas.
  3. Setel Izin Akses Berkas (File Permissions): Batasi izin tulis (write permission) pada wp-config.php agar skrip self-healing tidak dapat mengubahnya kembali:Bashchmod 440 wp-config.php # atau chmod 400 wp-config.php
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -
Google search engine

Most Popular

Recent Comments