Giới Thiệu
Trong thế giới an ninh mạng ngày nay, việc bảo vệ website khỏi các công cụ tự động là rất quan trọng. Một trong những phương pháp hiệu quả để thực hiện điều này là TLS fingerprinting. Bài viết này sẽ giải thích khái niệm TLS fingerprinting và hướng dẫn cách cấu hình Burp Suite để chia sẻ lưu lượng mạng với các trang web áp dụng kỹ thuật này, cụ thể là trang https://search.censys.io.
Vấn Đề Gặp Phải
Khi sử dụng Burp Suite với cấu hình mặc định để proxy traffic tới https://search.censys.io, bạn sẽ nhận được mã lỗi 403, trong khi việc truy cập trực tiếp (không thông qua Burp) lại không gặp vấn đề gì. Tại sao lại như vậy? Hãy cùng tìm hiểu nguyên nhân.
TLS Fingerprinting: Khái Niệm và Tầm Quan Trọng
TLS Fingerprinting là quy trình thu thập và nhận diện các đặc điểm riêng biệt của quá trình bắt tay TLS giữa client và server. Những thông số này có thể bao gồm:
- Phiên bản TLS sử dụng (ví dụ: TLS 1.2, TLS 1.3)
- Các bộ mã hóa (cipher suites)
- Các extension trong quá trình bắt tay
Nếu một website áp dụng TLS fingerprinting, nó có khả năng nhận diện xem yêu cầu có xuất phát từ một client hợp lệ hay công cụ tự chế tạo. Nếu không phù hợp, yêu cầu có thể bị chặn lại.
Cách Xác Định Các Thông Số TLS của Website
Để tùy chỉnh Burp Suite và bắt chước fingerprint của một client hợp lệ, bạn cần xác định các thông số TLS mà website đang sử dụng. Dưới đây là một số cách để thực hiện điều này:
Sử Dụng Công Cụ SSL Labs
- Truy cập vào trang SSL Labs SSL Test.
- Nhập URL
https://search.censys.io/
vào ô tìm kiếm và bắt đầu kiểm tra. - Bạn sẽ nhận được báo cáo chi tiết về:
- Phiên bản TLS hỗ trợ
- Các cipher suites được server chấp nhận
- Thông tin về chứng chỉ SSL
Sử Dụng Nmap với Script ssl-enum-ciphers
Nếu bạn có quyền truy cập vào terminal, bạn có thể sử dụng Nmap với lệnh sau để liệt kê các cipher suites:
nmap --script ssl-enum-ciphers -p 443 search.censys.io
Kết quả sẽ cho thấy các phiên bản TLS được hỗ trợ và cipher suites tương ứng.
Phân Tích Giao Thức Bằng Wireshark
Wireshark là công cụ giúp phân tích quá trình bắt tay TLS:
- Cài đặt và mở Wireshark.
- Ghi lại lưu lượng khi truy cập
https://search.censys.io/
. - Lọc các gói tin TLS với bộ lọc
tls.handshake
để phân tích các thông số bắt tay.
Cấu Hình Burp Suite Để Bắt Chước TLS Fingerprint
Sau khi xác định được các thông số TLS, bạn cùng cần cấu hình Burp Suite để bắt chước chúng:
Cấu Hình Các Thông Số TLS trong Burp Suite
- Mở Burp Suite và chuyển đến tab Project Options > TLS.
- Chọn Profile TLS phù hợp với trình duyệt bạn muốn bắt chước (ví dụ: Chrome).
- Tùy chỉnh các cipher suites dựa trên thông tin đã thu thập.
- Chọn phiên bản TLS phải hỗ trợ bởi server.
Sử Dụng Extension Để Tăng Cường Khả Năng Tùy Chỉnh
Bạn có thể tìm kiếm các extension trên GitHub để mở rộng tùy chỉnh TLS trong Burp Suite như burp-awesome-tls. Nếu bạn có kinh nghiệm sử dụng các extension này, hãy chia sẻ kinh nghiệm nhé.
Tùy Chỉnh Header HTTP
Đừng quên rằng các header HTTP cũng rất quan trọng trong việc xác định tính hợp lệ của client:
- Chuyển đến tab Proxy > Intercept.
- Chỉnh sửa các header như
User-Agent
để giống như một trình duyệt phổ biến.
Kiểm Tra và Điều Chỉnh
Sau khi cấu hình, hãy kiểm tra kết quả:
- Mở trình duyệt đã cấu hình với proxy và truy cập
https://search.censys.io
. - Quan sát tab HTTP history trong Burp Suite để xem các yêu cầu và phản hồi.
- Nếu gặp lỗi, hãy kiểm tra lại các thông số TLS và điều chỉnh chúng nếu cần.
Kết Luận
TLS fingerprinting giúp bảo vệ website khỏi các cuộc tấn công tự động. Bằng việc hiểu và cấu hình Burp Suite đúng cách, bạn có thể tiếp cận và phân tích lưu lượng một cách hiệu quả. Hãy luôn tuân thủ nguyên tắc an toàn và pháp luật trong mọi hoạt động kiểm thử bảo mật.
Bài viết này có sự hỗ trợ của ChatGPT.
source: viblo