Hướng dẫn khai thác lỗ hổng Spring4Shell sử dụng Metasploit

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ợ.

spring4shell-whitehat.png

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
Máy tính nạn nhân:
  • 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
Các bước thực hiện

1. Sử dụng nmap để lấy thông tin về mục tiêu.

1.png


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
Ở đây, cổng 8085 mở và liên kết với Tomcat, cũng có thể liên quan đến lỗ hổng Spring4Shell. Do đó, chúng ta sẽ dùng Metasploit để kiểm tra lỗi.

3. Khởi chạy Metasploit, và sử dụng module spring_framework_rce_spring4shell


2.png


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

3.png


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

4.png


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.


5.png


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

6.png


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

7.png


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:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  • Thích
Reactions: Vampires1607
Thẻ
cve-2022-22965 metasploit spring4shell
Bên trên