PHP2Shell bị dùng để chiếm gateway Check Point rồi xóa sạch dữ liệu máy chủ ESXi: bài học cho mọi hệ thống chạy PHP
Nội dung bài viết

Ngày 12/11/2026, Check Point Research công bố báo cáo về một chiến dịch tấn công dùng PHP2Shell, cặp lỗ hổng trong lõi PHP (CVE-2026-109618 và CVE-2026-109619) được vá khẩn hôm 21/10. Lần này mục tiêu không phải website mà là cổng Mobile Access trên gateway Check Point, thiết bị tường lửa và VPN mà nhiều doanh nghiệp đặt ngay ở rìa mạng.

Đây là một trong những vụ đầu tiên được mô tả đầy đủ cho thấy PHP2Shell bị dùng trong một chuỗi tấn công hoàn chỉnh, từ xâm nhập ban đầu tới xóa dữ liệu trên máy chủ ảo hóa VMware ESXi.

Nếu bạn chưa nắm PHP2Shell là gì, xem bài trước: PHP2Shell: hai lỗ hổng RCE trong lõi PHP bị khai thác từ trước khi có bản vá.

Diễn biến vụ tấn công

Theo Check Point Research, có hai đợt:

  • 30/10/2026: đợt đầu nhắm vào các tổ chức ở Israel, khoảng một tuần sau khi PHP có bản vá. Một số nạn nhân bị xóa dữ liệu.
  • 02/11/2026: đợt hai nhắm vào tổ chức ở nhiều quốc gia và lĩnh vực, chưa thấy giai đoạn phá hoại.

Check Point cho biết lỗi leo thang đặc quyền đi kèm đã bị khai thác ở khoảng vài chục khách hàng (theo BleepingComputer).

Chuỗi tấn công từng bước

  1. Xâm nhập bằng PHP2Shell: cổng Mobile Access dùng Apache và PHP để phục vụ trang đăng nhập. Kẻ tấn công gửi request khai thác PHP2Shell và chạy được mã với quyền tài khoản dịch vụ của cổng. Dấu vết để lại là các file session PHP chứa chuỗi upload_progress_pwn và hàng trăm lỗi segmentation fault của tiến trình Apache/PHP.
  2. Leo lên root bằng zero-day CVE-2026-123039: tiến trình DynamicCLI trên hệ điều hành Gaia chạy với quyền root và nhận lệnh qua một socket trong /tmp mà ai cũng ghi được, không kiểm tra người gọi. Chỉ cần có quyền chạy lệnh cục bộ là ra lệnh được với quyền root. CISA đã đưa lỗi này vào danh sách KEV (lỗ hổng đang bị khai thác) ngày 13/11.
  3. Cài web shell: các file zz<ký tự ngẫu nhiên>.tpl trong thư mục template của cổng Mobile Access, cùng file challenge_render.tpl dùng để tải file lên.
  4. Cài backdoor TSGA và TSProxy: backdoor chạy dưới tên CPconfigdaemon / slot_CPconfigdaemon để tự khởi động lại sau khi reboot, kèm thư viện /lib/libcpfwcommon.so giúp giấu kết nối của kẻ tấn công trong lưu lượng bình thường. TSGA còn có thể sửa log tường lửa để xóa dấu vết.
  5. Dò mạng nội bộ bằng công cụ mã nguồn mở gogo chạy ngay trên gateway.
  6. Đi ngang sang máy chủ ESXi qua SSH, đăng nhập bằng tài khoản hệ thống vpxuser.
  7. Xóa dữ liệu: chạy mã độc destroy_v6, xóa đệ quy mọi file trong thư mục chỉ định (có chế độ ghi đè số 0 trước khi xóa), để lại ghi chú DREAM_ANNEXATION.txt bằng tiếng Hebrew và từ chối mọi thương lượng tiền chuộc. Đây là tấn công phá hoại, không phải ransomware.

Ai đứng sau?

Check Point Research thấy TSGA và TSProxy là bản sửa đổi của bộ công cụ PhiliKit, từng xuất hiện trong các vụ tấn công Ivanti và được ESET gắn với nhóm UNC5221 có liên hệ Trung Quốc. Tuy nhiên, việc nhắm vào Israel, mã độc xóa dữ liệu và ghi chú tiếng Hebrew lại không khớp với cách hoạt động thường thấy của nhóm này.

Vì vậy Check Point Research để ngỏ nhiều khả năng: cùng một nhóm làm toàn bộ, nhóm này chỉ bán quyền truy cập cho nhóm khác, hoặc đây là đánh lạc hướng (false flag).

Ai cần làm gì?

Nếu doanh nghiệp bạn dùng Check Point

  • Cài bản November Jumbo Hotfix cho mọi Management Server và Security Gateway, ưu tiên gateway có cổng Mobile Access mở ra Internet. Theo BleepingComputer, bản này vá cả PHP2Shell lẫn CVE-2026-123039. Tham khảo thêm khuyến cáo sk1000362 của Check Point.
  • Nếu chưa vá được: Check Point hướng dẫn dừng tiến trình dynamic_server và chặn nó tự khởi động lại.
  • Vá xong chưa phải là hết. Nếu gateway từng mở Mobile Access ra Internet từ cuối tháng 10, cần kiểm tra các dấu hiệu bên dưới.

Dấu hiệu bị xâm nhập trên gateway Check Point

  • File session PHP chứa upload_progress_pwn (trong vụ này nằm ở /opt/CPcvpn-R81.20/tmp/).
  • File zz*.tpl, challenge_render.tpl lạ trong thư mục template của Mobile Access, file /tmp/.up.tpl.
  • Tiến trình hoặc file CPconfigdaemon, slot_CPconfigdaemon, /lib/libcpfwcommon.so, socket /tmp/.p_sock, kết nối cổng TCP 11072.
  • Log tường lửa bị hụt một khoảng thời gian không rõ lý do.
  • Gateway SSH vào máy ESXi nội bộ: Check Point coi đây là dấu hiệu rõ ràng đã bị xâm nhập.
  • IP liên quan: 130.94.19[.]204 và 130.94.19[.]168.

Nếu thấy dấu hiệu, nên coi như kẻ tấn công đã có quyền root trên gateway: cách ly thiết bị, đổi toàn bộ thông tin đăng nhập quản trị và tài khoản VPN, kiểm tra các máy chủ ESXi và bản sao lưu.

Nếu bạn chỉ quản lý website PHP

Chưa có báo cáo nào cho thấy chiến dịch này nhắm vào website thông thường, nhưng vụ việc cho thấy ba điều đáng chú ý:

  • PHP2Shell đã được dùng trong tấn công thật, có phá hoại. Nếu máy chủ của bạn vẫn chưa lên PHP 8.5.12, 8.4.27, 8.3.36 hoặc 8.2.35 (hoặc bản vá tương ứng của nhà phân phối), hãy làm ngay và nhớ khởi động lại PHP-FPM/Apache.
  • PHP không chỉ nằm trên web server. Thiết bị VPN, tường lửa, panel quản trị, phần mềm tự host đều có thể đóng gói PHP riêng. Cập nhật PHP của hệ điều hành không vá được bản PHP nhúng bên trong các thiết bị này, phải chờ bản cập nhật của hãng.
  • Kiểm tra thư mục session PHP: tìm chuỗi upload_progress_pwn trong thư mục session của máy chủ (xem giá trị session.save_path, thường là /var/lib/php/sessions hoặc /tmp). Kết hợp với các dấu hiệu đã nêu trong bài PHP2Shell trước như file wp2s.php, chuỗi P2S_OK, file PHP lạ mới xuất hiện.

Ngoài ra, nếu bạn dùng ESXi hay máy chủ ảo hóa, đây là lời nhắc giữ ít nhất một bản sao lưu tách rời (offline hoặc bất biến), vì mã độc xóa dữ liệu đi thẳng vào máy chủ ảo hóa và không cho cơ hội chuộc lại.

Nguồn tham khảo: Check Point Research, BleepingComputer - wiper ESXi, BleepingComputer - zero-day root, Security Affairs, The Hacker News.