สืบเนื่องจากเมื่อวันที่ 29 กันยายนที่ผ่านมา ทาง Microsoft ได้รายงานถึงช่องโหว่ Zero-Day ระดับความรุนแรงสูงบน Microsoft Exchange Server 2013, 2016 และ 2019 ที่มีชื่อว่า ProxyNotShell ซึ่งมีรายละเอียดดังต่อไปนี้
- CVE-2022-41040 เป็นช่องโหว่การปลอมแปลงคำขอฝั่งเซิฟเวอร์ - server-side request forgery (SSRF) (CVSS 8.8)
- CVE-2022-41082 เป็นช่องโหว่ที่ทำให้สามารถเรียกใช้งานโค้ดที่เป็นอันตรายจากระยะไกลได้ผ่าน PowerShell - remote code execution (RCE) (CVSS 8.8)
โดยช่องโหว่ CVE-2022-41040 จะเป็นช่องทางให้ผู้โจมตีที่ผ่านการตรวจสอบสิทธิ์ (authentication) สามารถใช้ประโยชน์จากช่องโหว่ CVE-2022-41082 จากระยะไกลได้ แต่อย่างไรก็ตามการโจมตียังจำเป็นต้องผ่านการตรวจสอบสิทธิ์จาก Exchange Server ให้ได้ก่อน เพื่อที่จะทำให้สามารถโจมตีได้สำเร็จ โดยทั้งสองช่องโหว่สามารถใช้โจมตีแยกจากกันได้
ปัจจุบัน Microsoft Defender Antivirus และ Microsoft Defender for Endpoint สามารถตรวจจับมัลแวร์ และพฤติกรรมที่เกี่ยวข้องกับการโจมตี โดยทาง Microsoft จะยังคงตรวจสอบภัยคุกคามที่ใช้ประโยชน์จากช่องโหว่ดังกล่าวอย่างต่อเนื่อง เพื่อช่วยลดความเสี่ยงให้กับผู้ใช้งาน
ลักษณะการโจมตี
ผู้โจมตีจะส่ง request SOAP "autodiscover" ในลักษณะ POST /autodiscover/autodiscover.json?@toto.com/PowerShell/ [ ..] HTTP/1.1
ซึ่ง request ลักษณะดังกล่าวจะทำให้เกิดการเรียกใช้ PowerShell จากระยะไกล เช่น การติดตั้ง Web Shell บนเซิร์ฟเวอร์ และทำให้สามารถควบคุมระบบได้จากภายนอก ซึ่งด้วยการที่ Exchange Server ทำงานโดยใช้สิทธิ์ในระดับสูง จึงทำให้วิธีนี้เป็นวิธีที่มีประสิทธิภาพมากในการเข้าควบคุมเซิร์ฟเวอร์ทั้งหมด

อย่างไรก็ตามช่องโหว่นี้ผู้โจมตีจำเป็นจะต้องผ่านการตรวจสอบสิทธิ์ก่อน จึงจะสามารถโจมตีได้สำเร็จ แต่การได้มาของข้อมูล User นั้น ผู้โจมตีสามารถได้มาจากหลากหลายวิธีมาก เช่น การโจมตีแบบ Password Spray หรือการซื้อผ่าน Dark Web อื่น ๆ เป็นต้น
แนวทางการป้องกัน
Update 4 ตุลาคม 2565
Microsoft แจ้งว่าผู้ใช้งาน Microsoft Exchange Online ไม่ต้องดำเนินการใด ๆ เพิ่มเติม ส่วนผู้ใช้งาน Exchange Server ให้ดำเนินการดังนี้
- เปิด IIS Manager
- เลือก Default Web Site
- ในเมนู Feature View เลือก URL Rewrite
- ใน Actions pane ทางด้านขวา เลือกเมนู Add Rules
- เลือก Request Blocking และ click OK
- Input ข้อข้อความดังต่อไปนี้ “.autodiscover.json.*Powershell.” (ในข้อความจำเป็นต้องใส่ Quote ลงไปด้วย) จากนั้นคลิ๊ก OK
- จากนั้นเลือก Regular Expression ใต้เมนู Using
- เลือก Abort Request ใต้คำว่า How to block จากนั้นคลิ๊ก OK
- ขยายช่อง Rule และเลือก Rule ที่มี Pattern : .autodiscover.json.*Powershell. จากนั้นเลือก Edit ใต้คำว่า Condition
- เปลี่ยน Condition input จาก {URL} เป็น {REQUEST_URI}
Microsoft แจ้งผู้ใช้งานว่าจะไม่มีผลกระทบใด ๆ ต่อฟังก์ชันของ Exchange หากทำตามคำแนะนำ นอกจากนี้ยังแนะนำให้ Disable remote PowerShell สำหรับผู้ที่ไม่ใช่ Administrator ของระบบ

You must be logged in to post a comment.