เนื่องจากความนิยมที่กว้างขวาง WordPress บ่อยครั้งเป็นเป้าหมายของแคมเปญแฮกกิ้งร้ายแรงบนอินเทอร์เน็ต แคมเปญเหล่านี้อาจแตกต่างกันไปขึ้นอยู่กับปัจจัยอย่าง แรงจูงใจของแฮกเกอร์ การ obfuscation ที่ใช้ ฯลฯ อย่างไรก็ตาม สิ่งหนึ่งที่เหมือนกันทั้งหมดคือ เว็บไซต์ WordPress ที่ถูกแฮกถูกใช้เป็นสื่อกลางสำหรับวัตรัสร้ายทุกประเภท
ประเภทการติดเชื้อมัลแวร์หนึ่งคือ .Bt WordPress hack ชื่อมาจากการที่การติดเชื้อแบบนี้สร้างไฟล์ด้วยนามสกุล .bt บนเว็บไซต์ WordPress ของคุณ ภายใต้ไดเรกทอรีรูท หรือไดเรกทอรี "wp-admin" หรือ "wp-admin/css"
ที่นี่คุณจะพบสาเหตุ อาการ การตรวจจับ และการกำจัดการโจมตี นอกจากนี้ เราจะแยกวิเคราะห์การทำงานของมัลแวร์เพื่อความเข้าใจที่ดีขึ้น
สาเหตุทั่วไปเบื้องหลัง .Bt WordPress Hack
สาเหตุทั่วไปของ ".Bt WordPress hack" ได้แก่:
- ปลั๊กอินที่ล้าสมัยและไม่ได้มาตรฐาน
- ธีมที่มีบั๊ก
- เวอร์ชัน PHP ที่ล้าสมัย
- รหัสผ่านอ่อนแอ
- การกำหนดค่าเซิร์ฟเวอร์ผิดพลาด
การวิเคราะห์โค้ดมัลแวร์ .Bt WordPress
การยืนยันครั้งแรกของการติดเชื้อนี้คือ ไฟล์ .bt ที่มีรายการที่อยู่ IP หากคุณลบไฟล์นี้ มันจะถูกสร้างใหม่ เพราะการติดเชื้อไม่อยู่ในไฟล์ .bt การติดเชื้อมักอยู่ในไฟล์ WordPress เช่น:
- wp-load.php
- wp-settings.php
- /wp-content/themes/<some theme>/functions.php
- /wp-includes/functions.php
โค้ดร้ายในไฟล์เหล่านี้ถูก obfuscate และมีลักษณะประมาณนี้:
ตามที่มองเห็นจากโค้ด มัลแวร์ก่อนอื่นปิดข้อความผิดพลาดทั้งหมดเพื่อหลีกเลี่ยงความสงสัย
ขั้นตอน 1: ดาวน์โหลดมัลแวร์ (Downloading the Malware)
ใน .Bt WordPress hack โค้ดร้าย (malicious payload) ไม่อยู่บนเซิร์ฟเวอร์ แต่ถูกดาวน์โหลดจากแหล่งภายนอก เพื่อทำเช่นนี้ มัลแวร์ตรวจสอบก่อนว่า wrapper "allow_url_fopen" ของ PHP พร้อมใช้งานหรือไม่ หากไม่พร้อม มัลแวร์จะใช้ไลบรารี cURL ของ PHP เพื่อดาวน์โหลดมัลแวร์ผ่านฟังก์ชันชื่อ "get_data_ya()" URL ที่ดาวน์โหลดไฟล์ร้ายมาคือ hxxp://lmlink1[.]top/lnk/inj[.]php
ขั้นตอน 2: Obfuscate มัลแวร์ (Obfuscating the Malware)
หลังจากนั้น ข้อมูลที่ดาวน์โหลดมา ถูก obfuscate ด้วยการเข้ารหัส XOR แบบง่าย ทำในฟังก์ชัน "wp_cd()" ของมัลแวร์ ซึ่งรับข้อมูลและคีย์เป็นพารามิเตอร์นำเข้า และคืนค่าออกมาเป็น XOR encrypted
ขั้นตอน 3: เขียนมัลแวร์ (Writing the Malware)
เมื่อเพย์โหลดที่เข้ารหัสพร้อมแล้ว มัลแวร์ค้นหา subdirectories ที่เขียนได้ (writable) หากไม่พบ จะพยายามเขียนในไดเรกทอรีปัจจุบัน
เพย์โหลดร้ายที่ดาวน์โหลดมา ถอดรหัสแล้วมีลักษณะประมาณนี้:
ที่นี่มีค่าสังเกตว่า เพย์โหลดไม่มีแท็กเปิดและปิด PHP ซึ่งจะถูกเพิ่มเข้าไปขณะเขียนลง subdirectory
ขั้นตอน 4: รันเพย์โหลด (Executing the Payload)
เมื่อเพย์โหลดเขียนลง subdirectory สำเร็จ จะถูกรันโดยคำสั่ง include() ของ PHP เพย์โหลดนี้จะสร้างไฟล์ .bt ที่มีที่อยู่ IP ของบอทเครื่องมือค้นหา เพย์โหลดยังใช้บริการสแปมยา (pharma spam) ตามที่มองเห็นในโค้ดด้านล่าง
ไฟล์ .bt น่าจะใช้เพื่อหลีกเลี่ยงการบริการสแปมให้บอทเครื่องมือค้นหา และดังนั้นหลีกเลี่ยงการแบนของเว็บไซต์ เพย์โหลดยังรับคำสั่งร้ายจากผู้สร้าง ซึ่งจะถูกรันบนเว็บไซต์ WordPress ที่ติดเชื้อ
ขั้นตอน 5: ลบเพย์โหลด (Deleting the payload)
สุดท้าย เมื่อภารกิจร้ายเสร็จสิ้น มัลแวร์ลบไฟล์โดยใช้ฟังก์ชัน unlink() ของ PHP เพื่อหลีกเลี่ยงความสงสัยใดๆ ดังนั้น มัลแวร์นี้อยู่ใต้เรดาร์นาน เพราะมันไม่เก็บเพย์โหลดร้าย แต่ดาวน์โหลด ใช้ และลบเมื่อภารกิจเสร็จ
วิธีตรวจจับและทำความสะอาดมัลแวร์ .bt
วิธีที่ 1: ตรวจสอบไฟล์ที่มีนามสกุล .bt หรือ .r
เป็นการทดสอบแบบ heuristic คุณสามารถตรวจสอบได้ว่ามีไฟล์ที่มีนามสกุล ".bt" หรือ ".r" บนเซิร์ฟเวอร์หรือไม่ ใช้ไฟล์แมเนจอร์ค้นหา
ทางเลือกอื่น ล็อกอินเข้าสู่เซิร์ฟเวอร์ผ่าน SSH และรันคำสั่ง:
find . -name '*.bt' -print
เพื่อยืนยัน .Bt WordPress hack เพิ่มเติม ให้ค้นหาในไฟล์ WordPress สำหรับโค้ดร้าย ในคอนโซล SSH รันคำสั่ง:
find . -name "*.php" -exec grep " $ea = '_shaesx_'; $ay = 'get_data_ya'; $ae = 'decode';"'{}'; -print &> list.txt
คำสั่งนี้จะบันทึกผลลัพธ์ในไฟล์ list.txt เปิดไฟล์ที่มีมัลแวร์นี้และลบโค้ดร้าย หากคุณไม่แน่ใจว่าโค้ดไหนเป็นโค้ดร้ายและโค้ดไหนเป็นโค้ดต้นฉบับ ไปที่ลิงก์นี้เพื่อดูโค้ดร้ายอย่างเดียวและลบตามนั้น หากยังไม่แน่ใจ ให้คอมเมนต์โค้ดน่าสงสัยออกและขอความช่วยเหลือ
วิธีที่ 2: ตรวจสอบความสมบูรณ์ของไฟล์หลัก (Check Core File Integrity)
อีกวิธีหนึ่งคือตรวจสอบความสมบูรณ์ของไฟล์หลัก ทำได้โดย ล็อกอินเข้าสู่เว็บเซิร์ฟเวอร์ผ่าน SSH แล้ว:
ขั้นตอน 1: สร้างไดเรกทอรีใหม่เพื่อดาวน์โหลด WordPress ใหม่ และเข้าไปด้วยคำสั่ง:
$ mkdir WordPress
$ cd WordPress
ขั้นตอน 2: ดาวน์โหลดและแตกไฟล์เวอร์ชันล่าสุดของ WordPress ด้วยคำสั่ง:
$ wget https://github.com/WordPress/WordPress/archive/<latest version>.tar.gz
$ tar -zxvf <latest version>.tar.gz
ที่นี่ แทนที่ <latest version> ด้วยเวอร์ชันล่าสุดของ WordPress ที่มีอยู่ เช่น https://github.com/WordPress/WordPress/archive/5.3.tar.gz
ขั้นตอน 3: ตอนนี้เปรียบเทียบไฟล์โดยใช้คำสั่ง diff เพื่อค้นหาโค้ดน่าสงสัย
$ diff -r path/to/your/file/wp-load.php /Wordpress/wp-load.php
ขั้นตอน 4: หากพบโค้ดร้าย ให้ลบมัน หรือขอความช่วยเหลือในการลบ
Astra อยู่ที่นี่เพื่อช่วย!
Astra Security นำเสนอโซลูชันความปลอดภัยที่ราคาเหมาะสม ตรวจจับและหยุด .bt WordPress hack ด้วย Website Protection solution
มีคำถามอยากถาม? ยิงมาได้เลยในกล่องความคิดเห็น หรือแชทกับผู้เชี่ยวชาญด้านความปลอดภัย เราสัญญาว่าจะตอบ 🙂