Contents 1. Giới thiệu. 2 1.1 Wireshark là gì? 2 1.2 Mục đích sử dụng Wireshark. 2 1.3 Chức năng. 2 2. Giao diện người dùng. 2 2.1 Thanh menu. 3 2.2 Thanh công cụ chính. 4 2.3 Thanh lọc (Filter Toolbar). 5 2.4 Ô liệt kê gói tin (Packet List Pane). 5 2.5 Ô chi tiết gói tin (packet detail pane). 6 2.6 Ô mã nhị phân gói tin. 6 2.7 Thanh trạng thái (Statusbar). 6 3. Sử dụng Wireshark để bắt và phân tích gói tin. 6 3.1 Cách bắt gói tin. 6 3.2 Phân tích gói tin. 8 4. Phân tích gói tin SNMP. 10 4.1 Cấu trúc của PDU GETQUEST. 10 4.2 Cấu trúc của PDU GetResponse. 11 4.3 Cấu trúc của PDU GetNextRequest 12 4.4 Cấu trúc của PDU SetRequest 13 4.5 Cấu trúc của PDU Trap. 14
Contents Page 1 of 15 1. Giới thiệu. 1.1 Wireshark là gì? Wireshark là một phần mềm dùng để phân tích các gói tin trong mạng. Phân tích gói tin trên mạng là cố gắng bắt các gói tin trên mạng và cố gắng hiển thị dữ liệu gói tin chi tiết nhất có thể. Nó giống như một thiết bị đo lường được dùng để kiểm tra những gì đang xảy ra trong cáp mạng, giống như một vôn-kế được thợ điện dùng để kiểm tra những gì đang xảy ra trong dây điện. Trong quá khứ, những công cụ có chức năng như vậy thường rất đắt tiền, độc quyền hoặc cả hai. Wireshark có lẽ là một trong những mã nguồn mở phân tích gói tin trong mạng tốt nhất hiện nay. 1.2 Mục đích sử dụng Wireshark. Dưới đây là một số mục đích khi sử dụng wireshark: - Nhân viên quản trị mạng dùng Wireshark để khắc phục sự cố các vấn đề mạng. - Kỹ sư an ninh mạng dùng Wireshark để kiểm tra vấn đề an ninh mạng. - Các nhà phát triển dùng Wireshark để gỡ các lỗi khi triển khai giao thức - Người sử dụng dùng nó để tìm hiểu lõi của giao thức mạng. Bên cạnh các chức năng trên, Wireshark còn có thể hữu ích trong nhiều tình huống khác. 1.3 Chức năng. Sau đây là một số chức năng mà Wireshark cung cấp: - Dùng cho hệ điều hành UNIX và Windows. - Bắt gói dữ liệu trực tiếp từ giao diện mạng. - Hiển thị nội dung gói tin rất chi tiết. - Mở và lưu dữ liệu gói tin bị bắt. - Nhập và xuất dữ liệu gói tin và bắt gói tin từ nhiều chương trình khác nhau. - Bộ lọc gói tin trên nhiều tiêu chí. - Tìm kiếm các gói tin trên nhiều tiêu chí. - Nhiều màu sắc hiển thị dựa trên loại gói tin. Và nhiều hơn nữa…. 2. Giao diện người dùng. Dưới đây là giao diện tổng quát của chương trình. Page 2 of 15 Hình 1: Giao diện tổng quát của chương trình. 2.1 Thanh menu. File: chứa các lệnh mở hay kết hợp các file dữ liệu thu thập, lệnh lưu/ in/ kết xuất toàn bộ hoặc một phần file dữ liệu thu thập, và lệnh đóng chương trình Wireshark. Edit: chứa các lệnh tìm gói tin, tham chiếu thời gian hoặc đánh dấu một hay nhiều gói tin, thiết lập các tùy chọn. View: chứa lệnh điều khiển việc hiển thị dữ liệu thu được, bao gồm việc tô màu các gói tin, phóng to, biểu diễn gói tin trong cửa sổ riêng, mở rộng hoặc thu hẹp cây chi tiết gói tin… Go: chứa các mục để đi đến một gói tin cụ thể. Capture: bắt đầu hoặc kết thúc việc bắt gói tin, thiết lập bộ lọc gói tin. Page 3 of 15 Analyze: chứa các mục để thao tác các bộ lọc hiển thị, kích hoạt hoặc vô hiệu hóa mổ xẻ các giao thức, cấu hình người dùng chỉ định giải mã và theo một dòng TCP. Statistics: chứa các mục để hiển thị các cửa sổ thống kê khác nhau, bao gồm 1 bản tóm tắt của gói tin đã bị bắt, hiển thị thống kê phân cấp và nhiều hơn. Telephony: chứa các mục để hiển thị cửa sổ thống kê liên quan đến thoại, bao gồm phân tích đường truyền, lưu lượng, hiển thị giao thức thông kê phân cấp. Tools: chứa các công cụ có sẵn trong Wireshark. Internals: chứa các mục để hiển thị thông tin Wireshark. Help: chứa mục để giúp đỡ người dùng. 2.2 Thanh công cụ chính. Thanh công cụ chính chứa các lệnh giúp người sử dụng nhanh chóng tìm thấy các lệnh cần thiết. Toolbar Icon Toolbar Item Coresponding Menu Item Description Interfaces . Capture/ Interfaces . Mục này trả về hộp thoại Capture Interfaces List Options . Capture/Options . Mục này trả về hộp thoại Capture Options Start Capture/Start Bắt đầu bắt gói tin Stop Capture/Stop Dừng bắt gói tin Restart Capture/Restart Dừng việc bắt gói tin và khởi động lại cho thuận tiện. Open . File/Open . Mở hộp thoại Open và tải file capture để xem. Save File/Save As . Save file capture dang chạy. Close File/Close Đóng capture hiện tại. Reload View/Reload Tải lại lần nữa file capture. Find Packet . File/Print . Mở một hộp thoại để tìm một gói tin. Go Back Edit/Find Packet . Nhảy trở lại lịch sử gói tin. Page 4 of 15 Go Forward Go/Go Forward Nhảy về phía trước trong lịch sử gói tin. Go to Packet . Go/Go to Packet . Mở hộp thoại cho phép chỉ định đến một số gói tin. Go To First Packet Go/First Packet Nhảy đến gói tin đầu tiên của file capture. Go To Last Packet Go/Last Packet Nhảy đến gói tin cuối cùng của file capture. Colorize View/Colorize Có hoặc không có màu cho danh sách gói tin. Auto Scroll in Live Capture View/Auto Scroll in Live Capture Cuộn hay không cuộn trong quá trình bắt gói tin. Zoom In View/Zoom In Phóng to dữ liệu gói tin. Zoom Out View/Zoom Out Thu nhỏ dữ liệu gói tin. Normal Size View/Normal Size Thiết lập kích thước mặc định 100% Resize Columns View/Resize Columns Thay đổi kích thước cột. Capture Filters . Capture/Capture Filters . Mở hộp thoại cho phép thiết lập lọc gói tin. Display Filters . Analyze/Display Filters . Mở hộp thoại cho phép thiết lập và chỉnh sửa lọc gói tin. Coloring Rules . View/Coloring Rules . Mở hộp thoại cho phép thiết lập màu cho gói tin. Preferences . Edit/Preferences Mở hộp thoại cho phép thiết lập ưu tiên dối với nhiều thông số. Help Help/Contents Giúp đỡ người dùng. 2.3 Thanh lọc (Filter Toolbar). Thanh lọc được sử dụng để tìm kiếm gói tin mọt cách nhanh chóng bằng cách viết loại gói tin vào ô Filter. Page 5 of 15 2.4 Ô liệt kê gói tin (Packet List Pane). Ô liệt kê gói tin hiển thị tóm tắt về mỗi gói tin bắt được. Mỗi dòng trong danh sách ứng với một gói tin trong file dữ liệu thu thập. Nếu chọn 1 dòng trong ô này, ô Packet Details và Packet Bytes sẽ hiển thị thông tin chi tiết về gói tin tương ứng, khi phân tích một gói tin, Wireshark sẽ lấy thông tin từ bộ phân tích giao thức và dắt vào các cột. Vì thông tin về giao thức ở tầng cao sẽ ghi đè lên thông tin của giao thức ở tầng thấp nên sẽ chỉ nhìn thấy thông tin giao thức tầng cao nhất có thể. 2.5 Ô chi tiết gói tin (packet detail pane). Ô chi tiết gói tin hiển thị chi tiết thông tin gói tin được chọn ở ô liệt kê gói tin. 2.6 Ô mã nhị phân gói tin. Ô mã nhị phân hiển thị dữ liệu biểu diễn dưới dạng cơ số 16 của gói tin dược chọn. Cột bên trái ghi vị trí tương đối của dữ liệu trong gói tin , cột ở giữa là dữ liệu được biểu diễn dưới dạng cơ số 16 và cột bên phải là ký tự ASCII tương ứng hoặc là dấu “.” nếu ký tự không biểu diễn được. 2.7 Thanh trạng thái (Statusbar). Thanh trạng thái biểu diễn một số thông tin thêm về trạng thái hiện tại của chương trình và các dữ liệu thu thập được. thông thường phần bên trái sẽ hiển thị thông tin liên quan đến ngữ cảnh (tên, kích thước của file, thời gian thực hiện), trong khi phần bên phải hiển thị số lượng gói tin hiện đã thu thập được. Page 6 of 15 3. Sử dụng Wireshark để bắt và phân tích gói tin. 3.1 Cách bắt gói tin. Sau khi cài đặt, khởi động chương trình và chọn thành phần trong interface để bắt đầu hoạt động. ví dụ nếu muốn giám sát lưu lượng mạng qua mạng wireless thì chọn card mạng wifi tương ứng. nhấn Capture Option để hiển thị nhiều tùy chọn khác. Ngay sau đó chúng ta sẽ thấy các gói dữ liệu bắt đầu xuất hiện, Wireshark sẽ bắt từng gói tin- package ra và vào hệ thống mạng. Nếu đang giám sát thông tin trên Wireless trong chế độ Promiscuous thì sẽ thấy các gói dữ liệu khác trong toàn bộ hệ thống. Page 7 of 15 Nếu muốn dừng quá trình này thì ấn nút Stop trên thanh công cụ chính (Main Toolbar). Mỗi gói tin tương ứng với một Frame. Mỗi Frame sẽ có một màu sắc khác nhau tương ứng với protocol của nó. Ví dụ: SSDP: xanh lá cây, TCP: màu xám, UDP: xanh da trời, ICMP: màu tím…và màu đen là gói TCP đang có vấn đề. 3.2 Phân tích gói tin. Cách đơn giản nhất để sử dụng Filter sau đó nhấn enter. Ví dụ, nếu gõ TCP thì chỉ thấy các gói tin TCP. Page 8 of 15 Để kiểm tra thông tin gói tin ta chon một gói tin bất kỳ để kiểm tra các phần thông tin cụ thể hơn. Page 9 of 15 4. Phân tích gói tin SNMP. 4.1 Cấu trúc của PDU GETQUEST. • Request-id : mã số của request. ID này là số ngẫu nhiên do manager tạo ra, agent khi gửi bản tin GetResponse cho request nào thì nó phải gửi requestID giống như lúc nhận. • Giữa manager và agent có thể có nhiều request & reponse, một request và một response là cùng một phiên trao đổi khi chúng có requestID giống nhau. • Error-status : nếu = 0 là thực hiện thành công không có lỗi, nếu <> 0 là có lỗi xảy ra và giá trị của nó mô tả mã lỗi. Trong bản tin GetRequest, GetNextRequest, SetRequest thì • error-status luôn = 0. • Error-index : số thứ tự của objectid liên quan đến lỗi nếu có. Trong variable- bindings có nhiều objectid, được đánh số từ 1 đến n, một bản tin GetRequest có thể lấy cùng lúc nhiều object. • Variable-bindings : danh sách các cặp [ObjectID – Value] cần lấy thông tin, trong đó objectId là định danh của object cần lấy, còn value không mang giá trị. Khi agent gửi bản tin trả lời thì nó sẽ copy lại bản tin này và điền vào value bằng giá trị của object. Dùng Wireshark để bắt gói tin ta sẽ thấy cấu trúc của một bản tin Getrequest như sau: Page 10 of 15 . GetRequest trước đó. • Error-status : mang một trong các giá trị noError(0), tooBig(1), noSuchName(2), badValue(3), readOnly(4), genErr(5). Nếu agent lấy thông. cấp và nhiều hơn. Telephony: chứa các mục để hiển thị cửa sổ thống kê liên quan đến thoại, bao gồm phân tích đường truyền, lưu lượng, hiển thị giao thức