About Me

header ads

CVE-2022-30333

CVE-2022-30333 | Lỗ hổng Path Traversal trên UnRar cho phép thực thi mã từ xa trên Zimbra

Threat ID VTI_2022_3986
Mức độ NGHIÊM TRỌNG
Sản phẩm Zimbra, unrar
Phiên bản Zimbra các phiên bản: 8.x trước 8.8.15 patch 31.1, 9.x trước 9.0.0 patch 24.1, Unrar các
phiên bản trước 6.1.7 và 6.12.
Mã lỗi CVE-2022-30333
Ngày tạo 12:29 29/06/2022

Tổng quan

VCS-TI cảnh báo về nguy cơ thực thi mã từ xa trên Zimbra. Nguy cơ xảy ra do Zimbra sử dụng công cụ unrar tồn tại lỗ
hổng Path Traversal. Tin tặc có thể khai thác lỗ hổng để tải lên JSP shell, từ đó thực thi mã từ xa trên hệ thống mà
không cần xác thực. Thông tin chi tiết của lỗ hổng đã được công bố trên không gian mạng. Hiện tại, lỗ hỗng đã có bản
vá chính thức trên Zimbra. Quản trị viên cần nắm bắt thông tin và kịp thời đưa ra phương án để ngăn ngừa nguy cơ.

Mô tả chi tiết

Dựa trên các tiêu chí:
Zimbra là sản phẩm được sử dụng phổ biến tại Việt Nam.
Sau CVE-2022-27924, Zimbra đang là mục tiêu của nhiều nhóm tấn công, tin tặc.
Tin tặc có thể khai thác lỗ hổng, từ đó thực thi mã từ xa trên hệ thống mà không cần xác thực.
Lỗ hổng đã có bản vá chính thức từ phía hãng.
VCS-TI đánh giá nguy cơ ở mức Nghiêm Trọng.

Thông tin chi tiết:

Nguy cơ xảy ra do Zimbra sử dụng công cụ của bên thứ 3 unrar, công cụ kiểm tra virus và spam email. Unrar tồn tại lỗ
hổng Path Traversal CVE-2022-30333.

CVE-2022-30333 - Lỗ hổng File Write trên unrar:

Một lệnh gọi unrar điển hình trên command-line có thể giống như sau:

unrar x archive.rar /tmp/extract

Lệnh trên sẽ trích xuất tất cả các tệp trong archive.rar ra thư mục /tmp/extract.

Tin tặc có thể trích xuất một symbolic link nằm ngoài thư mục trích xuất, sau đó dereference nó với tệp thứ 2. Một số
symbolic links độc hại trên Unix và Windows:

Hàm IsRelativeSymLinkSafe() thực hiện kiểm tra relative symbolic links:

extinfo.cpp:

Hàm này kiểm tra liệu symbolic link mục tiêu có bao gồm ../ trên Unix và ..\ trên Windows hay không. Nếu có dấu hiệu
path traversal, symbolic link được xem là không an toàn.

Sau khi symbolic link được kiểm tra, nó được chuẩn hóa bởi unrar. Để đảm bảo rằng một tệp tin nén RAR được tạo

trên Windows có thể được trích xuất trên hệ thống Unix, kí tự (\) được chuyển đổi thành (/). Hàm DosSlashToUnix
thực hiện điều này:

ulinks.cpp:

Kẻ tấn công có thể tạo một tệp tin nén RAR gồm một symbolic link thuộc loại FSREDIR_WINSYMLINK với mục
tiêu là ..\..\..\tmp/shell. Khi tệp này được giải nén trên hệ thống Unix, symbolic link được coi là an toàn vì không có
chuỗi ../ nào. Tuy nhiên, do hàm DosSlashToUnix, symbolic link cuối cùng được chuyển thành ../../../tmp/shell. Tận
dụng điều này, tin tặc có thể chèn tệp ở bất kì đâu trên hệ thống mục tiêu.

Khai thác lỗ hổng trên Zimbra:

Khi hệ thống nhận được một email bao gồm một tệp đính kèm có chứa tệp tin nén RAR , nó sẽ được tự động trích xuất
và phân tích bởi
Amavis dựa trên unrar. Trong Zimbra, phần lớn service bao gồm Amavis server chạy dưới quyền
zimbra user.
Điều này cho phép tin tặc tạo và ghi đè các file trên các thư mục của các service khác. Và tin tặc có thể thực thi mã từ
xa bằng nhiều cách khai thác khác nhau.

Một trong số các cách tấn công được sử dụng:

1. Tạo một JSP shell ở web directory (/opt/zimbra/jetty_base/webapps/zimbra/public/). Bởi vì Jetty chạy dưới quyền
zimbra user.

2. Sử dụng file-based command injection:
Tin tặc có thể khai thác một cronjob chạy mỗi ngày một lần để xử lý các tệp log.
Tại zm-core-utils/src/libexec/client_usage_report.py có thể thấy cách danh sách các tệp log được phân tích cú pháp và
sau đó tên của mỗi tệp log được nhúng vào lệnh hệ thống mà không cần kiểm tra:

Vì thư mục log được sở hữu bởi zimbra user, tin tặc có thể tạo một tệp log access_log$(date) để kích hoạt cron job.

3. Tạo một SSH key:
Theo mặc định, zimbra user có thể SSH vào hệ thống. Do đó, tin tặc có thể tạo một tệp authorized_keys để đăng nhập
hệ thống với SSH key của tin tặc.
passwd entry mặc định của zimbra user:

/etc/passwd
zimbra:x:997:998::/opt/zimbra:/bin/bash


Kịch bản khai thác lỗ hổng:

1. Tin tặc gửi một tệp đính kèm tới hệ thống bao gồm một tệp tin nén RAR trong đó có chứa payload độc hại để khai
thác lỗ hổng trên
unrar.

2. Tin tặc sử dụng một trong các cách khai thác ở trên để thực thi mã từ xa với quyền
zimbra user.

3. Tin tặc sử dụng các lỗ hổng leo thang đặc quyền tồn tại trên Zimbra để có được đặc quyền root trên hệ thống.

Ví dụ như lỗ hổng:

https://darrenmartyn.ie/2021/10/27/zimbra-zmslapd-local-root-exploit/

Điều kiện khai thác

  • Máy chủ sử dụng Zimbra các phiên bản:
    • 8.x trước 8.8.15 patch 32.
  • 9.x trước 9.0.0 patch 25.
    • Zimbra có cài đặt unrar phiên bản trước phiên bản 6.1.7 và 6.12.

Dấu hiệu nhận biết/Cách khắc phục

Dấu hiệu nhận biết:

Các dấu hiệu nhận biết khi tin tặc khai thác lỗ hổng:
Tin tặc gửi email đến hệ thống với tệp đính kèm có một tệp tin nén dạng rar hoặc zip, trong đó có chứa một trong các
file có tên:
  • ..\..\..\tmp/shell
  • /opt/zimbra/jetty_base/webapps/zimbra/public/
  • /opt/zimbra/log/access_log
  • /opt/zimbra/.ssh/authorized_keys

Biện pháp khắc phục:

VCS-TI khuyến nghị quản trị viên cập nhật phiên bản Zimbra lên phiên bản 8.8.15 Patch 32 và 9.0.0 Patch 25.
  • 8.8.15 Patch 32:
    • https://wiki.zimbra.com/wiki/Zimbra_Releases/8.8.15/P32#Security_Fixes
  • 9.0.0 Patch 25:
    • https://wiki.zimbra.com/wiki/Zimbra_Releases/9.0.0/P25#Security_Fixes

Cách khắc phục tạm thời:

Sửa file config để sử dụng 7zip thay vì unrar và restart lại dịch vụ Amavisd. Chi tiết cách sửa file config xem
thêm tại:
https://github.com/Zimbra/zm-amavis/commit/94308d6e1192495fd1cd2ccbd8d85aef5eff8084.

Đăng nhận xét

0 Nhận xét