- vừa được xem lúc

TLS Fingerprint và vấn đề TLS Fingerprint của Website với Burp Suite

0 0 2

Người đăng: Minh Tuấn Ngụy

Theo Viblo Asia

Vấn đề

Với cài đặt mặc định của BurpSuite, khi proxy traffic và truy cập vào https://search.censys.io sẽ bị chặn lại bởi code 403 này trong khi đó truy cập bình thường (không thông qua Burp) thì không sao

Vậy nguyên nhân ở đây là gì, chúng ta cùng nhau tìm hiểu nhé

Xác Định và Mô Phỏng TLS Fingerprint của Website với Burp Suite

Trong lĩnh vực an ninh mạng hiện đại, việc hiểu rõ và có khả năng tương tác với các giao thức bảo mật như TLS (Transport Layer Security) là vô cùng quan trọng. Khi một trang web sử dụng TLS fingerprinting để bảo vệ mình, việc cấu hình Burp Suite để bắt chước đúng fingerprint của một client hợp lệ là cần thiết để có thể proxy traffic và phân tích một cách hiệu quả. Trong bài viết này, chúng ta sẽ tìm hiểu cách xác định các thông số TLS mà trang web sử dụng và cách cấu hình Burp Suite để bắt chước fingerprint đó, cụ thể là với trang https://search.censys.io/.

TLS Fingerprinting

TLS Fingerprinting là quá trình nhận diện các đặc điểm cụ thể của quá trình bắt tay (handshake) TLS giữa client và server để tạo ra một "dấu vân tay" duy nhất. Những đặc điểm này bao gồm phiên bản TLS, bộ mã hóa (cipher suites), các extension được sử dụng, và các tham số khác trong quá trình bắt tay.

Việc này giúp server xác định xem yêu cầu đến có xuất phát từ một client hợp lệ (như trình duyệt phổ biến) hay từ một công cụ tự chế tạo, từ đó áp dụng các biện pháp bảo vệ như chặn hoặc hạn chế truy cập.

Xác Định Các Thông Số TLS của Website

Để bắt chước được fingerprint hợp lệ, bạn cần xác định các thông số TLS mà trang web mục tiêu sử dụng. Dưới đây là các bước bạn có thể thực hiện:

Sử Dụng SSL Labs

SSL Labs là một công cụ trực tuyến mạnh mẽ giúp bạn kiểm tra cấu hình SSL/TLS của bất kỳ trang web nào.

  1. Truy cập vào SSL Labs SSL Test.
  2. Nhập https://search.censys.io/ vào hộp tìm kiếm và bắt đầu kiểm tra.
  3. Sau khi kiểm tra hoàn tất, bạn sẽ nhận được báo cáo chi tiết về:
    • Phiên bản TLS hỗ trợ (ví dụ: TLS 1.2, TLS 1.3).
    • Bộ mã hóa (cipher suites) mà server chấp nhận.
    • Các extension được sử dụng trong quá trình bắt tay.
    • 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 máy chủ CLI (Command Line Interface), bạn có thể sử dụng Nmap kết hợp với script ssl-enum-ciphers để liệt kê các cipher suites.

nmap --script ssl-enum-ciphers -p 443 search.censys.io

Kết quả sẽ hiển thị các phiên bản TLS được hỗ trợ và các cipher suites tương ứng.

Ví dụ kết quả tại thời điểm viết bài

➜ nmap --script ssl-enum-ciphers -p 443 search.censys.io
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-31 08:09 +07
Nmap scan report for search.censys.io (104.18.10.85)
Host is up (0.026s latency).
Other addresses for search.censys.io (not scanned): 104.18.11.85 2606:4700::6812:a55 2606:4700::6812:b55 PORT STATE SERVICE
443/tcp open https
| ssl-enum-ciphers:
| TLSv1.2:
| ciphers:
| TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (ecdh_x25519) - A
| TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (ecdh_x25519) - A
| TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
| TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (ecdh_x25519) - A
| TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (ecdh_x25519) - A
| TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
| TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (ecdh_x25519) - A
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (ecdh_x25519) - A
| TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (ecdh_x25519) - A
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (ecdh_x25519) - A
| TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
| TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
| TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A
| TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
| TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A
| TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
| compressors:
| NULL
| cipher preference: client
| TLSv1.3:
| ciphers:
| TLS_AKE_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
| TLS_AKE_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
| TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
| cipher preference: client
|_ least strength: A Nmap done: 1 IP address (1 host up) scanned in 2.09 seconds

Phân Tích Bằng Wireshark

Wireshark là một công cụ phân tích giao thức mạng giúp bạn xem chi tiết quá trình bắt tay TLS.

  1. Cài đặt và mở Wireshark.
  2. Bắt đầu ghi lại lưu lượng mạng khi bạn truy cập https://search.censys.io/.
  3. Lọc các gói tin TLS bằng cách sử dụng bộ lọc tls.handshake.
  4. Phân tích các thông số trong các gói tin bắt tay như phiên bản TLS và cipher suites.

Cấu Hình Burp Suite Để Bắt Chước TLS Fingerprint

Sau khi đã xác định được các thông số TLS của trang web mục tiêu, bạn có thể 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

Burp Suite cho phép bạn tùy chỉnh một số thông số TLS, nhưng để bắt chước hoàn toàn fingerprint của một trình duyệt hợp lệ, bạn có thể cần sử dụng các plugin hoặc extension bổ sung.

  1. Mở Burp và chuyển đến tab Project Options > TLS.
  2. Chọn Profile TLS phù hợp:
    • Nếu bạn muốn bắt chước một trình duyệt cụ thể (ví dụ: Chrome), bạn có thể chọn profile tương ứng nếu có sẵn.
  3. Tùy chỉnh Cipher Suites:
    • Dựa trên thông tin thu thập được từ bước 2, hãy chọn các cipher suites tương thích và ưu tiên chúng theo thứ tự mà trình duyệt hợp lệ sử dụng.
  4. Chọn Phiên Bản TLS:
    • Chọn phiên bản TLS phù hợp (ví dụ: TLS 1.2 hoặc TLS 1.3) mà server mục tiêu hỗ trợ.

Sử Dụng Extension để Tùy Chỉnh TLS Fingerprint

Để nâng cao khả năng tùy chỉnh, bạn có thể sử dụng các extension của Burp Suite. Mình có tìm hiểu và phát hiện ra một vài extension opensource trên github dành cho Burp, tuy nhiên không hiểu sao vẫn chưa biết dùng, nếu bạn đọc nào biết thì có thể comment bên dưới nhé

https://github.com/sleeyax/burp-awesome-tls

Tùy Chỉnh Header HTTP

Ngoài các thông số TLS, server còn có thể dựa trên các header HTTP để xác định tính hợp lệ của client.

  1. Chuyển đến tab Proxy > Intercept.
  2. Khi một yêu cầu được chặn, chỉnh sửa các header như User-Agent để bắt chước trình duyệt phổ biến (ví dụ: Chrome, Firefox).

Kiểm Tra và Điều Chỉnh

Sau khi cấu hình xong, bạn cần kiểm tra xem Burp Suite có thể giao tiếp thành công với server mục tiêu hay không.

  1. Mở trình duyệt đã cấu hình proxy và truy cập https://search.censys.io/.
  2. Quan sát trong Burp Suite tab Proxy > HTTP history để xem các yêu cầu và phản hồi.
  3. Nếu gặp lỗi hoặc bị chặn, hãy:
    • Kiểm tra lại các thông số TLS và đảm bảo chúng khớp với thông tin đã xác định.
    • Điều chỉnh thêm các thông số khác như các extension TLS hoặc các header HTTP.

Ví dụ:

Và hoàn toàn có thể chặn bắt được request tới search.censys.io

Kết Luận

TLS fingerprinting là một phương pháp mạnh mẽ để bảo vệ các trang web khỏi các cuộc tấn công tự động và các công cụ không mong muốn. Tuy nhiên, với việc hiểu rõ cách thức hoạt động của TLS và cách cấu hình các công cụ như Burp Suite một cách chính xác, bạn có thể vượt qua những hạn chế này để thực hiện các nhiệm vụ kiểm thử bảo mật một cách hiệu quả.

Bằng cách xác định chính xác các thông số TLS mà trang web sử dụng và cấu hình Burp Suite để bắt chước chúng, bạn có thể tiếp cận và phân tích lưu lượng một cách an toàn và chính xác hơn. Luôn nhớ tuân thủ các nguyên tắc pháp luật và đạo đức khi thực hiện các hoạt động kiểm thử bảo mật để đảm bảo an toàn và tôn trọng quyền riêng tư của tất cả các bên liên quan.

Bài viết có sự hỗ trợ bởi ChatGPT

Bình luận

Bài viết tương tự

- vừa được xem lúc

Có thực sự an toàn với Authentication và Authorization , mật khẩu có nên lưu ở dạng text ?

Có thực sự an toàn với Authentication và Authorization , mật khẩu có nên lưu ở dạng text . Hơn nữa, vì chúng ta đang lưu trữ thông tin đăng nhập và hỗ trợ quy trình đăng nhập, chúng ta biết rằng sẽ có thông tin xác thực được gửi qua hạ tầng mạng.

0 0 58

- vừa được xem lúc

Tản mạn CDN và một số công nghệ xoay quanh CDN

Như cái tiêu đề, tôi lưu lại một số thứ hay ho về CDN để sau mà quên thì còn có cái mà đọc. Sờ lại một chút về khái niệm CDN cho đỡ bỡ ngỡ... Mục đích CDN. Do vậy, CDN phục vụ một số mục đích chính sau:. . Cải thiện thời gian tải trang web --> Đây là mục đích lớn nhất của CDN.

0 0 58

- vừa được xem lúc

Bảo mật internet: HTTPS và SSL/TLS như giải thích cho trẻ 5 tuổi

(Mình chém gió đấy, trẻ 5 tuổi còn đang tập đọc mà hiểu được cái này thì là thần đồng, là thiên tài, là mình cũng lạy). . . Xin chào các bạn.

0 0 90

- vừa được xem lúc

Giải thích cơ chế hoạt động của SSL và Certificate thông qua câu chuyện của Romeo và Juliet

Mở đầu. Đối với một số bạn mới biết tới khái niệm SSL/TLS thì có thể thấy nó rất mơ hồ.

0 0 41

- vừa được xem lúc

[Linux] Làm thế nào để tạo SSL/TLS miễn phí với OpenSSL và Let’s Encrypt

Chào 500 anh em yêu tech. Lại là mình đây!!! Chào mừng các bạn đã quay lại với bài viết của mình.

0 0 28

- vừa được xem lúc

Cấu hình SSL/TLS với NGINX

SSL/TLS là một giao thức mã hóa dữ liệu quan trọng để bảo vệ thông tin truyền tải qua mạng. Trong bài viết này, chúng ta sẽ tìm hiểu cách cấu hình SSL/TLS trên máy chủ Nginx trên môi trường Ubuntu.

0 0 22