Phần này chúng ta sẽ nói về 1 trong các trường của TCP Header, các số hiệu của cổng nguồn và cổng đích. Các trường này được sử dụng để xác định các ứng dụng hoặc dịch vụ được cung cấp trên máy trạm hoặc máy chủ từ xa. Tôi sẽ lần lượt nói về tầm quan trọng và chức năng của các cổng nguồn và cổng đích của TCP.
Bạn sẽ hiểu được tầm quan trọng của cổng và cách sử dụng chúng để thu thập thông tin trên hệ thống từ xa được coi là mục tiêu để tấn công. Ở đây tôi sẽ giới thiệu các cổng giao tiếp từ cơ bản đến nâng cao với các ví dụ chi tiết. Bây giờ chúng ta sẽ bắt đầu với một số vấn đề cơ bản.
Khi 1 máy cần tạo ra yêu cầu hoặc cần gửi dữ liệu, nó đòi hỏi một số thông tin:
1. Địa chỉ IP của các máy chủ mà nó muốn gửi dữ liệu hoặc gửi yêu cầu.
2. Số hiệu cổng mà dữ liệu hoặc yêu cầu sẽ được gửi đến máy chủ từ xa đó. Trong trường hợp gửi 1 yêu cầu, nó cho phép người gửi xác định dịch vụ mà nó có ý định sử dụng.
1. Các địa chỉ IP được sử dụng để nhận diện các máy chủ mà chúng ta cần phải liên hệ. Những thông tin này không được hiển thị trong các gói tin trên vì nó tồn tại trong phần IP Header nằm ngay trên TCP Header mà chúng ta đang phân tích. Khi chúng ta nhìn vào IP Header, chúng ta sẽ thấy được các trường địa chỉ IP nguồn và đích ở đó.
2. Khía cạnh quan trọng thứ 2 là số hiệu cổng, giúp chúng ta xác định dịch vụ hoặc ứng dụng mà dữ liệu của chúng ta được gửi đến. Khi 1 host cung cấp các dịch vụ khác nhau như http, ftp, telnet thì tất cả các client muốn kết nối với host đó phải sử dụng 1 cổng để chọn dịch vụ cụ thể mà họ muốn sử dụng.
Hãy thử xem xét trình duyệt web một chút.
Khi bạn gửi 1 http request để tải về 1 trang web, nó phải được gửi đến 1 Web Server cụ thể để Web Server đó có thể nhận được yêu cầu, xử lý nó và cho phép bạn xem các trang mà bạn muốn. Điều này đạt được bằng cách lấy đúng địa chỉ IP thông qua hệ thống phân giải tên miền DNS và gửi yêu cầu đến đúng số cổng tại Web Server. Giá trị cổng, trong trường hợp của http request, thường là 80.
Sau khi yêu cầu của bạn đến được với Web Server, nó sẽ kiểm tra xem gói tin được gửi đến có chính xác là gửi cho nó hay không. Điều này được thực hiện bằng cách quan sát địa chỉ IP đích của gói tin mới nhận được. Bước thực hiện này là 1 chức năng của tầng Network.
Một khi nó xác nhận rằng gói tin này đúng là của máy trạm, nó sẽ xử lý gói tin và sẽ tự nhận biết rằng giá trị cổng đích cũng là sẽ là cổng 80. Sau đó nó sẽ gửi dữ liệu (hoặc yêu cầu) tới dịch vụ http đang chờ để phục vụ các client.
Bằng cách sử dụng phương pháp này, chúng ta cũng có thể sử dụng các dịch vụ còn lại được cung cấp bởi máy chủ. Bởi vậy, để sử dụng dịch vụ FTP, máy trạm của chúng ta tạo ra 1 gói tin trực tiếp gửi đến địa chỉ IP của máy chủ, là 200.0.0.1, nhưng lần này cổng đích sẽ là 21.
Sơ đồ minh họa cho quá trình này:
Ở trên chúng ta đã phân tích về cổng đích, bây giờ chúng ta đi vào phân tích cổng nguồn.
Các cổng nguồn cũng phục vụ tương tự như các cổng đích, nhưng chúng ở trên các máy gửi tin để giúp theo dõi các kết nối mới đến và luồng dữ liệu hiện có.
Như hầu hết các bạn đều biết, trong giao tiếp dữ liệu TCP/UDP, 1 máy chủ sẽ luôn cung cấp số hiệu cổng nguồn và cổng đích. Chúng ta đã phân tích về cổng đích, và làm thế nào để nó cho phép máy chủ chọn dịch vụ mà nó yêu cầu. Cổng nguồn được cung cấp cho máy chủ từ xa, trong trường hợp này, đây là Internet Server, để cho nó trả lời phiên bắt đầu bởi phía máy bên kia.
Điều này đạt được bằng cách đảo các cổng đích và cổng nguồn. Khi máy chủ (trong ví dụ này là Host A) nhận được gói tin này, nó sẽ xác định các gói tin trả lời cho các gói tin trước đó mà nó đã gửi.
Khi Host A nhận được trả lời của Internet Server, tầng chuyển vận sẽ nhận thấy các cổng đã được đảo ngược và xem nó như là 1 phản hồi với các gói tin trước đó mà nó đã gửi.
Tầng chuyển vận và tầng phiên theo dõi tất cả các kết nối mới, các kết nối đã được thiết lập và các kết nối đang trong quá trình gỡ bỏ, điều này cho ta thấy được Host A đang chờ trả lời từ Internet Server.
Lược dịch từ bài gốc: Click Here
Bài tiếp theo: TCP Sequence & Acknowledgement Numbers
Không có nhận xét nào:
Đăng nhận xét