สรุปสั้น

ทีม Microsoft Security Research เปิดเผยว่า ผู้โจมตีได้นำช่องโหว่ความปลอดภัยใน Zimbra Collaboration Suite (ZCS) ที่ได้รับการแก้ไขแล้วมาใช้เป็นอาวุธ เพื่อวาง web shell และเข้าถึงข้อมูลในกล่องจดหมาย ช่องโหว่ดังกล่าวถูกติดตามในรหัส CVE-2026-73570 และได้คะแนน CVSS 8.9 โดยเป็นช่องโหว่ประเภท OS command injection แบบไม่ต้องยืนยันตัวตน ที่สามารถนำไปสู่การรันโค้ดจากระยะไกลได้เมื่อมีการเปิดใช้งาน SNMP notification และติดตั้งแพ็กเกจเสริม zimbra-snmp

การใช้ประโยชน์จากช่องโหว่สามารถกระตุ้นได้ผ่านคำขอ SMTP ที่ถูกประดิษฐ์ขึ้นเป็นพิเศษ (กล่าวคือส่งเป็นอีเมล) ไปยังเซิร์ฟเวอร์ Zimbra ที่เปิดสู่ภายนอก โดยไม่ต้องยืนยันตัวตนหรืออาศัยการกระทำของผู้ใช้ ช่องโหว่นี้ได้รับการแก้ไขโดย Zimbra ในเดือนกรกฎาคม 2026 ด้วยการปล่อยเวอร์ชัน 10.1.20 หลังเจาะสำเร็จ Microsoft พบกิจกรรมที่รวมถึงการวาง JSP web shell และ reverse shell การยกระดับสิทธิ์ เครื่องมือเข้าถึงระยะไกลแบบคงอยู่ และการรันแบบอาศัยหน่วยความจำ รวมถึงการเข้าถึงอีเมลและเก็บข้อมูลยืนยันตัวตนและกล่องจดหมาย

รายละเอียดข่าว

เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 30 กันยายน 2569 ว่า รายละเอียดการโจมตี CVE-2026-73570 ที่กำลังเกิดขึ้นจริงถูกเปิดเผยครั้งแรกโดยทีมเผชิญเหตุคอมพิวเตอร์ของโปแลนด์ (CERT Polska) ในเดือนสิงหาคม 2026 ซึ่งแนะนำให้ผู้ใช้ตรวจสอบไฟล์ /var/log/zimbra.log เพื่อหาการรีสตาร์ตบริการ Zimbra ที่น่าสงสัย และมองหาไฟล์ที่ถูกสร้างในไดเรกทอรีชั่วคราวและไดเรกทอรี webapps ของ Zimbra ต่อมาในเดือนเดียวกัน สำนักงานความมั่นคงปลอดภัยไซเบอร์และโครงสร้างพื้นฐานของสหรัฐฯ (CISA) ได้เพิ่มช่องโหว่นี้เข้าสู่แคตตาล็อกช่องโหว่ที่ถูกใช้โจมตีจริง (KEV) พร้อมกำหนดให้หน่วยงานรัฐบาลกลางแก้ไขภายในวันที่ 24 สิงหาคม 2026

Attackers exploit Zimbra flaw to deploy web shells and harvest authentication secrets

Microsoft ระบุว่าพบองค์กรที่ได้รับผลกระทบในมากกว่าหนึ่งภูมิภาคและหลายอุตสาหกรรม แม้จะไม่ใช่ทุกโฮสต์ที่แสดงทุกขั้นตอนของห่วงโซ่การโจมตี และยังไม่ทราบว่าใครอยู่เบื้องหลัง จากข้อมูล telemetry กิจกรรมการโจมตีที่ Microsoft บันทึกไว้ถูกระบุในช่วง “ระหว่าง” วันที่ 20 กรกฎาคม 2026 ซึ่งเป็นวันที่ปล่อย Zimbra เวอร์ชัน 10.1.20 กับวันที่ 13 สิงหาคม 2026 ซึ่งเป็นวันที่ช่องโหว่ถูกเปิดเผยต่อสาธารณะ โดยเฉพาะระหว่างวันที่ 28 กรกฎาคมถึง 7 สิงหาคม 2026 พบเครื่องมือสแกนนอกย่าน (out-of-band) สองตัวกำลังตรวจเส้นทางการฉีดคำสั่งเพื่อยืนยันการรันคำสั่งโดยยังไม่ส่งเพย์โหลดตามมา

รายละเอียดช่องโหว่

CVE-2026-73570 เป็นช่องโหว่ OS command injection แบบไม่ต้องยืนยันตัวตน ที่ทำงานได้เมื่อระบบเปิดใช้งาน SNMP notification และติดตั้งแพ็กเกจเสริม zimbra-snmp ผู้โจมตีสามารถกระตุ้นช่องโหว่ได้ด้วยการส่งคำขอ SMTP ที่ประดิษฐ์ขึ้นไปยังเซิร์ฟเวอร์ Zimbra ที่เปิดรับการเชื่อมต่อจากอินเทอร์เน็ต โดยไม่ต้องมีบัญชีหรืออาศัยการกระทำของผู้ใช้ปลายทาง เมื่อสำเร็จจะได้สิทธิ์รันคำสั่งในระดับบัญชีบริการ “zimbra” ความร้ายแรงอยู่ที่การเป็นช่องโหว่ก่อนการยืนยันตัวตนบนบริการเมลที่มักเปิดสู่ภายนอกตลอดเวลา ทำให้เซิร์ฟเวอร์ Zimbra ที่ยังไม่อัปเดตเป็นเวอร์ชัน 10.1.20 ตกเป็นเป้าหมายที่เข้าถึงได้ง่าย

วิธีการโจมตี

หลังได้สิทธิ์เบื้องต้น ผู้โจมตีรันคำสั่งในฐานะบัญชี “zimbra” และวาง JSP web shell หลายตัวในเส้นทางแอปพลิเคชัน Jetty และ mailboxd เพื่อความซ้ำซ้อน พร้อมดาวน์โหลดและรันเพย์โหลดผ่าน wget หรือ curl และสร้าง reverse shell แบบโต้ตอบ บางสายการรันใช้ cron, systemd หรือ memfd_create เพื่อคงการทำงานแบบเกิดซ้ำหรืออาศัยหน่วยความจำ ในบางกรณีผู้โจมตีเปิดสิทธิ์เขียนไปยังไดเรกทอรีสาธารณะชั่วคราวเพื่อวาง web shell แล้วคืนสิทธิ์เดิม เพื่อลดการมองเห็นการเปลี่ยนแปลง ขั้นต่อมาผู้โจมตีใช้ zmprov ทำแผนที่การติดตั้ง Zimbra เพื่อระบุโหนด mailbox และ MTA ตรวจหา SSH identity ของ Zimbra และยกระดับสิทธิ์ด้วยการแก้ไฟล์ /etc/pam.d/sudo ให้บัญชี “zimbra” ได้สิทธิ์ sudo แบบไม่ต้องใส่รหัสผ่าน พร้อมสร้างบริการ systemd ชื่อ zimlog.service เป็นกลไกคงอยู่ลำดับที่สอง

จุดที่อันตรายเป็นพิเศษคือการพุ่งเป้าไปที่กุญแจยืนยันตัวตนส่วนกลางของ Zimbra ด้วยคำสั่ง zmlocalconfig -s บนเซิร์ฟเวอร์ แทนที่จะไล่เจาะรหัสผ่านของแต่ละกล่องจดหมาย โดยนำข้อมูลรับรองที่ได้ไปทำ LDAP query แบบยืนยันตัวตนเพื่อดึงค่าที่มีมูลค่าสูง เช่น zimbraPreAuthKey, zimbraAuthTokenKey และ zimbraTwoFactorAuthSecret นอกจากนี้ยังใช้ SSH identity ที่มีอยู่ที่ /opt/zimbra/.ssh/zimbra_identity เพื่อเคลื่อนย้ายด้านข้างไปยังโหนดอื่นในคลัสเตอร์ และใช้ rsync ถ่ายโอน web shell ระหว่างโหนด ในบางแคมเปญพบการใช้ตัวดาวน์โหลดขนาดเล็กเพื่อดึง Zimdown2 ซึ่งเป็นไบนารี Go ที่ทำหน้าที่ติดตั้งเอเจนต์เข้าถึงระยะไกล Zimclient2 ที่รองรับ shell แบบโต้ตอบ การโอนไฟล์สองทาง และ SOCKS5 proxy ผ่านช่องทาง WebSocket, TLS และ raw TCP

ผลกระทบ

การที่ผู้โจมตีพุ่งเป้าไปที่กุญแจยืนยันตัวตนส่วนกลางของ Zimbra อย่าง zimbraPreAuthKey และ zimbraAuthTokenKey ทำให้ความเสียหายรุนแรงกว่าการขโมยรหัสผ่านรายบัญชี เพราะกุญแจเหล่านี้อาจถูกใช้สร้าง token เพื่อเข้าถึงกล่องจดหมายใด ๆ ได้ และการได้ zimbraTwoFactorAuthSecret ยังบั่นทอนการยืนยันตัวตนสองชั้น ผู้โจมตียังพบว่ามีการดึงข้อมูลจากฐานข้อมูล Zimbra ผ่านไฟล์คอนฟิก /opt/zimbra/conf/localconfig.xml เพื่อ export ตารางสำคัญ เช่น mailbox, mailbox_metadata, mobile_devices, out_of_office และตารางทั้งหมดในเนมสเปซ zimbra.* พร้อมรวบรวมข้อมูลรับรอง ใบรับรอง ความลับ LDAP กฎเมล และคอนฟิกเป็นไฟล์ ZIP เพื่อส่งออก ในกรณีหนึ่งผู้โจมตีบีบอัดเนื้อหาสำรองกล่องจดหมายไว้ที่ /opt/zimbra/final.tar.gz แล้วดาวน์โหลด AzCopy เพื่อพยายามส่งออกไปยัง Azure Blob แม้หลักฐานที่มีจะยังไม่ยืนยันว่าการโอนสำเร็จ

คำแนะนำ

องค์กรควรอัปเดต Zimbra เป็นเวอร์ชัน 10.1.20 หรือใหม่กว่าโดยทันที หากยังแพตช์ไม่ได้ Microsoft แนะนำให้ถอนแพ็กเกจ zimbra-snmp ปิดการใช้งาน SNMP notification และจำกัดการเข้าถึง SNMP และ SMTP ให้เฉพาะโฮสต์ที่เชื่อถือได้เท่านั้น เนื่องจากผู้โจมตีได้เข้าถึงกุญแจยืนยันตัวตนส่วนกลางแล้ว การแพตช์เพียงอย่างเดียวไม่พอ ควรหมุนเปลี่ยนความลับยืนยันตัวตนของ Zimbra ทั้งหมด รวมถึง zimbraPreAuthKey, zimbraAuthTokenKey และ zimbraTwoFactorAuthSecret และสแกนเซิร์ฟเวอร์เพื่อหา web shell ที่ถูกวางไว้ซ้ำซ้อน ควรตรวจไฟล์ /var/log/zimbra.log หาการรีสตาร์ตบริการที่น่าสงสัย ตรวจไฟล์แปลกปลอมในไดเรกทอรีชั่วคราวและ webapps ตรวจการแก้ไข /etc/pam.d/sudo บริการ systemd ชื่อ zimlog.service และ SSH authorized keys ที่ถูกเพิ่มเข้ามา รวมถึงเฝ้าระวังการเชื่อมต่อออกที่ผิดปกติไปยังบริการคลาวด์

Indicators of Compromise (IoCs)

มัลแวร์/เครื่องมือ: Zimdown2 (ตัวดาวน์โหลด Go), Zimclient2 (เอเจนต์เข้าถึงระยะไกล รองรับ SOCKS5/WebSocket/TLS/raw TCP)

ไฟล์และการคงอยู่:

  • /opt/zimbra/final.tar.gz (ไฟล์สำรองกล่องจดหมายที่ถูกบีบอัดเพื่อส่งออก)
  • /opt/zimbra/conf/localconfig.xml (เป้าหมายดึงข้อมูลรับรองฐานข้อมูล)
  • การแก้ไข /etc/pam.d/sudo (ให้ sudo แบบไม่ต้องรหัสผ่านแก่บัญชี zimbra)
  • บริการ systemd: zimlog.service
  • การใช้ /opt/zimbra/.ssh/zimbra_identity เพื่อเคลื่อนย้ายด้านข้าง

เส้นทางการส่งออก (defanged):

  • hxxps://aka[.]ms/downloadazcopy-v10-linux (ดาวน์โหลด AzCopy)
  • wsweb03[.]blob[.]core[.]windows[.]net/log/windows.log (ปลายทาง Azure Blob)

ค่าที่ถูกขโมย: zimbraPreAuthKey, zimbraAuthTokenKey, zimbraTwoFactorAuthSecret

User-Agent ตอนทดสอบช่องโหว่: ZB73570 (บาง HTTP probe ใช้ค่านี้ ร่วมกับ callback แบบ HTTP/DNS/ICMP ไปยัง subdomain สุ่ม)

ตัวบ่งชี้เครือข่าย (จาก Microsoft · defang ตามต้นฉบับ):

ประเภทค่าคำอธิบาย
IPv4:พอร์ต117.107.25[.]243:7071C2 ของ dropper ส่งไฟล์ de.sh
IPv4:พอร์ต192.255.193[.]111:9004C2 ของตัวขุดคริปโต build_amd64 (วางชื่อ .kworker_sys)
โดเมน Dynamic DNStranszimbra[.]linkpc[.]netC2 ของ dropper ส่ง agent.sh / agent2.sh / zimdown2
โดเมน Dynamic DNSpsk1zim[.]abrdns[.]com/agentwsช่องสั่งการ zimclient2 ผ่าน WebSocket (พอร์ต 80) และ raw TCP (8080)
โดเมนtls[.]psk1zim[.]abrdns[.]comช่องสั่งการ zimclient2 ผ่าน TLS (พอร์ต 443)
WebSocket URLwslogzimbra[.]linkpc[.]net/wsstatรายงานสถานะตัวติดตั้ง zimdown2
S3 URLmexico-cashpay-test.s3.dualstack.mx-central-1.amazonaws[.]com/pakistan/2026/aliyun_update.tar.gztarball dropper (ยืนยันว่ารันบน 1 โฮสต์)
IPv4:พอร์ต45.32.30[.]235:8081reverse shell — C2 แรกสุดที่ยืนยันได้
IPv4:พอร์ต45.32.30[.]235:8080session แบบโต้ตอบ + พักข้อมูล mail store
IPv4:พอร์ต193.42.40[.]135:443reverse shell/สำรวจระบบทั้งองค์กร
IPv4:พอร์ต3.209.137[.]175:443C2 สำรองหลังหมุนโครงสร้างพื้นฐาน
GitHub releasegithub[.]com/<redacted>/lpe-toolkitเครื่องมือสาธารณะที่ถูกนำมาใช้ยกระดับสิทธิ์
Base contract0x25bdA7Feb3553995AD68a9A8Ed8c731b73a71586ช่องสั่งการของขั้นที่รันในหน่วยความจำ (memfd) — บล็อกที่เนื้อหา JSON-RPC ไม่ใช่ผู้ให้บริการ RPC

ค่าแฮชไฟล์ (SHA-256):

SHA-256ไฟล์/บทบาท
dee5af1c0f76b45d28bafd6e60c07bb8e391d98addf81ef8f13d073acdb3c48ade.sh
aea991f694911e321b0ab97534f2ad0291c392c0a43dabff664c563618bd036dbuild_amd64 (ตัวขุดคริปโต)
6ab7de2509038edf580aef6229c1c3db17f4da8f2d7d940818faf617d1938244agent2.sh
bf28f38122bf20d5fac969cc414daa6a890cdea872d389ca93d2092b6b7773cfzimdown2
b594a42b8f1c6f090327bb9a3361c2d3515537fb7ac8da6b9061b9a3f330e159zimclient2
65A7576C389326B6CDF9C993D0BE6E5D50FED9655D1CDF2A3A50F2C21C8EC435hacktool “Looptik” (ชุด LPE จาก GitHub)
22EF852F6EBC39EE71235B90648B4B200B385C47D25C79545986493F8C70DB69loader ปลอมชื่อ systemd-resolved วาง /usr/sbin/_chronyd และถอดรหัสขั้นที่ 2 ในหน่วยความจำ
518FE65DD349180191D9B258AB24876AAED6613CD657D0B626D1FC24E03A22B6ขั้นที่ 2 ในหน่วยความจำ — เอเจนต์รับคำสั่งผ่านเชน Base

แหล่งอ้างอิง