Bắt và phân tích gói tin icmp window 2003
Trường ĐH Công Nghệ Thông Tin Mạng Máy Tính & Truyền Thông • Time To Live (TTL) – Chỉ ra số bước nhảy (hop) mà một gói có thể đi qua.Con số này sẽ giảm đi một khi một gói tin đi qua một router. Khi bộ đếm đạt tới 0 gói này sẽ bị loại. Đây là giải pháp nhằm ngăn chặn tình trạng lặp vòng vô hạn của gói nào đó. • Protocol – Chỉ ra giao thức lớp trên, chẳng hạn như TCP hay UDP, tiếp nhận các gói tin khi công đoạn xử lí IP hoàn tất, có 8 bit. • Header CheckSum – Giúp bảo dảm sự toàn vẹn của IP Header, có 16 bit. • Source Address – Chỉ ra địa chỉ của node truyền diagram, có 32 bit. • Destination Address – Chỉ ra địa chỉ IP của Node nhận, có 32 bit. • Padding – Các số 0 được bổ sung vào field này để đảm bảo IP Header luôn la bội số của 32 bit. • Data – Chứa thông tin lớp trên, chiều dài thay đổi đến 64Kb. Trong khi địa chỉ IP của nguồn và đích là quan trong của hoạt động của IP, các trường khác làm cho IP rất linh hoạt.Các Header Field là thông tin được cung cấp cho các giao thức lớp trên xác định dữ liệu đóng gói. Truyền Thông An Ninh Thông Tin 44 Trường ĐH Công Nghệ Thông Tin Mạng Máy Tính & Truyền Thông Các trường (field) trong 1 gói tin IP 3.2 .THỰC HÀNH PHÂN TÍCH VÀ NHẬN DẠNG GÓI TIN IP Chuẩn bị: Đăng nhập vào window server 2k3 với quyền admin. Tại cửa sổ cmd và chương trình bắt gói tin đang mở 1. Trong wireshark, bắt đầu tiến trình bắt gói và cứ để nó chạy 2. Mở cmd và gõ ftp ip_address với ip_address là địa chỉ máy cần kết nối 3. Thời điểm này, kết nối chưa thực hiện được, gõ bye và thoát cmd 4. Dừng bắt gói tin 5. Lọc lấy gói tin FTP 6. Tham khảo các trường version number, time to live, protocol, source address, des address Truyền Thông An Ninh Thông Tin 45 Trường ĐH Công Nghệ Thông Tin Mạng Máy Tính & Truyền Thông Thông tin gói tin IP 3.3 PHÂN TÍCH VÀ NHẬN DẠNG GÓI TIN ICMP Cấu trúc 1 gói tin ICMP ICMP (Internet Control Message Protocol) nó được thiết kế để gửi tin nhắn kiểm soát giữa các router và máy chủ. Ví dụ, một gói ICMP có thể được gửi khi một router đang trải qua tình trạng tắc nghẽn hoặc khi một máy chủ đích không có. Trường đầu tiên là Type. Đây là một giá trị 8 bit, để nhận dạng thông điệp gói ICMP. Ví dụ trường này có giá trị là 3 là gói tin không có đích đến Trường tiếp theo là Code. Có giá trị 8 bit. Nó thể hiện thông tin chi tiết dựa vào trường Type. Ví dụ Type là 3 Code có giá trị 1 là không tìm thấy host Tiếp theo là Checksum. Kiểm tra lỗi toàn bộ gói tin ICMP Truyền Thông An Ninh Thông Tin 46 Trường ĐH Công Nghệ Thông Tin Mạng Máy Tính & Truyền Thông Tiếp theo là trường thông điệp. Không thể sửa, dựa vào Type và Code 3.4. THỰC HÀNH PHÂN TÍCH VÀ NHẬN DẠNG THÔNG ĐIỆP ICMP Window server 2003, mở cmd và ping một địa chỉ rồi bắt gói tin lại. Xem gói tin ICMP. Kiểm tra thông tin các trường Source address, des address, type, code, payload for ping Thông tin gói tin ICMP 3.5. PHÂN TÍCH VÀ NHẬN DẠNG THÔNG ĐIỆP TCP Truyền Thông An Ninh Thông Tin 47 Trường ĐH Công Nghệ Thông Tin Mạng Máy Tính & Truyền Thông Gói TCP với các trường Cấu trúc TCP segment: • Source/Destination port number: 2 điểm cuối của kết nối TCP. Port number + IP add→ socket (48 bit) • Seq. number = số thứ tự byte đầu tiên của data so với byte đầu của dòng dữ liệu của thực thể gửi. Giá trị ban đầu = ISN+1 (Initial Sequence Number) • ACK: Byte tiếp theo có thể nhận (stt byte cuối cùng đã nhận đúng + 1) • TCP header length:đơn vị 32 bit; đó cũng chính là data offset. • Resered = 0:để dùng trong tương lai. • Flags (6): –URG =1: có sử dụng trường Urgent pointer. –ACK =1: trường Ack đúng. –PSH =1: thực thể nhận được y/c chuyển ngay segment này –RST =1: Reset kết nối; từ chối kết nối v.v. –SYN =1:đồng bộ trường Seq. , dùngđể thiết lập kết nối TCP –FIN =1: thông báo thực thể gửiđã kết thúc việc gửi số liệu. • Window size:Độ lớn cửa sổ nhận, cho bên sender biết có thể gửi tiếp bao nhiêu byte, tính từ byte được biên nhận (ack). Truyền Thông An Ninh Thông Tin 48 Trường ĐH Công Nghệ Thông Tin Mạng Máy Tính & Truyền Thông • Checksum: checksum của cả TCP segment + Pseudo header. Trước khi tính, trường này = 0. (Tổng các word 16 bit kiểu bù 1, kết quả thuđược lại tính bù 1 XOR). • Urgent pointer: byte trong trường data của TCP segment cần được xử lý đầu tiên. • Options: Các tuỳ chọn. Hiện nay tuỳ chọn duy nhất được dùng là MSS (Maximum Segment Size). Giá trị default = 536 byte payload + 20 byte header = 556 byte. • Pad (ở hình trên slide trước không vẽ): chèn thêm để chiều dài trường Options là bội của 32 bit. • Data: số liệu của ứng dụng TCP 3.6. Thực hành phân tích và nhận dạng thông điệp TCP Mở cmd, thiết lập một phiên Telnet và xem gói TCP. Thông tin gói tin TCP 3.7. Phân tích và nhận dạng thông điệp UDP Truyền Thông An Ninh Thông Tin 49 Trường ĐH Công Nghệ Thông Tin Mạng Máy Tính & Truyền Thông Gồm các trường tên cổng nguồn/ đích, chiều dài , kiểm tra lỗi, dữ liệu. Thông tin gói tin UDP 3.8 Phân tích và nhận dạng gói UDP Header 3.8.1 Bắt và xác định gói UDP Headers. Truyền Thông An Ninh Thông Tin 50 Trường ĐH Công Nghệ Thông Tin Mạng Máy Tính & Truyền Thông So sánh với TCP, UDP là một giao thức truyền rất đơn giản, UDP headers và dữ liệu sẽ được đóng gói trong IP datagram, gần giống như TCP. Trong hình 2-19, bạn có thể nhìn thấy dạng thực tế của UDP header. Có 3 dòng thông tin trong hình này. Cũng như TCP, khi một máy tính nhận được UDP header, nó sẽ bắt đầu đọc dòng đầu tiên và từ bên trái qua, từng bit từng bit một. Một khi nó đọc xong dòng đầu, nó sẽ tiếp tục dòng thứ hai và tiếp tục như thế. Hình 2-19: Một UDP header với tất cả trường của nó. Sử dụng hình 2-19, chúng ta sẽ tập trung vào phần header, xác định chức năng của mỗi vùng. Sau khi xác định các trường, chúng ta sẽ dùng Network Monitor để bắt và phân tích gói tin UDP header. - Bắt đầu từ dòng một, ô bên trái là một trường được gọi là Source Port Number. Trường này là một giá trị 16 bit để định nghĩa tầng application bên trên đang sử dụng UDP ở host nguồn. - Trường thứ hai của dòng đầu được gọi là Destination Port Number. Trường này là một giá trị 16 bit để định nghĩa cho tầng application bên trên đang sử dụng UDP ở host đích. - Ở dòng thứ hai, trường bên tay trái được gọi là UDP Length. Đây là giá trị 16 bit để định nghĩa chiều dài của dữ liệu gói UDP và UDP header. - Trường thứ hai của dòng thứ hai là trường được gọi là UDP Checksum. Đây là giá trị 16 bit được dùng để cung cấp khả năng kiểm tra toàn vẹn của UDP header và UDP data. Giá trị này sẽ được tính toán bởi người gửi, sau đó lưu lại và người nhận so sánh với giá trị nhận được. - Dòng thứ ba là nơi dữ liệu user thực được lưu trữ. Nó có thể cho một user gửi một UDP datagram với dữ liệu có kích thước 0 bytes. 3.8.2 Working with UDP Headers Truyền Thông An Ninh Thông Tin 51 Trường ĐH Công Nghệ Thông Tin Mạng Máy Tính & Truyền Thông Cài đặt: bạn hãy logged vào Windows Server 2003 với quyền Administrator, và chạy Network Monitor. 1. Tìm đến C:\Tools\Lesson2. Trong folder này là một file tftp.cap. Mở tftp.cap trong Network Monitor. 2. Mở chi tiết của khung UDP bất kỳ, và so sánh nó trong bài thảo luận. Chú ý thông tin bên dưới: a. Source Port. b. Destination Port. c. UDP thực tế là cái gì. 3. Khi bạn đang phân tích gói traffic này, chắc chắn rằng không có phiên làm việc nào đang hoạt động, khi UDP bị mất kết nối. 4. Đóng capture. Truyền Thông An Ninh Thông Tin 52 Trường ĐH Công Nghệ Thông Tin Mạng Máy Tính & Truyền Thông Chương IV- Phân tích gói dữ liệu phân mảnh và một Session hoàn chỉnh Tất cả dữ liệu được chuyển dịch trong mạng trong một lần hoặc nhiều lần khác nhau, tùy đoạn dữ liệu được phân mảnh. Điều này là do thực tế rằng tất cả các mạng phức tạp thì được cấu thành từ các đa phương tiện khác nhau và cách cấu hình khác nhau. Vì thế, một gói packet có kích thước chính xác không đổi có thể là phù hợp ở một segment, nhưng nó lại quá lớn đối với segment kế tiếp. Gói packet có kích thước hạn chế thì cho phép tồn tại trong mô hình mạng đa dạng hoặc từ mạng này sang mạng khác được gọi là Maxium Trasmission Unit (MTU). Khi datagram được phân mảnh, nó sẽ không tập hợp lại cho đến khi nó tìm được đến địa chỉ đích cuối cùng. Khi datagram bị phân mảnh, mỗi mảnh trở thành gói packet truyền độc nhất và được nhận một lần duy nhất. TCP segments được gửi đi sử dụng IP datagram. TCP mong đợi tỷ lệ một một của segment đến datagram. Do đó, IP trên người nhận cuối phải hoàn thành việc kết hợp datagram trước khi gửi segment đến TCP. Trong mối quan hệ giữa TCP và IP, các ràng buộc bên dưới có ảnh hưởng đến phân đoạn được định nghĩa: - Kích thước lớn nhất gói segment TCP (MMS) là IP kíc thước lớn nhất gói IP datagram trừ đi 40 octets. - Kích thuớc mặc định của Maxium Datagram Size là 576 octets. - Kích thuớc mặc định của Maxium Segment Size là 536 octets. Việc phân mảnh hiếm khi xảy ra ở nguồn của một datagram, nhưng cũng có thể có. Ví dụ như một host nhận nói rằng nó có thể chấp nhận những segments mà có kích thước lớn hơn nhiều lần segments mà các user bình thường vẫn gửi. Một ví dụ khác là host nằm trong môi trường mạng chạy gói tin kích thước nhỏ, như là PPP, và dùng một ứng dụng chỉnh sửa kích thước gói tin. Truyền Thông An Ninh Thông Tin 53 Trường ĐH Công Nghệ Thông Tin Mạng Máy Tính & Truyền Thông Nhìn chung là sau cùng việc phân mảnh là ở gateway, nơi mà có sự khác biệt MTU trên các cổng khác nhau rất cao. Bên dưới là danh sách các MTU trên các thiết bị khác nhau: - PPP: 296 bytes Ethernet: 1500 bytes Token Ring (4 MB/s): 4464 bytes Token Ring (16 MB/s): 17914 bytes Hình 2-20: cách thức truyền của đoạn phân mảnh 4.1 Phân tích đoạn phân mảnh Cài đặt: log vào windows server 2003 với quyền Administrator sau đó chạy Network Monitor. 1. Monitor. 2. 3. Tìm đến C:\Tools\Lesson2 và mở fragment.cap trong Network Mở chi tiết frame 1, quan sát Fragment flag. Nhận ra rằng, trong frame 1, không có Fragment Offset, như là fragment đầu tiên. 4. Chọn một vài frames liên tiếp. Nhận ra rằng mỗi frame liên tiếp có Fragment Offset lớn hơn nó ở xa hơn so với datagram ban đầu. 5. Nhậ ra rằng IP ID là không đổi cho mỗi fragment. 6. Mở chi tiết frame 16. Truyền Thông An Ninh Thông Tin 54 |