วิธีป้องกัน Web Shell บน IIS Windows Server 2022 ป้องกันการยึดเว็บไซต์และเซิร์ฟเวอร์
Web Shell คือหนึ่งในภัยคุกคามที่อันตรายที่สุดสำหรับ Web Server เพราะเมื่อผู้โจมตีสามารถอัปโหลด Web Shell ขึ้นไปบนเว็บไซต์ได้สำเร็จ พวกเขาอาจสามารถสั่งงาน Server จากระยะไกล, ขโมยข้อมูล, แก้ไขเว็บไซต์ หรือใช้ Server เป็นฐานโจมตีระบบอื่นต่อได้
ในหลายเหตุการณ์ด้าน Cyber Security ที่เกิดขึ้นทั่วโลก จุดเริ่มต้นมักมาจากการอัปโหลดไฟล์ Web Shell ผ่านช่องโหว่ของเว็บไซต์ แล้วค่อยขยายการโจมตีไปยังระบบภายในองค์กร
บทความนี้จะอธิบายวิธีป้องกัน Web Shell บน IIS Windows Server 2022 อย่างครบถ้วน ทั้งในระดับ IIS, File System และ Web Application
🔐 Web Shell คืออะไร
Web Shell คือ
ไฟล์ Script ที่ผู้โจมตีอัปโหลดขึ้น Server
เพื่อใช้ควบคุมเครื่องจากระยะไกล
ตัวอย่าง
ASPX
PHP
JSP
CGI
เมื่อเรียกผ่าน Browser
ผู้โจมตีสามารถสั่งงาน Server ได้
🚨 อันตรายของ Web Shell
⚠️ รันคำสั่งบน Server
⚠️ อัปโหลด Malware
⚠️ ดาวน์โหลดข้อมูล
⚠️ สร้างบัญชีผู้ใช้ใหม่
⚠️ ยึดเว็บไซต์
⚠️ ใช้ Server เป็นฐานโจมตี
🎯 Web Shell เข้ามาได้อย่างไร
สาเหตุที่พบบ่อย
📤 ช่อง Upload File
🐞 ช่องโหว่ Application
🔑 รหัสผ่านรั่วไหล
⚙️ Remote Management ผิดพลาด
📦 CMS หรือ Plugin มีช่องโหว่
🔍 สัญญาณว่าอาจมี Web Shell
CPU สูงผิดปกติ
มีไฟล์แปลกในเว็บไซต์
เว็บไซต์ถูกแก้ไข
มีการเชื่อมต่อออกจำนวนมาก
Antivirus แจ้งเตือน
พบไฟล์ ASPX แปลก ๆ
🛡️ วิธีที่ 1 จำกัด File Upload
หากเว็บไซต์รองรับ Upload
ควรกำหนดชนิดไฟล์ที่อนุญาต
ตัวอย่าง
อนุญาตเฉพาะ
jpg
png
pdf
docx
ไม่อนุญาต
aspx
exe
bat
cmd
ps1
dll
🛡️ วิธีที่ 2 ใช้ Request Filtering
เปิด
IIS Manager
เลือกเว็บไซต์
เปิด
Request Filtering
เลือก
File Name Extensions
เพิ่มรายการ
.aspx
(สำหรับโฟลเดอร์ Upload)
🛡️ วิธีที่ 3 แยก Upload Folder
ไม่ควรเก็บไฟล์ Upload
ไว้ใน
wwwroot
โดยตรง
ควรแยกโฟลเดอร์
และกำหนดสิทธิ์เฉพาะ
🛡️ วิธีที่ 4 ปิด Execute Permission
เปิด
Handler Mappings
หรือ
Request Filtering
ป้องกันไม่ให้รัน Script
ในโฟลเดอร์ Upload
🛡️ วิธีที่ 5 ใช้ NTFS Permissions
กำหนดสิทธิ์
Read
เท่านั้น
ไม่ควรให้
Modify
Full Control
หากไม่จำเป็น
🛡️ วิธีที่ 6 ใช้ Microsoft Defender
เปิด Real-Time Protection
ตรวจสอบ
Get-MpComputerStatus
สแกนระบบเป็นประจำ
🛡️ วิธีที่ 7 ใช้ WAF
เช่น
Cloudflare WAF
Azure WAF
ModSecurity
ช่วยบล็อก Payload อันตราย
🔍 ตรวจสอบไฟล์ ASPX ทั้งหมด
PowerShell
Get-ChildItem `
C:\inetpub\wwwroot `
-Recurse `
-Filter *.aspx
ตรวจสอบไฟล์ที่ไม่รู้จัก
🔍 ค้นหาไฟล์ที่สร้างล่าสุด
Get-ChildItem `
C:\inetpub\wwwroot `
-Recurse |
Sort CreationTime -Descending
ช่วยหาไฟล์ผิดปกติ
🔍 ตรวจสอบ IIS Log
ตำแหน่ง
C:\inetpub\logs\LogFiles
มองหา
cmd=
exec=
upload=
shell=
หรือ URL แปลก ๆ
🔍 ตรวจสอบ Process ที่ผิดปกติ
เปิด
Get-Process
ดู Process
ที่ไม่ควรทำงาน
⚙️ เปิด Audit Object Access
เปิด
Local Security Policy
กำหนด
Audit Object Access
เพื่อบันทึกการสร้างไฟล์
🚨 หากพบ Web Shell ต้องทำอย่างไร
① ตัดการเชื่อมต่อจากอินเทอร์เน็ต
② สำรองหลักฐาน
③ สแกน Malware
④ ตรวจสอบบัญชีผู้ใช้
⑤ เปลี่ยนรหัสผ่านทั้งหมด
⑥ Restore จาก Backup ที่ปลอดภัย
⑦ วิเคราะห์ช่องทางที่ถูกโจมตี
❌ ความเข้าใจผิดที่พบบ่อย
มี Antivirus แล้วปลอดภัย
❌ ไม่จริง
Web Shell ต้องเป็นไฟล์ใหญ่
❌ ไม่จริง
บางตัวมีขนาดเพียงไม่กี่ KB
HTTPS ป้องกัน Web Shell
❌ ไม่เกี่ยวข้อง
📋 Web Shell Prevention Checklist
✅ Request Filtering
✅ จำกัด File Upload
✅ NTFS Permissions
✅ Defender
✅ WAF
✅ Audit Logging
✅ IIS Log Monitoring
✅ Backup
🛡️ Best Practices
① แยก Upload Folder
② ปิด Execute Permission
③ จำกัด Extension
④ ใช้ Antivirus
⑤ ตรวจสอบไฟล์ใหม่ทุกวัน
⑥ เปิด Audit Logging
⑦ ทำ Vulnerability Assessment เป็นประจำ
ทีมงาน comsiam ถือว่าการป้องกัน Web Shell เป็นหนึ่งในหัวข้อสำคัญที่สุดของ IIS Security เพราะเมื่อผู้โจมตีสามารถอัปโหลด Web Shell ได้สำเร็จ ผลกระทบมักไม่จำกัดอยู่แค่เว็บไซต์ แต่สามารถลุกลามไปถึงทั้ง Server และระบบภายในองค์กรได้
🎯 สรุป
Web Shell เป็นภัยคุกคามร้ายแรงที่สามารถนำไปสู่การยึดเว็บไซต์และควบคุม Windows Server 2022 ได้ หากไม่มีมาตรการป้องกันที่เหมาะสม
การใช้ Request Filtering, จำกัด File Upload, แยก Upload Folder, กำหนด NTFS Permissions และเปิดใช้งาน Antivirus ร่วมกับ WAF จะช่วยลดความเสี่ยงจาก Web Shell ได้อย่างมาก และเป็นแนวทางมาตรฐานสำหรับ IIS Server ที่ให้บริการในสภาพแวดล้อม Production