Giới thiệu
Đây là lỗ hổng nghiêm trọng vừa được công bố ngày 10/01/2024 (CVE-2023-6875 được đánh giá với điểm nguy hiểm 9.8/10, gần như tuyệt đối), cho phép kẻ tấn công dễ dàng chiếm quyền admin của wesbite và cài đặt backdoor.
Tình trạng
- Website vẫn truy cập bình thường.
- Vào wp-admin báo lỗi 403 hoặc sai password.
- Password admin thường xuyên bị thay đổi.
- File .htaccess xuất hiện nội dung lạ, chặn truy cập vào wp-admin.
- Nội dung file .htaccess tự động được chèn vào sau mỗi lần xoá đi.
Kiểm tra
Kiểm tra checksum của WordPress core cho thấy rất nhiều file core đã bị thay đổi so với source gốc. Mở chi tiết lên xem thì thấy bị chèn thêm mã độc tùm lum vào các file. Trong đó, có đoạn nguy hiểm nhất là file “wp-login.php” bị thay đổi với mục đích keylog để ghi lại username/password của tất cả user khi đăng nhập 1 cách tự động.
Hàng trăm file khác bị chèn backdoor một cách “bạo lực” và đa dạng biến thể: chèn thêm code vào các file đang có sẵn trên server, chèn file mã độc mới, chèn vào file ẩn, file hình ảnh, file javascript, file css (sau đó dùng hàm require/include để gọi) => cách này nhằm bypass nếu chúng ta chỉ scan các file “.php”.
Ngoài shell PHP, xuất hiện thêm các shell perl/python … và các module để cố gắng tấn công chiếm quyền root server (get root).
Chèn thêm user mới với quyền admin.
Các mã độc được tự động sinh ra định kì, việc xử lý rất khó khăn. Khi mình xử lý đợt đầu, chỉ còn sót 1 con shell nhưng hôm sau lại đẻ ra hàng trăm con shell khác.
Phân tích & Truy vết
Phân tích log cho thấy attacker đăng nhập vào admin sau đó upload mã độc thông qua phần upload plugin.
Truy vết các IP liên quan cho thấy liên quan đến việc POST liên tục vào file XML-RPC => Dự đoán bị bruteforce pass admin nên tiến hành change toàn bộ pass, audit email và xoá account thừa.
Tuy nhiên, hôm sau lại tiếp tục bị attacker login vào admin một cách nhẹ nhàng (không thấy thực hiện bruteforce). Và điều thú vị bắt đầu từ đây.
Do các backdoor đã bị xoá sạch và theo dõi chặt chẽ, nên attacker không còn “cửa sau” để truy cập, buộc phải tấn công lại từ đầu. Khi khoanh vùng được IP tấn công (IP ở Đức), mình đã phân tích toàn bộ hành vi của attacker (log trong hình đính kèm).
Khi dò log cho thấy trước khi upload thành công plugin chứa mã độc, attacker đã truy cập thành công vào wp-admin. Tuy nhiên bước truy cập trước đó có liên quan đến thao tác “quên mật khẩu”, và phía trên đó có 1 đoạn log cực kì nghi vấn “POST /wp-json/post-smtp/v1/connect-app“
Research request này cho thấy liên quan đến lỗ hổng bảo mật cực kỳ nguy hiểm vừa được công bố vào ngày 10/01/2024 được đặt tên “CVE-2023-6875“. Lỗi bảo mật này cho phép attacker dễ dàng chiếm quyền admin của website, điểm nguy hiểm của lỗi này được đánh giá gần như tuyệt đối: 9.8/10 và ảnh hưởng đến 300,000 website WordPress .
Tóm tắt về lỗi này như sau:
"CVE-2023-6875 là một lỗ hổng bảo mật trong plugin POST SMTP Mailer cho WordPress. Lỗ hổng này cho phép kẻ tấn công không được xác thực reset API key được sử dụng để xác thực với mailer và xem nhật ký, bao gồm cả email đặt lại mật khẩu, cho phép chiếm đoạt trang web.
Lỗ hổng này xuất phát từ một vấn đề với cách plugin xử lý các tham số access_token và type trong API endpoint /wp-admin/admin.php. Cụ thể, plugin không kiểm tra chặt chẽ kiểu của các tham số này, cho phép kẻ tấn công truyền các giá trị không mong muốn.
Để khai thác lỗ hổng này, kẻ tấn công cần thực hiện các bước sau:
1. Tạo một token FCM giả mạo.
2. Gửi một yêu cầu POST tới endpoint /wp-json/post-smtp/v1/connect-app với token FCM giả mạo.
3. Gửi một yêu cầu GET tới endpoint /wp-json/post-smtp/v1/get-logs.
4. Trong yêu cầu GET, đặt tham số access_token thành token FCM giả mạo và tham số type thành log.
Sau khi thực hiện các bước trên, kẻ tấn công sẽ có thể xem tất cả các nhật ký, bao gồm cả email đặt lại mật khẩu. Kẻ tấn công có thể sử dụng thông tin này để đặt lại mật khẩu của người dùng admin và chiếm đoạt trang web."
Lỗ hổng này ảnh hưởng phiên bản SMTP Post <= 2.8.7 và đã có bản vá vào ngày 16/01/2024 – Hãy lập tức update plugin lên phiên bản mới nhất nếu bạn có sử dụng.
Kiểm tra username admin, bạn sẽ thấy xuất hiện token ở phần “Application password” – đây là dấu hiệu cho thấy website đã bị khai thác lỗ hổng trên.
Xử lý & Bảo mật
- Update plugin SMTP Post lên phiên bản mới nhất.
- Thay toàn bộ password admin, xoá account thừa.
- Xoá application password của các tài khoản.
- Thiết lập thêm password (“.htpasswd”) cho file “wp-login.php”
- Thiết lập captcha cho form login admin.
- Thay core wordpress để loại bỏ các mã độc bị chèn vào.
- Backup và monitor file mới thường xuyên (WordPress file change monitor).
Trích: Nguyễn Hưng (Bo) – Admin Vietnix