Penetration Testing Step 3 – Chuẩn bị đổ mưa bom, bão đạn lên mục tiêu với Burp Suite Intruder

Kết thúc nội dung Penetration Testing Step 3 – Thủ thuật chọc ngoáy HTTP/WebSockets message với Burp Suite Repeater, kỳ này tôi sẽ chuyển qua một tool có khả năng tấn công rất ác liệt của Burp SuiteIntruder.

Liên quan đến thằng Intruder này, bạn sẽ có khá nhiều thứ cần xử lý thiết lập từ thông số mục tiêu (target), vị trí xả đạn (position) cho đến loại đạn (payload) và phương thức tấn công như quăng bom (Cluster bomb) hay bắn tỉa (Sniper),…Vì lượng thông tin này đã tương đối nhiều nên kỳ này tôi sẽ chỉ tập trung vào phần thiết lập để chuẩn bị tấn công. Kỳ kế tiếp tôi sẽ bàn tiếp về quá trình tấn công cụ thể cũng như công tác báo cáo thành tích, thu dọn chiến trường.

#1. Burp Suite Intruder để làm gì?

Burp Suite Intruder cho phép bạn thực hiện các đợt tấn công tùy chỉnh một cách tự động vô các web target. Chữ tùy chỉnh và tự động ở đây là điểm nhất quan trọng vì Intruder cho phép bạn thiết lập các phương án tấn công cực kỳ linh hoạt (từ dạng thô bỉ như brute force đến các chiêu trò blind SQL injection phức tạp) trước khi “lên lịch” để cho mục tiêu ăn hành.

Về nguyên lý, Burp Suite Intruder sẽ xúc một cái base HTTP request (tức là cái request chưa chưa chỉnh sửa) lên dĩa và cho bạn chế biến với nhiều phương án khác nhau trước khi dùng các biến thể này dội bom mục tiêu.

Lưu ý: Đừng bao giờ dại dột thử Burp Suite Intruder vô hệ thống thật nếu bạn chưa thật sự hiểu rõ cách Intruder và hệ thống của mục tiêu hoạt động. Nếu muốn thử nghiệm chọc ngoáy thì bạn nên sử dụng các lab có sẵn (tôi sẽ giới thiệu cái này kỹ sau) hoặc tự dựng các máy ảo mà vọc.

#2.Triển khai tấn công với Intruder có gì khác so với Repeater?

Intruder cũng giống như Repeater, bạn có thể bật chuột phải mở Context menu từ các vị trí khác (ví dụ HTTP history hoặc Target/ Site map) rồi dùng tùy chọn Send to Intruder hoặc hot keys Ctrl + I để gửi hàng qua.

Lưu ý: Bạn có thể xem thêm về Target/ Site map trong nội dung Penetration Testing Step 3 – Chuẩn bị bàn đạp để tấn công từ Target tab của Burp SuiteHTTP history trong nội dung Penetration Testing Step 3 – Chi tiết về Proxy tab, trái tim của Burp Suite.

Send to Intruder
Send to Intruder

Cũng tương tự như Repeater, ứng với mỗi request bạn sẽ có 1 tab riêng đánh số thứ tự tăng dần với khả năng double click vô header để rename hoặc drag để chỉnh thứ tự.

Intruder tab
Intruder tab

Tuy nhiên, quan sát xuống bên dưới, ứng với từng request, bạn sẽ thấy Intruder có các tab con là Target, Positions, PayloadsOptions.

Với Intruder, trước khi tấn công, bạn sẽ cần thiết lập thông tin cho các thằng Target, PositionsPayloads. Ngoài ra, vị trí Options tab cũng sẽ có các thiết lập ảnh hưởng đến quá trình tấn công (tôi sẽ giới thiệu cái này sau vì nội dung với 3 thằng Target, PositionsPayloads đã khá dài rồi).

Sau khi hài lòng với các thiết lập, bạn có thể bắt đầu tấn công bằng cách chọn Start attack.

#3. Thiết lập Target tab cho Burp Suite Intruder

Target tab dùng để thiết lập chi tiết về mục tiêu tấn công. Các thông tin cầu bao gồm:

  • Host: IP address hoặc hostname của mục tiêu;
  • Port: Port của HTTP/S service;
  • Use HTTPS: Chỉ định sử dụng TLS.

Với phương án dùng Context menu nói trên, Intruder sẽ tự động xác định các thông tin tương ứng trong Target tab kiểu như sau.

Intruder Target tab
Intruder Target tab

#4. Thiết lập Positions tab cho Burp Suite Intruder

Positions tab dùng để thiết lập request template cho các đợt tấn công cũng như vị trí đút payload (thông qua Payload markers) và Attack type (tức là cách payload được đẩy vô position).

Intruder Positions tab
Intruder Positions tab

Lưu ý: Mặc định, Burp Suite sẽ tự động đề xuất các vị trí có giá trị của request parameters và cookies để đặt payload tương tự như trên.

#4.1 Payload markers là cái vẹo gì?

Payload markers (thể hiện qua ký tự “§”) là ký tự đánh dấu chỗ bạn sẽ dí payload vào, hoạt động theo nguyên lý:

  • Mỗi cặp marker tương ứng cho 1 payload position;
  • Mỗi cặp marker có thể chứa một số text của request template kẹp giữa 2 marker;
  • Khi đã xác định payload position, cả cụm marker và text (nếu có) sẽ bị thay bằng payload;
  • Với các vị trí không bố trí payload, phần marker sẽ bị bỏ nhưng phần text (nếu có) sẽ được giữ lại.

Để dễ chấm mút, mỗi khi nhận được hàng đến (ví dụ từ Context menu), Intruder sẽ tự động highlight các cặp Payload marker và phần text liên quan cho bạn (chỗ Cookie như hình minh họa trên). Nếu không vừa ý, bạn có thể hiệu chỉnh lại các Payload markerIntruder đề xuất bằng các sử dụng các button bên phải của request template editor:

  • Add : Nếu bạn không chọn text nào thì payload sẽ được dí vô cursor position (vị trí con trỏ chuột). Nếu bạn đã chọn text thì một cặp markers sẽ được chèn vô bao quanh cái text đã chọn;
  • Clear : Button này sẽ gỡ bỏ hết tất cả position markers trên toàn template;
  • Auto : Với button này, bạn hàm ý kêu Intruder “Chú tự xử thiết lập giúp anh đi”. Lúc này Intruder sẽ tự động bố trí markers để đẩy payload vô các thể loại request parameter như URL query string parameters, body parameters, cookies, multipart parameter attributes (ví dụ tên file trong phần file upload), XML data, các element attributes (thuộc tính thành phần), và JSON parameters. Nhìn chung đây là phương án bạn nên sử dụng để bảo đảm không bỏ sót các vị trí ngon ăn trước khi bắt đầu các chỉnh sửa thủ công để tăng sức công phá cho các đòn tấn công. Lưu ý với phương án này, nếu bạn đã chọn text thì marker sẽ chỉ xử lý trên các text được chọn. Nếu bạn không chọn gì cả thì nó sẽ xúc trên toàn bộ request template. Ngoài ra, bạn cũng có thể thiết lập để các payload position tự động sẽ thay thế hoặc đính kèm vô giá trị hiện hữu của các parameters thông qua các tùy chọn trong Intruder menu. Trường hợp một phần request chứa dữ liệu định dạng XML hoặc JSON thì bạn có thể bố trí payload tự động trong phần này thông qua việc chọn các block dữ liệu cụ thể rồi dùng Auto button.
  • Refresh: Phục vụ việc “làm tươi” (tôi thấy chính xác hơn là làm màu) syntax color trong request template editor.

#4.2 Chọn phương án trút mưa bom bão đạn lên mục tiêu với Attacker type

Burp Suite Intruder bao phủ một mớ các thể loại tấn công tương ứng với cách bạn dí payload vô payload position. Từ drop-down button bên trên request template editor, bạn sẽ có các tùy chọn Sniper, Battering ram, PitchforkCluster bomb.

Intruder Positions Attack type
Intruder Positions Attack type

Nội dung cụ thể như sau.

#4.2.1 Sniper – Kiểu bắn tỉa

Đây là dạng chơi đánh lẻ từng thằng trong bộ payload để dò từng vulnerabilities riêng lẻ. Cụ thể, mỗi lần nó chỉ múc 1 position với 1 payload trong bộ payload. Các vị trí khác nó sẽ dỡ bỏ cái position marker và không không thay đổi gì sất. Tổng số request sinh ra từ dạng này sẽ bằng tích của số lượng position và số lượng payload trong bộ payload.

#4.2.2 Battering ram – Kiểu phá cửa, công thành

Dạng này sẽ rà tuần tự từng thằng trong bộ payload, bốc ra 1 thằng rồi đặt vô tất cả payload postion đã xác định. Kiểu này sẽ phù hợp trong tình huống tấn công với cùng 1 input cho nhiều vị trí trong request (ví dụ dùng một username cho các vị trí nhận parameter khác nhau). Tổng số request sinh ra từ dạng này sẽ bằng số lượng payload có trong bộ payload.

#4.2.3 Pitchfork – Kiểu xâm mứt xào chẻ

Đây là dạng chơi cùng lúc nhiều bộ payloads. Cụ thể, nó sẽ rà qua toàn bộ các bộ payload cùng lúc và dí payload vô từng vị trí đã xác định. Ví dụ cụ thể cho dễ hình dung như sau:

  • Request #1 dí payload #1 từ bộ payload #1 vô vị trí #1 và payload #1 từ bộ payload #2 vô vị trí #2;
  • Request #2 dí payload #2 từ bộ payload #1 vô vị trí #1 và payload #2 từ bộ payload #2 vô vị trí #2;

Kiểu tấn công này phù hợp trong tình huống yêu cầu đút các dạng input khác nhau (nhưng phải có mối liên hệ) vô nhiều vị trí của request (ví dụ đặt username vô 1 parameter, ID number tương ứng với username vô một parameter khác). Tổng số request sinh ra từ dạng này sẽ bằng số lượng payload có trong bộ payload có kích thước nhỏ nhất.

#4.2.4 Cluster bomb – Kiểu quăng bom chùm

Đây cũng là dạng chơi nhiều bộ payload để kiểm tra tất cả các permutations (hoán vị) của payload combination.Ví dụ cụ thể cho dễ hình dung với 2 payload position:

  • Đặt payload #1 từ bộ payload #2 vô vị trí #2 và tuần tự thử đặt từng payload trong bộ payload #1 vô vị trí #1. Sau đó;
  • Đặt payload #2 từ bộ payload #2 vô vị trí #2 và tuần tự thử đặt từng payload trong bộ payload #1 vô vị trí #1;

Kiểu tấn công này phù hợp trong tình huống yêu cầu các dạng input khác nhau (và không có/không xác định được mối liên hệ) vô nhiều vị trí của request (ví dụ khi đoán mò credentials, bạn quất cái username vô một parameter và password vô một parameter khác). Tổng số request sinh ra từ dạng này khá lớn, là tích của số payload trong trong các bộ payloads.

#5. Thiết lập Payloads cho Burp Suite Intruder

Với Payloads tab, bạn sẽ có thể định nghĩa các thể loại payload (một hoặc một bộ payload) đút vào các payload position. Trong đó, số lượng bộ payloads tùy thuộc vào Attack type xác định trong Position tab nói trên. Nhìn chung, các task phổ biến như fuzzing parameter, brute force để đoán password thì bạn chỉ cần 1 bộ payload.

Intruder Payload
Intruder Payload

Các bước thiết lập một bộ payload bao gồm:

  • Chọn payload set bạn cần quan tâm từ drop-down list;
  • Chọn payload type từ drop-down list dài dằng dặc với đủ các thể loại trên trời dưới biển đáp ứng tất cả các mưu đồ đê hèn nhất mà bạn có thể nghĩ ra;
  • Thiết lập payload options tương ứng cho payload type (như hình minh họa bên dưới thì payload type đang là Simple list);
  • Thiết lập payload processing (xử lý payload) – nếu cần – bao gồm các quy tắc xử lý các payload được tạo ra,
  • Cuối cùng là phần payload encoding phục vụ URL-enconde nếu cần;
Intruder Payload types
Intruder Payload types
Intruder Payload Processing
Intruder Payload Processing

Lưu ý:

  • Fuzzing tạm hiểu là phương thức bạn tra tấn mục tiêu bằng cách đẩy vào một đống các thể loại input ba xàm (có thể tạo trước kiểu thủ công hoặc tự động) để ghi nhận phản hồi của mục tiêu, đặc biệt là các phản hồi thể hiện lỗi/sụp hệ thống.
  • Với bản Burp Suite Pro, phần payload options, bạn sẽ có thêm tùy chọn Add from list … drop-down;

Nếu đọc đến đây mà bạn thấy rối não quá thì cũng không cần lo lắng vì nội dung kỳ này đang tập trung vào phần nguyên lý chung. Khi chuyển sang phần demo minh họa thì mọi thứ sẽ dần sáng tỏ thôi.

Ngoài ra, như tôi nói trên, phần Intruder vẫn còn tab Options tôi chưa đề cập. Phần này có một phần liên quan đến Attack Results nên tôi sẽ giới thiệu kết hợp chung ở các bước kế tiếp luôn.

3 thoughts on “Penetration Testing Step 3 – Chuẩn bị đổ mưa bom, bão đạn lên mục tiêu với Burp Suite Intruder”

Leave a Reply

Your email address will not be published. Required fields are marked *