WordPress bị xâm nhập

Tin tặc thích nhắm các website có nhiều độc giả để cài mã độc. Mục đích là sẽ để mã độc xâm nhập vào máy khách để đánh cắp thông tin.
Dấu hiệu ban đầu là có những post, comment lạ…

Cần áp dụng các biện pháp khẩn cấp như:

  1. Quét virus máy tính thường SSH với RPi
  2. Xóa các tài khoản admin lạ
  3. Thay đổi mật khẩu admin thường dùng
  4. Thay đổi mật khẩu email dùng trong wordpress
  5. Thay đổi mật khẩu ftp nếu có dùng
  6. Kiểm tra các file của wordpress bị thay đổi
  7. Xóa tất cả plugin và cài lại
  8. Kiểm tra các file data mới được upload
  9. Kiểm tra các store procedure của CSDL wordpress
  10. Thay đổi mật khẩu user có quyền trên CSDL wordpress
  11. Quét virus web server nếu có thể

Trước hết hãy quét virus máy tính thường SSH với RPi. Máy tính này nếu nhiễm malware thì sẽ là cửa sổ xâm nhập vào RPi. Virus thường dấu mã độc trong phần cache của trình duyệt.
Tiếp theo đăng nhập vào trang admin:

  • Vào phần Users – All Users xem có user lạ nào có quyền admin hay không, nếu có thì xóa
  • Trong phần chẩn đoán sức khỏe Site Health Status (plugin) có mục Tools, tìm đến mục File Integrity để chạy tiện ích Check the File Integrity. Kết quả sẽ cho biết file nào bị thay đổi. Thông thường hacker sẽ thêm một đoạn mã PHP được giấu ở dòng đầu <?php. Đoạn mã này bắt đầu bằng nhiều khoản trắng để đẩy đoạn mã ra khỏi vùng nhìn thấy trên màn hình. Thay file bằng file backup nếu có.
    #->> Một khi thấy file có thay đổi, có thể dùng cách khác triệt để hơn là đổi tên thư mục wordpress đang dùng thành wordpress.old rồi tải về bản wordpress mới từ https://wordpress.org, giải nén vào thư mục www. Sau đó nhớ chép file wp-config.php từ thư mục wordpress.old sang. Ngoài ra còn phải chép thư mục wp-content/uploads sang.
  • Đề phòng tin tặc dấu mã độc ở thư mục này, dùng đoạn script sau đây xóa các file .js hay .php trong thư mục uploads
    find /path/to/wordpress/wp-content/uploads/.{js.php} -exec rm -f {} \;
  • Sau đó phải cài lại theme, plugins.Tuyệt đối không dùng lại thư mục plugin cũ.
  • Cài đặt lại tất cả plugin
    Bản thân các plugin có thể an toàn nhưng khi WP bị nhiễm, các file .js và .php của plugin là nơi ẩn dấu kín đáo các mã độc
  • Xóa thư mục wordpress.old

Script backup/restore CSDL

### backup.sh db_name ###

#!/bin/bash
[ $# -eq 0 ] && db='dbname' || db=$1
if [ $# -eq 0 ]; then
        echo "Export mysql database to /backup/${db}.sql.gz"
        echo "Syntax: $(basename $0) ${db}"
        exit 1
fi
echo "Export mysql database to /backup/${b}.sql.gz"
/usr/bin/mysqldump $b -u root | /usr/bin/pigz > /backup/${b}.sql.gz

### restore.sh db_name ###

#!/bin/bash
[ $# -eq 0 ] && db='dbname' || db=$1
echo -e "Restore database ${db}\n"
if [ $# -eq 0 ]; then
        echo -e "Syntax: $(basename $0) ${db}"
        exit 1
fi
if [ ! -f "${db}.sql.gz" ] && [ ! -f "${db}.sql" ]; then
        echo -e "Error: data file not found!"
        exit 1
fi
echo ">> WARNING: All current data will be lost!"
read -n 1 -p ">> Continue (y/N)? " ans
echo
if [ "${ans,}" = 'y' ]; then
        read -s -p "Enter mysql password: " pw
        [ ! -z "$pw" ] && pw="-p $pw"
        mysql -u root $pw -e "CREATE DATABASE IF NOT EXISTS $db;"
        if [ -e "${db}.sql.gz" ]; then
                gzip -dc < ${db}.sql.gz | mysql -u root $pw ${db}
        else
                mysql -u root $pw ${db} < $db.sql
        fi
fi

Comments Off on WordPress bị xâm nhập

Filed under Software

Comments are closed.