DDos
VIP Members
-
22/10/2013
-
524
-
2.191 bài viết
Hướng dẫn khai thác lỗ hổng Spring4Shell sử dụng Metasploit
Trong những ngày cuối tháng 3, cộng đồng an ninh mạng trên toàn cầu lại sục sôi về một lỗ hổng thực thi mã mới được tiết lộ trong Spring Framework.
Lỗ hổng được biết đến với tên gọi ‘Spring4Shell’. Khai thác thành công lỗ hổng cho phép thực thi mã từ xa không cần xác thực trên các ứng dụng bị ảnh hưởng. CVE-2022-22965 ảnh hưởng Spring Framework phiên bản 5.3.0 đến 5.3.17, 5.2.0 đến 5.2.19 và các phiên bản cũ hơn không còn được hỗ trợ.
Ngay từ thời điểm lỗ hổng được tiết lộ công khai, chi tiết kỹ thuật và mã khai thác (PoC) đã được công bố ngay sau đó. Đáng chú ý, lỗ hổng đã bị hacker khai thác trong thực tế trong một khoảng thời gian trước khi được phanh phui. PoC đã được tiết lộ, là cơ hội không thể tốt hơn cho hacker sử dụng lỗ hổng để tấn công vào hệ thống. Mirai là cái tên mới nhất tận dụng lỗ hổng này.
Trong bài viết này, mình sẽ hướng dẫn các bạn cách khai thác lỗ hổng Spring4Shell sử dụng Metasploit. Mặc dù đã có rất nhiều PoC xuất hiện trên Github, nhưng việc sử dụng module tích hợp sẵn trong Metasploit sẽ giúp bạn đơn giản hóa việc khai thác cũng như tận dụng các tính năng có sẵn của nền tảng này.
Yêu cầu:
Máy tính dùng để khai thác:
1. Sử dụng nmap để lấy thông tin về mục tiêu.
2. Kết quả được trả về cho thấy có Apache Tomcat phiên bản 9.0.59 chạy trên cổng 8085. Theo như thông tin trên trang web của Spring, lỗ hổng Spring4Shell tồn tại khi thỏa mãn cả 4 điều kiện sau:
3. Khởi chạy Metasploit, và sử dụng module spring_framework_rce_spring4shell
4. Tìm hiểu một vài thông tin liên quan đến module này thông qua lệnh: show info
5. Thiết lập các giá trị tương ứng cho tham số RHOSTS, RPORT, TARGETURI. Lưu ý, bạn cần chọn đúng TARGET thì khai thác mới hoạt động
6. Module này hỗ trợ tính năng check, cho phép kiểm tra mục tiêu có thể bị khai thác bởi lỗ hổng này hay không.
Kết quả trả về cho thấy, mục tiêu có thể bị khai thác.
7. Để khai thác, sử dụng lệnh exploit -j
Một kết nối shell đã được tạo.
8. Với shell này, chúng ta có thể thực hiện nhiều việc trên máy tính mục tiêu
Do mức độ nguy hiểm và cách thức khai thác rất dễ dàng, .gười dùng nên nâng cấp lên phiên bản 5.3.18 trở lên và 5.2.20 trở lên để không bị khai thác bởi tin tặc.
Lỗ hổng được biết đến với tên gọi ‘Spring4Shell’. Khai thác thành công lỗ hổng cho phép thực thi mã từ xa không cần xác thực trên các ứng dụng bị ảnh hưởng. CVE-2022-22965 ảnh hưởng Spring Framework phiên bản 5.3.0 đến 5.3.17, 5.2.0 đến 5.2.19 và các phiên bản cũ hơn không còn được hỗ trợ.
Ngay từ thời điểm lỗ hổng được tiết lộ công khai, chi tiết kỹ thuật và mã khai thác (PoC) đã được công bố ngay sau đó. Đáng chú ý, lỗ hổng đã bị hacker khai thác trong thực tế trong một khoảng thời gian trước khi được phanh phui. PoC đã được tiết lộ, là cơ hội không thể tốt hơn cho hacker sử dụng lỗ hổng để tấn công vào hệ thống. Mirai là cái tên mới nhất tận dụng lỗ hổng này.
Trong bài viết này, mình sẽ hướng dẫn các bạn cách khai thác lỗ hổng Spring4Shell sử dụng Metasploit. Mặc dù đã có rất nhiều PoC xuất hiện trên Github, nhưng việc sử dụng module tích hợp sẵn trong Metasploit sẽ giúp bạn đơn giản hóa việc khai thác cũng như tận dụng các tính năng có sẵn của nền tảng này.
Yêu cầu:
Máy tính dùng để khai thác:
- Kali Linux hoặc các bản phân phối của Linux có cài đặt Metasploit
- Module spring_framework_rce_spring4shell.rb. Do module này chưa được tích hợp vào kho lưu trữ chính thức của Metasploit, nên bạn cần tải về thủ công và lưu vào đường dẫn /usr/share/metasploit/modules/exploit/multi/http
- Cài đặt sẵn docker
- Tải docker image Spring4Shell-POC
- Chạy lần lượt các lệnh sau:
- docker build . -t spring4shell
- docker run -p 8085:8080 spring4shell
1. Sử dụng nmap để lấy thông tin về mục tiêu.
2. Kết quả được trả về cho thấy có Apache Tomcat phiên bản 9.0.59 chạy trên cổng 8085. Theo như thông tin trên trang web của Spring, lỗ hổng Spring4Shell tồn tại khi thỏa mãn cả 4 điều kiện sau:
- Chạy JDK 9.0 trở lên
- Phiên bản Spring Framework 5.3.0 đến 5.3.17, 5.2.0 đến 5.2.19 và các phiên bản cũ hơn
- Apache Tomcat làm vùng chứa Servlet
- Được đóng gói dưới dạng một kho lưu trữ web Java truyền thống (WAR) và được triển khai trong một phiên bản Tomcat độc lập
- Tomcat sử dụng các phụ thuộc spring-webmvc hoặc spring-webflux
3. Khởi chạy Metasploit, và sử dụng module spring_framework_rce_spring4shell
4. Tìm hiểu một vài thông tin liên quan đến module này thông qua lệnh: show info
5. Thiết lập các giá trị tương ứng cho tham số RHOSTS, RPORT, TARGETURI. Lưu ý, bạn cần chọn đúng TARGET thì khai thác mới hoạt động
6. Module này hỗ trợ tính năng check, cho phép kiểm tra mục tiêu có thể bị khai thác bởi lỗ hổng này hay không.
Kết quả trả về cho thấy, mục tiêu có thể bị khai thác.
7. Để khai thác, sử dụng lệnh exploit -j
Một kết nối shell đã được tạo.
8. Với shell này, chúng ta có thể thực hiện nhiều việc trên máy tính mục tiêu
Do mức độ nguy hiểm và cách thức khai thác rất dễ dàng, .gười dùng nên nâng cấp lên phiên bản 5.3.18 trở lên và 5.2.20 trở lên để không bị khai thác bởi tin tặc.
Chỉnh sửa lần cuối bởi người điều hành: