วิธีตรวจสอบเว็บไซต์ที่โดน Hack #17

ปัจจุบันพบว่า รูปแบบของ Backdoor เปลี่ยนไป จากเดิมเป็น Base64 ซึ่งสามารถตรวจจับได้จาก Pattern ของ eval และ base64_decode ไปเป็น การใช้ eval ร่วมกับการใช้เทคนิคที่เรียกว่า Obfuscate หรือ การทำให้ PHP Code ปรกติ แปลงไปเป็นรูปแบบที่ซับซ้อนยิ่งขึ้น ทำให้การตรวจสอบด้วยเทคนิคเดิมไม่เจอ

จาก วิธีตรวจสอบเว็บไซต์ที่โดน Hack #2 แสดงให้เห็นรูปแบบเดิม ดังภาพ

sample1

sample2

sample3

จะเปลี่ยนมาเป็นแบบนี้

2559-07-29 14_29_00-

ดังนั้น อาจจะต้องปรับเปลี่ยนคำสั่งในการค้นหาเป็น


find /var/www -name "*.php" -user www-data -type f | xargs grep GLOBAL

แต่ก็พบว่า มีการซ่อน base64_decode ในรูปแบบนี้ก็มี

2559-07-29 15_11_32-_new 5 - Notepad++ [Administrator]

ถึงแม้จะเลี่ยงการใช้ base64_decode ตรงๆแต่ก็ยังต้องใช้ eval อยู่ดี ดังนั้น จึงต้องใช้คำสั่งต่อไปนี้ในการค้นหา


find /var/www -name "*.php" -user www-data -type f | xargs grep eval > eval.txt

ซึ่งอาจจะได้ไฟล์มาจำนวนมาก ทั้งทีใช่และไม่ใช่ Backdoor เก็บไว้ในไฟล์ eval.txt ดังภาพ

2559-07-29 15_21_31-_new 6 - Notepad++ [Administrator]

จึงต้องใช้วิธี แก้ไขไฟล์ eval.txt ดังกล่าว โดยลบบรรทัดที่ไม่ใช่ Backdoor ออก ให้เหลือแต่บรรทัดที่น่าสงสัยว่าจะเป็น Backdoor ไว้ แล้ว Save จากนั้นใช้คำสั่งต่อไปนี้เพื่อเก็บไฟล์ทั้งหมดไว้ก่อน ในไฟล์ suspect.tar.gz


cut -d: -f1 eval.txt | xargs tar -zcvf suspect.tar.gz

จากนั้น ทำ List ของไฟล์ที่ต้องเข้าตรวจสอบจริงๆ เก็บในไฟล์ชื่อ eval2.txt ด้วยคำสั่ง


cut -d: -f1 eval.txt > eval2.txt

แล้วจึงแก้ไขไฟล์ หรือ ลบทิ้งต่อไป