WordPress Malware & Virus

Web Shell คืออะไร และอันตรายกับเว็บไซต์ WordPress อย่างไร

Web Shell คืออะไร และอันตรายกับเว็บไซต์ WordPress อย่างไร

หากเว็บไซต์ WordPress ของคุณถูกแฮก หนึ่งในเครื่องมือที่แฮกเกอร์นิยมฝังไว้มากที่สุดคือ Web Shell ซึ่งแตกต่างจากมัลแวร์ทั่วไปตรงที่มันไม่ได้แค่ทำลายข้อมูล แต่เปิดช่องให้แฮกเกอร์ ควบคุมเซิร์ฟเวอร์ของคุณจากระยะไกลได้อย่างสมบูรณ์ เข้าใจว่า Web Shell คืออะไร ทำงานอย่างไร และวิธีกำจัดออกจากเว็บ WordPress คือก้าวแรกที่จะช่วยปกป้องเว็บและลูกค้าของคุณได้จริง

nn

Web Shell คืออะไร

n

Web Shell คือไฟล์โค้ดอันตราย (มักเป็น PHP) ที่แฮกเกอร์อัปโหลดไว้บนเซิร์ฟเวอร์ของคุณ เมื่อเรียกผ่านเบราว์เซอร์ มันจะทำงานเหมือน Terminal หรือ Command Prompt บนเว็บ ทำให้แฮกเกอร์สามารถ:

n

    n

  • รันคำสั่งบนเซิร์ฟเวอร์โดยตรง เช่น ลบ แก้ไข หรืออัปโหลดไฟล์ใหม่
  • n

  • ดูข้อมูลในฐานข้อมูล รวมถึงรหัสผ่านและข้อมูลลูกค้า
  • n

  • ติดตั้งมัลแวร์เพิ่มเติม หรือสร้าง Backdoor หลายจุดไว้ในเว็บ
  • n

  • ใช้เซิร์ฟเวอร์ของคุณโจมตีเว็บอื่นต่อ (botnet)
  • n

n

ชื่อที่พบบ่อย ได้แก่ c99.php, r57.php, wso.php, shell.php หรือไฟล์ที่ตั้งชื่อแฝงดูปกติ เช่น wp-config-backup.php หรือ image.php

nn

เว็บ WordPress โดนแฮกเด้งเว็บพนัน — WP Doctor Thailand
เว็บ WordPress ที่ถูกฝังโค้ดให้เด้งไปยังเว็บพนันหรือเว็บปลอม

nn

แฮกเกอร์อัปโหลด Web Shell ได้อย่างไร

n

Web Shell ไม่ได้ปรากฏขึ้นมาเอง แฮกเกอร์จะเข้าถึงเซิร์ฟเวอร์ก่อนผ่านช่องโหว่ต่าง ๆ ได้แก่:

n

    n

  • Plugin หรือ Theme ที่มีช่องโหว่ — โดยเฉพาะที่ไม่ได้อัปเดต หรือดาวน์โหลดจากแหล่งไม่น่าเชื่อถือ
  • n

  • ฟอร์มอัปโหลดไฟล์ที่ไม่ได้ตรวจสอบนามสกุล — เช่น ช่องอัปโหลดรูป ที่ยอมรับไฟล์ .php
  • n

  • รหัสผ่าน FTP/cPanel ที่รั่ว — แฮกเกอร์วาง shell ตรง ๆ ผ่าน FTP
  • n

  • การ Brute Force WP Admin — เมื่อเข้าได้แล้วก็อัปโหลดผ่านธีม Editor หรือ Plugin
  • n

n

เมื่อ Shell ถูกวางไว้แล้ว แม้คุณจะเปลี่ยนรหัสผ่าน WordPress แฮกเกอร์ก็ยังเข้าได้ต่อผ่าน URL ของ Shell โดยตรง นี่คือเหตุผลที่การล้างมัลแวร์โดยไม่ค้นหา Shell ให้ครบทำให้ เว็บติดมัลแวร์ซ้ำซาก

nn

วิธีตรวจหา Web Shell ใน WordPress

n

การหา Web Shell ต้องตรวจที่ระดับไฟล์เซิร์ฟเวอร์ ไม่ใช่แค่ใน WP Admin ขั้นตอนเบื้องต้นที่ทำได้:

n

    n

  • ตรวจไฟล์ PHP ในโฟลเดอร์ที่ไม่ควรมี — เช่น /wp-content/uploads/ ปกติจะมีแต่รูปและมีเดีย ถ้าพบ .php ถือว่าผิดปกติเกือบ 100%
  • n

  • ค้นหา Pattern อันตรายในโค้ด — ฟังก์ชันที่ Shell มักใช้ เช่น eval(, base64_decode(, system(, passthru(, shell_exec(
  • n

  • ใช้ Plugin Wordfence หรือ Sucuri Scanner — สแกนเพื่อหาไฟล์ที่ไม่ตรงกับ WordPress core
  • n

  • ตรวจ Access Log ของ Hosting — หา Request ที่เรียกไฟล์ .php แปลก ๆ ซ้ำ ๆ โดยเฉพาะ POST request ที่ส่ง parameter มาด้วย
  • n

n

สำหรับวิธีตรวจสอบไฟล์ในเชิงลึก สามารถดูเพิ่มเติมได้ที่ วิธีเช็กไฟล์แปลกปลอมใน WordPress เบื้องต้น และ อาการ WordPress ติดมัลแวร์ และวิธีตรวจสอบด้วยตัวเอง

nn

สัญญาณเตือนที่พบบ่อย: Hosting แจ้งพบไฟล์อันตราย, เว็บโหลดช้าผิดปกติ, พบไฟล์ .php ในโฟลเดอร์ uploads, หรือ Google แสดงคำเตือน “This site may be hacked” ล้วนเป็นสัญญาณที่ต้องตรวจหา Web Shell ทันที

nn

บริการล้างไวรัส WordPress — WP Doctor Thailand
บริการตรวจสอบและกำจัดมัลแวร์บนเว็บ WordPress แบบมืออาชีพ

nn

วิธีกำจัด Web Shell ออกจาก WordPress

n

เมื่อพบแล้ว ต้องจัดการอย่างเป็นระบบ ไม่ใช่แค่ลบไฟล์ที่พบเท่านั้น:

n

    n

  • ขั้นที่ 1 — Backup ก่อนเสมอ แม้จะติดมัลแวร์ ก็ต้อง Backup ไว้เป็น evidence และป้องกันการสูญหายของข้อมูลที่ยังดีอยู่
  • n

  • ขั้นที่ 2 — ระงับการเข้าถึง Shell ชั่วคราว หากทราบ URL ของ Shell ให้ Block ผ่าน .htaccess หรือ Firewall ก่อน
  • n

  • ขั้นที่ 3 — สแกนทุกไฟล์บนเซิร์ฟเวอร์ ใช้ Malware Scanner ระดับ Server-side เช่น Imunify360 (ถ้า Hosting รองรับ) หรือ Wordfence CLI
  • n

  • ขั้นที่ 4 — ลบหรือแทนที่ไฟล์ที่ติด ไฟล์ Core WordPress ที่ถูกแก้ไข ให้ดาวน์โหลดเวอร์ชันใหม่สด ๆ มาแทนที่ทั้งหมด
  • n

  • ขั้นที่ 5 — เปลี่ยน Credential ทุกอย่าง รหัสผ่าน WordPress admin, FTP, cPanel, Database และ Secret Keys ใน wp-config.php
  • n

  • ขั้นที่ 6 — ตรวจหา Backdoor ที่อาจซ่อนอยู่ Shell มักมาพร้อม Backdoor สำรอง ต้องค้นหาให้ครบ ไม่เช่นนั้น Shell ใหม่จะถูกสร้างขึ้นมาใหม่
  • n

nn

วิธีป้องกัน Web Shell ในอนาคต

n

    n

  • อัปเดต WordPress Core, Plugin และ Theme ให้เป็นเวอร์ชันล่าสุดอยู่เสมอ เพราะช่องโหว่ส่วนใหญ่มีการ Patch แล้ว
  • n

  • ติดตั้ง WAF (Web Application Firewall) เช่น Cloudflare หรือ Wordfence เพื่อบล็อก Request อันตรายก่อนถึงเซิร์ฟเวอร์
  • n

  • ปิดการแก้ไขไฟล์ใน WP Admin โดยเพิ่ม define('DISALLOW_FILE_EDIT', true); ใน wp-config.php
  • n

  • จำกัดสิทธิ์ไฟล์บนเซิร์ฟเวอร์ โฟลเดอร์ uploads ไม่ควรรัน PHP ได้ ทำได้โดยสร้าง .htaccess ในนั้นที่ Deny การ Execute .php
  • n

  • ใช้ Plugin ที่มาจากแหล่งที่เชื่อถือได้เท่านั้น ไม่ดาวน์โหลด Nulled Plugin/Theme เด็ดขาด เพราะมักมี Shell ฝังมาด้วย
  • n

  • ตั้ง Two-Factor Authentication (2FA) สำหรับ WP Admin และ cPanel
  • n

nn

เมื่อไหร่ควรเรียกผู้เชี่ยวชาญ

n

หากคุณพบว่าเว็บมี Web Shell แล้ว แนะนำให้ขอความช่วยเหลือจากผู้เชี่ยวชาญในกรณีต่อไปนี้:

n

    n

  • ไม่แน่ใจว่าพบ Shell ครบหรือยัง เพราะ Shell ที่เหลือแม้แค่ตัวเดียวก็เปิดช่องโหว่ได้
  • n

  • เว็บเป็นเชิงพาณิชย์ มีข้อมูลลูกค้า หรือรับชำระเงิน ต้องตรวจสอบว่าข้อมูลรั่วไหลหรือไม่
  • n

  • Hosting แจ้งพบ Malware และขู่ระงับบริการ ซึ่งต้องแก้ไขภายในเวลาจำกัด
  • n

  • ล้างมัลแวร์แล้วแต่เว็บกลับมาติดซ้ำ ซึ่งมักหมายความว่ายังมี Shell หรือ Backdoor หลงเหลืออยู่
  • n

n

ทีม WP Doctor Thailand มีบริการ ล้างไวรัส WordPress แบบครบวงจร ตรวจหาและกำจัด Web Shell, Backdoor และมัลแวร์ทุกประเภท พร้อมรายงานผลและคำแนะนำป้องกันหลังการล้าง

คำถามที่พบบ่อย

Web Shell ต่างจาก Backdoor อย่างไร

Web Shell คืออินเทอร์เฟซที่ให้แฮกเกอร์รันคำสั่งบนเซิร์ฟเวอร์ได้โดยตรงผ่านเบราว์เซอร์ ส่วน Backdoor คือช่องทางลับที่ใช้เข้าถึงเว็บโดยไม่ต้องล็อกอิน ซึ่งบางครั้ง Web Shell ก็ทำหน้าที่เป็น Backdoor ไปพร้อมกัน

Web Shell มักซ่อนอยู่ที่ไหนใน WordPress

ที่พบบ่อยที่สุดคือโฟลเดอร์ wp-content/uploads/ เพราะเป็นที่เดียวที่มักเปิดสิทธิ์เขียนไว้ นอกจากนี้ยังพบในโฟลเดอร์ธีม โฟลเดอร์ Plugin หรือบางครั้งถูกฝังซ่อนในไฟล์ PHP ที่มีอยู่เดิม

ลบ Web Shell ออกแล้ว เว็บยังโดนแฮกอีกได้ไหม

ได้ ถ้ายังมี Shell หรือ Backdoor อื่นหลงเหลืออยู่ และยังไม่ได้อุดช่องโหว่ที่แฮกเกอร์ใช้เข้ามาครั้งแรก การล้างให้สำเร็จต้องค้นหาให้ครบและเปลี่ยน Credential ทุกอย่าง

ตรวจสอบเองได้ไหมว่าเว็บมี Web Shell

ได้ในระดับเบื้องต้น โดยตรวจหาไฟล์ .php ในโฟลเดอร์ uploads และค้นหาฟังก์ชันอันตรายเช่น eval() หรือ base64_decode() ในไฟล์ PHP แต่การค้นหาอย่างละเอียดและแน่ใจ 100% ควรใช้เครื่องมือสแกนระดับ Server-side หรือให้ผู้เชี่ยวชาญตรวจ

อ่านบทความหลักของหมวดนี้ WordPress ติดไวรัส คืออะไร? อาการและวิธีตรวจสอบเบื้องต้น

บทความอื่นในหมวดนี้

LINE ส่งปัญหา