Kỹ thuật khai thác lỗ hổng bảo mật Web trên Metasploit Framework (P3)

Tram Ho

Tiếp nối những kiến thức còn dang dở ở phần 2 . Hôm nay chúng ta sẽ tiếp tục cùng nhau viết một mã khai thác đơn giản trên Metasploit Framework.

7. Kịch bản khai thác lỗ hổng Path traversal trong CMS Voyager Laravel

Do mục tiêu hướng tới là viết mã khai thác đơn giản, nên việc chọn lựa nền tảng kiểm thử ban đầu là khá quan trọng. Chúng ta cố gắng chọn những lỗ hổng dễ khai thác, con đường khai thác ngắn và ít tốn công nhất. Ở đây mình chọn lỗ hổng Path traversal trong CMS Voyager Laravel vì nó đáp ứng đầy đủ các yêu cầu trên. Mức độ khai thác dễ dàng cũng như dễ hình dung tính hiệu quả của mã. Lỗ hổng này do một người đồng nghiệp của mình tìm ra và public tại đây

7.1 Dựng môi trường thử nghiệm

Voyager là một ứng dụng web mã nguồn mở xây dựng trên Framework Laravel của PHP. Voyager là mã nguồn mở và hiện đang được phát triển tại https://github.com/the-control-group/voyager. Ứng dụng giúp người sử dụng có thể tạo ra một trang quản trị hệ thống một cách nhanh chóng và dễ dàng.

Để có thể cài đặt Voyager, trước tiên chúng ta cần cài đặt PHP và Laravel. Phần sau đây hướng dẫn cài đặt PHP và Laravel trên môi trường máy chủ Centos 7.0

Đầu tiên sử dụng lệnh sau để cài đặt máy chủ web Apache:

Sau khi cài xong, khởi động Apache và đặt cho Apache khởi chạy cùng hệ thống:

Cài đặt rules cho firewall để Apache có thể hoạt động:

Cài đặt hệ quản trị cơ sở dữ liệu Mysql:

Cài đặt PHP 7.2

Cài đặt “composer” và “Laravel”:

Sau khi đã xây dựng được môi trường cần thiết trên máy chủ. Chúng ta tiến hành cài đặt Voyager version 1.3.0:

Tạo một cơ sở dữ liệu với Mysql sau đó chỉnh sửa tệp “.env” tại đường dẫn thư mục: “/var/www/html/voyager/.env” và thêm vào các thông số cấu hình như sau:

Bắt đầu quá trình cài đặt và cấu hình Voyager tự động:

Sau khi thực hiện các bước trên, Voyager đã được cài đặt thành công trên máy chủ.
Sử dụng lệnh sau để có thể chạy dịch vụ. Thêm tham số “–host = 0.0.0.0” để Voyager có thể truy cập từ các địa chỉ ip bên ngoài.

Mặc định Voyager sẽ chạy trên cổng 8000. Có thể sử dụng tham số “–port=[port]” để thay đổi cổng dịch vụ Voyager lắng nghe.

Sau khi chạy chương trình, truy cập địa chỉ http://ip:8000/admin để vào trang quản trị của Voyager:

7.2 Khai thác lỗ hổng Path traversal trong CMS Voyager Laravel bằng “tay”

Chúng ta cùng xem qua mã nguồn của API :

Trong các ứng dụng xây dựng trên Voyager có một API là “GET /admin/voyager-assets?path=[….]”. Với tham số “path” là đường dẫn tới các tệp tài nguyên như hình ảnh, javascript,files … của ứng dụng.

Đoạn mã trên đã cố gắng chống lại “Path traversal” bằng cách xóa đi những chuỗi “../” và “./” nhưng rõ ràng là chưa triệt để. Kẻ tấn công có thể dễ dàng bypass bằng cách sử dụng các chuỗi kí tự “…..%2F%2F%2F”. Từ đó có thể khai thác “Path traversal” và đọc được các tệp tin hệ thống trên máy chủ:

Lỗ hổng trên đã được vá từ các phiên bản >1.3.0. Chi tiết về bản vá tại đây:

7.3 Khai thác lỗ hổng Path traversal trong CMS Voyager Laravel bằng Metasploit Framework

Trước tiên cần khai báo các thông tin về lỗ hổng và các tham số cần thiết:

Hai câu lệnh sau dùng để khai báo hai tham số cần thiết cho việc khai thác. “FILEPATH” là đường dẫn tuyệt đối của tệp trên máy chủ. “DEPTH” là tham số xác định bậc của thư mục Voyager hiện hành. Mặc định được để là 10:

Tiếp là phần mã dùng để gửi yêu cầu đến máy chủ và khai thác lỗ hổng:

Do lỗ hổng không yêu cầu xác thực và nền tảng kiểm thử không sử dụng các phương pháp đảm bảo an toàn tối thiểu, nên việc viết mã khai thác là tương đối dễ dàng.

7.3.1 Sử dụng mã khai thác

Lưu mã khai thác vào thư mục cài đặt Metasploit Framework “/usr/share/metasploit-framework/modules/exploits/myexploits/voyager.rb”. Sau đó khởi động Voyager. Đặt các tham số cần thiết cho việc khai thác:

Sau khi khai thác, Metasploit Framework sẽ trả lại đường dẫn lưu tệp. Sử dụng lệnh cat để xem nội dung tệp:

8. Tổng kết

Qua đây, chúng ta đã cùng nhau xây dựng thành công một mã khai thác đơn giản trên Metasploit Framework . Ở phần tiếp theo, mình sẽ trình bày các mã khai thác khó hơn, con đường khai thác dài và phức tạp hơn. Xin cảm ơn mọi người đã đọc tới đây, hẹn gặp lại ở phần 4.

Tài liệu tham khảo :

https://github.com/rapid7/metasploit-framework/wiki

https://www.offensive-security.com/metasploit-unleashed/

Thank to doandinhlinh

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo