Rate this post

Fingerprint web server là nhiệm vụ xác định loại và phiên bản của máy chủ web mà mục tiêu đang chạy trên đó. Mặc dù việc lấy dấu vân tay của máy chủ web thường được gói gọn trong các công cụ kiểm tra tự động, nhưng điều quan trọng là các nhà nghiên cứu phải hiểu các nguyên tắc cơ bản về cách các công cụ này cố gắng xác định phần mềm và tại sao điều này lại hữu ích.

Các bài viết liên quan:

Việc phát hiện chính xác loại máy chủ web mà ứng dụng chạy có thể cho phép người kiểm tra bảo mật xác định xem ứng dụng có dễ bị tấn công hay không. Đặc biệt, các máy chủ chạy các phiên bản phần mềm cũ hơn mà không có các bản vá bảo mật cập nhật có thể dễ bị khai thác theo phiên bản cụ thể.

Mục đích Fingerprint web server

Xác định phiên bản và loại máy chủ web đang chạy để cho phép phát hiện thêm bất kỳ lỗ hổng đã biết nào.

Làm thế nào để kiểm tra

Các kỹ thuật được sử dụng để fingerprint web server bao gồm lấy biểu ngữ, gợi ra phản hồi cho các yêu cầu không đúng định dạng và sử dụng các công cụ tự động để thực hiện quét mạnh mẽ hơn sử dụng kết hợp các chiến thuật. Tiền đề cơ bản mà tất cả các kỹ thuật này hoạt động là giống nhau. Tất cả đều cố gắng thu hút một số phản hồi từ máy chủ web mà sau đó có thể được so sánh với cơ sở dữ liệu về các phản hồi và hành vi đã biết, và do đó khớp với một loại máy chủ đã biết.

  1. Banner

Lấy biểu ngữ được thực hiện bằng cách gửi một yêu cầu HTTP đến máy chủ web và kiểm tra tiêu đề phản hồi của nó. Điều này có thể được thực hiện bằng cách sử dụng nhiều công cụ khác nhau, bao gồm telnet cho các yêu cầu HTTP hoặc openssl cho các yêu cầu qua SSL.

Ví dụ, đây là phản hồi cho một yêu cầu từ máy chủ Apache.

Đây là một phản hồi khác, lần này là từ nginx.

Đây là phản hồi từ lighttpd trông như thế nào.

Trong các ví dụ này, loại máy chủ và phiên bản được hiển thị rõ ràng. Tuy nhiên, các ứng dụng quan tâm đến bảo mật có thể làm xáo trộn thông tin máy chủ của họ bằng cách sửa đổi tiêu đề. Ví dụ: đây là một đoạn trích từ phản hồi cho một yêu cầu cho một trang web có tiêu đề được sửa đổi:

Trong trường hợp thông tin máy chủ bị che khuất, người kiểm tra có thể đoán loại máy chủ dựa trên thứ tự của các trường tiêu đề. Lưu ý rằng trong ví dụ Apache ở trên, các trường tuân theo thứ tự sau:

  • Date
  • Server
  • Last-Modified
  • ETag
  • Accept-Ranges
  • Content-Length
  • Connection
  • Content-Type

Tuy nhiên, trong cả ví dụ máy chủ nginx và máy chủ bị che khuất, các trường chung đều tuân theo thứ tự sau:

  • Server
  • Date
  • Content-Type

Người kiểm tra có thể sử dụng thông tin này để đoán rằng máy chủ bị che khuất là nginx. Tuy nhiên, xem xét rằng một số máy chủ web khác nhau có thể chia sẻ cùng một thứ tự trường và các trường có thể được sửa đổi hoặc loại bỏ, phương pháp này không xác định.

  1. Gửi yêu cầu không đúng định dạng

Máy chủ web có thể được xác định bằng cách kiểm tra phản hồi lỗi của chúng và trong trường hợp chúng chưa được tùy chỉnh, các trang lỗi mặc định của chúng. Một cách để buộc máy chủ trình bày những điều này là bằng cách gửi các yêu cầu không chính xác hoặc không đúng định dạng có chủ ý.

Ví dụ: đây là phản hồi cho một yêu cầu đối với phương thức không tồn tại SANTA CLAUS từ máy chủ Apache.

Đây là phản hồi cho cùng một yêu cầu từ nginx.

Đây là phản hồi cho cùng một yêu cầu từ lighttpd.

Vì các trang lỗi mặc định cung cấp nhiều yếu tố phân biệt giữa các loại máy chủ web, việc kiểm tra chúng có thể là một phương pháp hiệu quả để lấy dấu vân tay ngay cả khi các trường tiêu đề máy chủ bị che khuất.

  1. Sử dụng các công cụ quét tự động

Như đã nêu trước đó, lấy dấu vân tay máy chủ web thường được bao gồm như một chức năng của các công cụ quét tự động. Các công cụ này có thể thực hiện các yêu cầu tương tự như các yêu cầu được trình bày ở trên, cũng như gửi các thăm dò khác dành riêng cho máy chủ. Các công cụ tự động có thể so sánh các phản hồi từ máy chủ web nhanh hơn nhiều so với kiểm tra thủ công và sử dụng cơ sở dữ liệu lớn về các phản hồi đã biết để cố gắng xác định máy chủ. Vì những lý do này, các công cụ tự động có nhiều khả năng tạo ra kết quả chính xác hơn.

Dưới đây là một số công cụ quét thường được sử dụng bao gồm chức năng lấy dấu vân tay của máy chủ web.

  • Netcraft, một công cụ trực tuyến quét các trang web để tìm thông tin, bao gồm cả máy chủ web.
  • Nikto, một công cụ quét dòng lệnh Mã nguồn mở.
  • Nmap, một công cụ dòng lệnh Mã nguồn mở cũng có GUI, Zenmap.

Biện pháp khắc phục hậu quả

Mặc dù thông tin máy chủ bị lộ không nhất thiết phải là lỗ hổng bảo mật, nhưng nó là thông tin có thể hỗ trợ những kẻ tấn công khai thác các lỗ hổng khác có thể tồn tại. Thông tin máy chủ bị lộ cũng có thể khiến những kẻ tấn công tìm thấy các lỗ hổng máy chủ theo phiên bản cụ thể có thể được sử dụng để khai thác các máy chủ chưa được vá. Vì lý do này, bạn nên thực hiện một số biện pháp phòng ngừa. Những hành động này bao gồm:

  • Che khuất thông tin máy chủ web trong tiêu đề, chẳng hạn như với mô-đun mod_headers của Apache.
  • Sử dụng một máy chủ proxy ngược được cứng để tạo một lớp bảo mật bổ sung giữa máy chủ web và Internet.
  • Đảm bảo rằng các máy chủ web luôn được cập nhật các bản vá bảo mật và phần mềm mới nhất.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now