NỘI DUNG
Trong 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, tôi đã đề cập một số nội dung liên quan đến Target tab trong quá trình thiết lập và kiểm tra ban đầu. Trong kỳ này, tôi sẽ quay trở lại bàn kỹ hơn về phần giao diện và tính năng của thằng Target này.
Target (và Proxy) tab chủ yếu phục vụ reconnaissance/mapping/analysis. Và dù không có các màn tấn công khai thác kịch tính như các tab khác nhưng đây là vị trí bàn đạp quyết định thành bại của các cuộc tấn công nên bạn cần đặc biệt lưu ý.
#1. Thiết lập Target/Scope cho Burp Suite
Việc đầu tiên bạn cần xem xét trước khi bắt tay vô đâm chém là kiểm tra và thiết lập phạm vi chiến đấu với tab Target/Scope. Việc này sẽ rất hữu ích trong tình huống bạn đụng các mục tiêu to bự hoặc có nhiều mối quan hệ, liên kết nhập nhằng. Phần Target/Scope này sẽ hỗ trợ bạn giảm tải dữ liệu thông qua:
- Thiết lập để Proxy chỉ intercept in-scope items;
- Thiết lập để Spidering hoặc Live scanning chỉ múc đám in-scope items;
- Thực hiện filter tại các vị trí tổng hợp thông tin quan trọng như Target/Site map hoặc Proxy/HTTP history để giúp tập trung vô đối tượng chính.
#1.1 Thiết lập Target/Scope bằng context menu
Thông thường, cách thiết lập scope đơn giản nhất là bạn truy cập vào mục tiêu bằng browser. Sau đó, tại Target/Site map, bạn chuột phải vô item cần quan tâm rồi chọn Add to scope (phần chi tiết Target/Site map về tôi trình bày ngay bên dưới). Ví dụ như sau:
#1.2 Thiết lập Target/Scope theo cách chuẩn cmn mực
Tuy nhiên, với cách trên, bạn sẽ cần “dọn rác” vì sẽ xuất hiện thêm đám ăn theo có liên kết nhập nhằng với mục tiêu. Để xử lý chuẩn cmn mực, bạn sẽ cần truy cập đến vị trí Target/Scope. Tại đây, bạn sẽ có tùy chọn Include in scope cho phép Add/Edit/Remove/Paste URL hay thậm chí Load từ file có sẵn. Với trường hợp thử Add thủ công, bạn sẽ thấy thông báo từ Proxy history logging hỏi có muốn loại đám râu ria nằm ngoài scope ra khỏi Proxy/HTTP history không (nếu không có gì đặc biệt thì câu trả lời sẽ là Yes để tránh phải hốt đống dữ liệu không cần thiết)?
Ngay phía bên dưới, bạn sẽ có tùy chọn Exclude from scope. Thằng này sẽ đặc biệt hữu ích khi bạn cần loại trừ một số path không muốn quan tâm ví dụ như https://portswigger.net/images. Hoặc các vị trí đặt biệt như https://portswigger.net/logout để tránh việc Burp Suite chạy tự động và logout trong quá trình càn quét mục tiêu.
#1.3 Thiết lập Target/Scope bằng Proxy Pattern
Ngoài ra, bạn còn có một phương án khác là xử lý thông qua Proxy Pattern của external browser, cụ thể là thằng FoxyProxy tôi đề cập trong kỳ trước (để xài Pattern, bạn phải dùng bản Standard thay vì Basic của Foxy Proxy).
Sau khi điền các thông tin cần thiết và chọn Save & Edit Patterns, bạn có thể thiết lập Pattern để hốt hết domain và subdomain của mục tiêu kiểu như sau rồi Save.
Trường hợp cần chỉnh sửa/cập nhật, bạn có thể truy cập lại vị trí Patterns như bên dưới.
Lưu ý: để kích hoạt việc sử dụng với Patterns, bạn cần tick chọn Use Enabled Proxies By Patterns and Order như bên dưới.
#2. Hốt hàng về Target/Site map với Manual application mapping
Như tôi nói trên, Target tab hay cụ thể hơn là Target/Site map là vị trí cho bạn cái nhìn tổng thể nội dung và chức năng của mục tiêu để định hình các công việc cần thiết. Và để có dữ liệu phục vụ mục đích này, trước hết bạn sẽ cần thực hiện một công việc gọi là Manual application mapping (tôi tạm dịch thô bỉ là xây dựng thủ công bản đồ của mục tiêu) thông qua các bước:
- Khởi động browser (đã cấu hình proxy để đẩy traffic qua Burp Suite như kỳ trước) hoặc browser tích hợp của Burp Suite;
- Chọn Intercept is off trong phần Proxy của Burp Suite (xem lại kỳ trước nếu bạn không biết chọn Intercept is off chỗ nào) để đỡ phải xử lý traffic thủ công trên Burp Suite;
- Dùng browser tiến hành duyệt thủ công toàn bộ nội dung của mục tiêu bao gồm truy cập từng link, submit tất cả form, xử lý tất cả các bước có thể có và log in (nếu có thể) để truy cập tất cả các khu vực yêu cầu credentials.
Dữ liệu thu được từ quá trình Manual application mapping sẽ được đổ hết vô Target/Site map cho bạn để phân tích ở các bước tiếp theo.
Lưu ý:
- Ngoài việc cào hốt thông qua Proxy, bạn còn có thể lấy thông tin thông qua hoạt động Live passive crawling, Content discovery (đề cập ở phần Target/Site map context menu bên dưới) hay thậm chí nhập liệu trực tiếp bằng tay và từ output của tool khác;
- Phần crawling tôi sẽ giới thiệu kỹ trong các kỳ sau, còn giờ bạn có thể tạm hình dung là Burp Suite có automated crawler với khả năng thực hiện tự động việc cào hốt thay vì bạn làm thủ công như ở trên. Tuy nhiên, automated crawler nên sử dụng phối hợp với Manual application mapping để bảo đảm mức độ bao phủ toàn bộ mục tiêu, độ chính xác cũng như tránh các các tác động không mong muốn khi xử lý các chức năng quan trọng của mục tiêu.
#3. Có gì trong Target/Site map của Burp Suite?
Target/Site map là bãi đáp của tất cả các thông tin mà bạn hốt được về từ mục tiêu. Do vậy, bạn có thể bị rối nếu không nắm rõ cách Burp Suite bố trí đống dữ liệu này. Layout cụ thể của Target/Site map sẽ bao gồm:
Panel ngoài cùng bên trái: Cho bạn thông tin dạng tree view về phạm vi của mục tiêu. Cái tree view này sẽ giúp bạn nhanh chóng xác các nội dung cần quan tâm thay vì bới cả núi thông tin.
Lưu ý: Bạn sẽ cần kiểm tra đám unrequested items – tức là các item hốt được từ passive crawling nhưng chưa chạy request (sẽ có màu xám). Bạn có thể sort theo Time requested column để xác định cho nhanh.
Panel ở giữa: Liệt kê các HTTP request đã thực hiện kèm thông tin host, HTTP method, target URL (và parameter – nếu có), HTTP status response code, length, MIME type, title tương ứng với đối tượng đang được chọn ở Panel ngoài cùng bên trái;
Phần bên dưới của panel này thể hiện các HTTP request và respone liên quan ở dạng pretty/raw/params/header/hex;
Bên cạnh là phần Inspector cho Request/Response Header để bản có thể kiểm tra nhanh.
Panel ngoài cùng bên phải (Pro version – nghĩa là chỉ có trên phiên bản professional): Liệt kê các vấn đề đã ghi nhận trong quá trình passive/active scan (thằng nào nghiêm trọng nhất sẽ thấy ở trên cùng). Và ngay bên dưới panel này sẽ có phần cho biết chi tiết thêm về các vấn đề mà bạn đang chọn ở trên. Nội dung bao gồm phần mô tả cũng như các giải pháp xử lý.
#4. Sàng lọc dữ liệu ở Target/Site map với filter
Tab Target/Site map còn một nội dung rất quan trọng liên quan đến phần filter và search các hạng mục cụ thể trong dữ liệu theo các kiểu:
- Request type: Cho phép tùy chọn chỉ hiện thị in-scope items, requested items, requests có parameters, và ẩn not-found items;
- MIME type: Cho phép thiết lập để ẩn hoặc hiện response chứa các dạng MIME như HTML, CSS, hay images;
- Status code: Cho phép thiết lập để ẩn hoặc hiện các response với các loại HTTP status codes (bạn có thể xem thêm về HTTP status code như tôi giới thiệu trong nội dung Giải ngố WWW – Phần 2: 4 điều cơ bản phải biết về HTTP);
- Folders: Cho phép ẩn các thư mục rỗng trong tree view cho gọn đẹp khi kết hợp với các filter khác;
- Search term (Pro version): Cho phép lọc response có chứa một search term cụ thể. Search term ở đây có thể là chuỗi ký tự hoặc regular expression (có phân biệt cả chữ hoa và chữ thường). Chỗ này nếu bạn chọn Negative search option thì Burp Suite sẽ chỉ hiển thị các items không khớp với search term (sẽ có ích khi bạn muốn loại trừ một số term không mong muốn);
- File extension: Cho phép thiết lập để ẩn hoặc hiện items theo file extensions cụ thể;
- Annotation (ghi chú) – Thiết lập để chỉ hiển thị các items có comment/highlight.
Lưu ý:
- Việc filter chỉ ẩn dữ liệu đi chứ không xóa, bạn không cần bận tâm về việc mất dữ liệu với chức năng này;
- Trường hợp cần sử dụng nhiều bộ display filter, bạn có thể chọn Show new site map window từ context menu (menu chuột phải) để sử dụng filter tương ứng;
- Phần Annotation sẽ giúp bạn trong tình huống cần ghi chú lại các thông tin như mục đích của URLs, các vấn đề cần kiểm tra/đánh giá thêm;
- Để thêm comments bạn double click vô nội dung tương ứng sau đó nhập comment vô Comment column hoặc dùng Add comment từ context menu;
- Để highlight một item, bạn có thể dùng drop-down menu chỗ cái cột ngoài cùng bên trái hoặc dùng Highlight từ context menu.
#5. Khai thác sức mạnh của Target/Site map context menu để chuẩn bị tấn công
Từ Site map context menu (tôi nhắc lại, context menu là cái menu xuất hiện khi bấm chuột phải lên 1 item cụ thể), bạn có thể thực hiện các thao tác kiểm soát và phát động các đợt tấn công vào mục tiêu. Tùy thuộc vào item được lựa chọn, bạn có thể có các context menu khác nhau. Tuy nhiên, chủ yếu sẽ bao gồm các nội dung:
- Add/remove from scope;
- Scan (Pro version) hoặc Send to… đến các tab khác ví dụ như Intruder/Repeater;
- Show response in browser để hiển thị ra external browser trong trường hợp cái browser tích hợp của Burp Suite không đủ tính năng cần thiết;
- Request in browser để chạy lại request từ browser với 2 dạng là In original session (dùng cùng Cookie header như cái original request) và In current browser sessions (dùng cookies do browser cung cấp) để kiểm tra access control với các cấp độ user (ví dụ admin/user thường)
- Engagement Tools (Pro version): cho phép thực hiện một số tác vụ bổ sung bao gồm:
- Search: Cho phép tìm keyword trong requests/response liên quan đến target cụ thể;
- Find comments: Giúp tìm code comments (nếu có). Nếu bạn ăn ở tốt, đôi khi lại bắt được thông tin hay ho nào đấy mà mấy ông dev comments rồi quên xóa
- Find script: Dò tìm tất cả các scripts trong phạm vi mục tiêu đang xem xét;
- Find references: Liệt kê tất cả Burp Suite components có liên quan đến item đang được chọn.
- Analyze target: Cung cấp thông tin tổng kết về mục tiêu bao gồm các nội dung như số lượng dynamic URLs, static URLs, parameters. Đây sẽ là cơ sở giúp bạn ước lượng khối lượng công việc cần xúc với mục tiêu;
- Discover content: Giúp xác định các spiderding/crawling rules (ví dụ length/breadth, file/directory) để bạn cào hốt dữ liệu. Cái này đôi khi sẽ giúp bạn thu lượm thêm được một số nội dung ẩn;
- Schedule task: Lên lịch định kỳ múc mục tiêu với khả năng Pause/Resume task
- Generate CSRF PoC: Tạo HTML page có khả năng kích hoạt các request nhất định khi mở bằng browser;
- Simulate manual testing: Cho phép send HTTP request đến mục tiêu theo các khoảng thời gian ngẫu nhiên để duy trì session trong tình huống bạn đang phải xử lý việc khác mà không muốn timeout vì inactivity.
- Compare site maps: Cái này cực kỳ hữu ích trong tình huống bạn muôn kiểm tra sự khác biệt khi cào hốt với các privelege levels khác nhau (ví dụ user thường và admin). Với thằng này, bạn có thể chạy với user privelege level cao trước, sau đó chạy lại với privelege level thấp hơn để xác định coi có access control violation (tức là ông level thấp chạy được cả một số chức năng của ông level cao) nào hay không;
- Delete items: Cho phép xóa các item không liên quan ví dụ third-party content được liên kết vào mục tiêu (thực ra nếu thiết lập scope chuẩn thì bạn sẽ không cần dùng thằng này);
- Copy URLs: Như tên gọi, cho phép bạn copy URL của item đang chọn vào clipboard;
- Copy as curl command: cũng như trên nhưng theo dạng curl command để dùng cho nhanh (bạn có thể xem thêm về curl như tôi giới thiệu trong nội dung Giải ngố Kali Linux – Phần 8: Download file trên Linux với wget và curl);
- Copy links: Tùy chọn này sẽ phân tích item đang được lựa chọn để xác định link và copy vào clipboard;
- Save items: Cho phép bạn lưu chi tiết của một item ra file theo dạng XML bao gồm toàn bộ request, response và metadata liên quan như response length, HTTP status code và MIME type.
#6. Tóm lại giờ làm gì với đám dữ liệu và tính năng của Target/Site map?
Gác lại các nội dung chém gió rối rắm ở trên, giờ là lúc tôi chốt lại vấn đề với đám dữ liệu và tính năng của Target/Site map.
#6.1 Phân tích các attack surface
Sau khi đã thiết lập Scope chuẩn và hốt được nguyên con nội dung và chức năng của mục tiêu về Site map như đề cập ở Mục 2, việc tiếp theo bạn cần làm rà lại toàn bộ nội dung Site map (và phần Proxy/HTTP history) với sự hỗ trợ của filter như đề cập ở Mục 4. Căn cứ vào kết quả rà soát, bạn sẽ xác định các attack surface có thể có dựa vào các tính năng hỗ trợ của Site map, cụ thể:
- Lựa chọn nhánh liên quan của Site map tree, sau đó sử dụng Analyze target (trong Engagement Tools) để xác định tất cả các dynamic URLs và parameters;
- Sử dụng display filter và tính năng sort để phân tích mục tiêu một cách hệ thống;
- Ghi chú (với comments/highlights) các item đặc biệt cần lưu ý hoặc phân tích kỹ thêm.
#6.2 Phát động tấn công
Sau bước phân tích attack surface, bạn có thể bắt đầu phát động tấn công từ vị trí bàn đạp Site map thông qua:
- Chọn nhánh của Site map tree và item, sau đó sử dụng context menu để gửi hàng qua các Burp Suite task khác như automated vulnerability scanning với Burp Scanner (Pro Version), fuzzing với Burp Intruder hoặc test thủ công với Burp Repeater;
- Chạy lại request để tạo Site map với session context khác nhau (ví dụ sử dụng quyền user thường thay vì admin) và dùng Compare site maps (trong Engagement Tools) để đánh giá các vấn đề liên quan đến access control;
- Search trong các nhánh của Site map tree để tìm các express/script/comment đặc biệt xem có ăn may được nháy nào không.
Chi tiết thi triển các nội dung nói trên tương đối dài, tôi sẽ sắp xếp và lần lượt giới thiệu trong các kỳ tiếp theo.
2 thoughts on “Penetration Testing Step 3 – Chuẩn bị bàn đạp để tấn công từ Target tab của Burp Suite”