สรุปสั้น
นักวิจัยด้านความปลอดภัยตรวจพบ PamStealer เวอร์ชันใหม่ที่ออกแบบให้ payload หลักถูกกู้คืนได้ผ่านห่วงโซ่การถอดรหัสฝั่งเซิร์ฟเวอร์เท่านั้น ตามข้อมูลของ Jamf Threat Labs มัลแวร์ยังคงใช้กลไก dropper แบบ JavaScript for Automation (JXA) เหมือนเดิม แต่ปรับทั้งเหยื่อล่อและวิธีส่งมอบ จุดเปลี่ยนสำคัญคือ เดิมทีคีย์ถอดรหัส payload ถูกฝังไว้ตรง ๆ ในซอร์ส JXA แต่เวอร์ชันใหม่จะดึงเครื่องมือถอดรหัสเฉพาะกิจมาและทำการแลกกุญแจกับเซิร์ฟเวอร์ก่อน จึงจะแกะ payload ได้ หากไม่มีความร่วมมือจากเซิร์ฟเวอร์ก็ไม่สามารถกู้คืน payload แบบ static ได้
การเปลี่ยนแปลงสำคัญอีกอย่างคือเหยื่อล่อ ขณะที่เวอร์ชันก่อนหน้าในเดือนกรกฎาคมและสิงหาคม 2569 ปลอมเป็นแอปอย่าง Maccy, Scoppr และ Nancy Clipboard เวอร์ชันใหม่กลับล่อเหยื่อผ่านเว็บไซต์ปลอม (“wavel[.]app”) ที่โฆษณาบริการกระเป๋าคริปโทเคอร์เรนซีที่ไม่มีอยู่จริงชื่อ Wavel เมื่อเหยื่อคลิกปุ่ม “Download for macOS” จะได้ไฟล์ disk image (“Wavel.dmg”) ที่บรรจุไฟล์ AppleScript ที่คอมไพล์แล้ว ซึ่งเมื่อเปิดจะเรียก Script Editor ของ Apple ขึ้นมาพร้อมคำแนะนำให้กระตุ้นการทำงานของ JXA dropper
รายละเอียดข่าว
เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 25 กันยายน พ.ศ. 2569 ว่า นักวิจัยจาก Jamf Threat Labs พบ PamStealer เวอร์ชันใหม่ที่ผูกการถอดรหัส payload เข้ากับเซิร์ฟเวอร์ควบคุมแบบสด ทำให้การวิเคราะห์แบบ static ทำได้ยากขึ้นมาก
นาย Thijs Xhaflaire นักวิจัยด้านความปลอดภัยอธิบายว่า ในเวอร์ชัน Maccy, Scoppr และ Nancy ซอร์ส JXA จะถอดรหัส payload ที่ฝังไว้ด้วย RC4 และจัดการกระบวนการดาวน์โหลดและเตรียม payload ทั้งหมดเอง แต่ในเวอร์ชัน Wavel ซอร์ส JXA ไม่มีส่วนเหล่านั้นเลย กลายเป็นเพียงตัวนำส่ง เมื่อ Script Editor รันไฟล์ มันจะถอดรหัสสตริง base64 แล้วส่งผลลัพธ์เข้าไปยัง /bin/zsh -s ซึ่ง zsh จะอ่านและรันไบต์ที่ถอดรหัสจาก standard input จากนั้นโพรเซส JXA จะปิดตัวทันที ขณะที่ dropper ฝั่ง zsh ทำงานต่อในเบื้องหลัง
สคริปต์ zsh ที่ถอดรหัสจะดำเนินการต่อด้วยการดาวน์โหลดและเรียกใช้เครื่องมือถอดรหัสชื่อ “pkgunpack” จาก “wavel.apple03cloudstore[.]com” ทำการแลกกุญแจแบบ X25519 ถอดรหัสและเตรียมชุด payload ระงับการแจ้งเตือนของ macOS ที่ปกติจะเตือนผู้ใช้เมื่อมี background login item ใหม่ถูกเพิ่ม แล้วติดตั้งกลไกฝังตัวสำรองสี่ชั้นผ่าน LaunchAgent สคริปต์ซ่อมที่คอยกู้คืนทั้งชุด payload และ LaunchAgent หากถูกลบ และ hook ที่ต่อท้าย ~/.zshrc เพื่อกระตุ้นสคริปต์ซ่อมทุกครั้งที่เปิดเซสชัน zsh ใหม่ ที่น่าสนใจคือสคริปต์ซ่อมยังถูกคัดลอกไปยังโฟลเดอร์ git hooks และตั้งค่า core.hooksPath ทำให้ทุกครั้งที่มีการ git checkout หรือ git commit ในเครื่องที่ถูกเจาะ สคริปต์ซ่อมจะทำงานเงียบ ๆ

วิธีการโจมตี
หัวใจของเทคนิคใหม่คือการผูกการถอดรหัส payload เข้ากับเซิร์ฟเวอร์ควบคุม เนื่องจากเซิร์ฟเวอร์เป็นผู้ถือกุญแจส่วนตัวที่ใช้ทำการแลกกุญแจให้สมบูรณ์ กุญแจเข้ารหัสข้อมูล (Data Encryption Key — DEK) จึงไม่สามารถกู้คืนได้หากไม่มีเซิร์ฟเวอร์ ยิ่งไปกว่านั้น เนื่องจากมีการสร้างคู่กุญแจชั่วคราว (ephemeral keypair) ใหม่ทุกครั้งที่รัน ค่า DEK ที่ดักจับได้จึงไม่สามารถนำมาเล่นซ้ำเพื่อแกะเนื้อหา payload ได้ ผลคือ payload ที่เข้ารหัสไว้แทบไร้ประโยชน์ต่อการวิเคราะห์แบบ static หากไม่มีเซสชัน C2 ที่ยังทำงานอยู่
ขั้นสุดท้ายคือคอมโพเนนต์ตัวขโมยที่เขียนด้วย Swift ซึ่งเปลี่ยนจากเวอร์ชันก่อนที่ใช้ Rust แต่เป้าหมายยังเหมือนเดิม ได้แก่ การดักจับรหัสผ่านระบบด้วยการแสดงหน้าต่างแจ้งแครชปลอมแล้วตรวจสอบข้อมูลที่กรอกด้วยวิธีตรวจผ่าน PAM การดึงรายการใน keychain การขโมยข้อมูลรับรองจากเบราว์เซอร์ตระกูล Chromium และ Firefox กว่าสิบตัว รวมถึง Google Chrome, Microsoft Edge, Mozilla Firefox, Brave, Vivaldi, Opera, Arc, Zen และแม้แต่เบราว์เซอร์ Cốc Cốc ของเวียดนาม การเก็บ metadata และรูปโปรไฟล์ผู้ใช้ การเก็บไฟล์อย่าง .zsh_history, .zshrc, .bash_history และ .gitconfig ตลอดจนการแจกแจงโพรเซสและแอปที่ติดตั้ง นาย Xhaflaire ระบุว่าการรวมเบราว์เซอร์เฉพาะภูมิภาคและสายเน้นความเป็นส่วนตัวเข้าไปด้วย ขยายรายการเป้าหมายไปไกลกว่ามัลแวร์ขโมยข้อมูล macOS ทั่วไป
ผลกระทบ
PamStealer เวอร์ชัน Wavel สะท้อนการลงทุนอย่างจงใจในโครงสร้างพื้นฐานการส่งมอบและการต้านการวิเคราะห์ การผูกการถอดรหัสเข้ากับเซิร์ฟเวอร์สดทำให้ทีมวิเคราะห์มัลแวร์ไม่สามารถแกะ payload จากตัวอย่างที่จับได้เพียงลำพัง ต้องอาศัยเซสชัน C2 ที่ยังทำงานอยู่ ซึ่งย้ายอำนาจการควบคุมส่วนหนึ่งไปอยู่ที่ผู้ดำเนินการเซิร์ฟเวอร์ กลไกฝังตัวสี่ชั้นบวกกับ git hook ทำให้ถอนการติดตั้งได้ยากและมัลแวร์กลับมาทำงานซ้ำแม้ถูกลบบางส่วน ขณะที่การขโมยรหัสผ่านผ่านหน้าต่างแครชปลอม การดูด keychain และข้อมูลจากเบราว์เซอร์จำนวนมาก ทำให้ผู้ใช้ macOS โดยเฉพาะกลุ่มที่เกี่ยวข้องกับคริปโทเคอร์เรนซีมีความเสี่ยงสูงที่จะสูญเสียทั้งข้อมูลรับรองและสินทรัพย์
คำแนะนำ
- หลีกเลี่ยงการดาวน์โหลดแอปหรือกระเป๋าคริปโทจากเว็บไซต์ที่ไม่เป็นทางการ และตรวจสอบชื่อโดเมนให้แน่ชัดก่อนดาวน์โหลดไฟล์ DMG
- ระวังไฟล์ที่สั่งให้เปิดผ่าน Script Editor หรือให้รันคำสั่งใน Terminal ซึ่งเป็นสัญญาณของ dropper แบบ AppleScript/JXA
- เฝ้าระวัง LaunchAgent ที่น่าสงสัย การแก้ไข ~/.zshrc และการตั้งค่า git core.hooksPath ที่ผิดปกติ
- ใช้เครื่องมือ EDR สำหรับ macOS ที่ตรวจพฤติกรรม และหมุนเวียนรหัสผ่านกับข้อมูลรับรองทันทีหากสงสัยว่าติดมัลแวร์
แหล่งอ้างอิง
- PamStealer macOS Malware Adds Live C2 Payload Decryption and Multi-Layer Persistence — The Hacker News
- PamStealer (Wavel) macOS Infostealer — Jamf Threat Labs
