Tài liệu Hướng dẫn thực hành môn Mạng máy tính - Bài 3: Tìm hiểu công cụ bắt gói tin Wireshark
CTT105 – Mạng Máy Tính
Console
TÌM HIỂU CÔNG CỤ BẮT GÓI TIN WIRESHARK
I. Mục tiêu :
Bài hướng dẫn giúp sinh viên có thể:
Sử dụng công cụ bắt gói tin Wireshark.
Biết cấu trúc gói tin một số giao thức cơ bản trong mạng máy tính
II. Wireshark
II.1.Giới thiệu
Wireshark là một phần mềm mã nguồn mở dùng để bắt và phân tích các gói
tin lưu thông qua card mạng của máy tính. Phần mềm này có thể sử dụng trên
nhiều nền tảng khác nhau như Linux, windows, Mac OS X, Solaris …
Tên nguyên bản của phần mềm Wireshark là Ethereal, vào tháng 5 năm
2006 dự án được chuyển tên thành Wireshark.
Phần mềm Wireshark giúp :
Người quản trị hệ thống phân tích và sửa chữa hệ thống.
Người phát triển chương trình xây dựng các ứng dụng.
Sinh viên tìm hiểu hoạt động của các giao thức mạng.
Các tính năng chính của Wireshark gồm :
Bắt các gói tin đi qua một card mạng.
Liệt kê một cách chi tiết các gói tin bắt được.
Lưu trữ và mở lại các thông tin bắt được dưới dạng file.
Tiến hành lọc các gói tin bắt được dưới nhiều tiêu chuẩn khác nhau.
Tạo ra các biểu đồ thống kê các gói tin qua card mạng.
Và nhiều các tính năng khác
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 1
CTT105 – Mạng Máy Tính
Console
II.2.Cách cài đặt
2. Cài đặt từ file vừa download về.
Trên windows quá trình này diễn ra tự động và gồm bước
a. Cài đặt bộ thư viện WinPcap là một bộ thư viện trên windows cung
cấp chức năng bắt các gói tin trên card mạng.
b. Cài đặt phần mềm wireshark sẽ hoạt động dựa trên bộ thư viện này.
II.3.Cách bắt gói tin thông qua một card mạng
Khởi động chương trình Wireshark.
Lưu ý rằng wireshark không bắt hết các gói tin của máy mà chỉ bắt các gói
tin thông qua một card mạng được chọn, nên đầu tiên là ta phải chọn card mạng
muốn lắng nghe. Chọn Menu Capture Interface hay phím tắt là Ctr+I :
Ở đây liệt kê tất cả các card mạng mà máy tính có, ta chọn một card mạng
muốn lắng nghe và khởi động quá trình Capture .
Thử ping 8.8.8.8 và ta nhận được kết quả bắt gói tin như sau :
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 2
CTT105 – Mạng Máy Tính
Console
Menu
Lệnh
Danh
sách
các gói
tin
Thông tin
gói tin
theo cấu
trúc của
giao thức
Thông
tin gói
tin dạng
byte
Sau khi thu thập đủ các dữ liệu cần, ta sẽ dừng quá trình lắng nghe tại một
card mạng bằng cách vào menu Capture Stop
II.4.Lọc các gói tin sau khi Capture
Trong quá trình làm việc thực tế thường có rất nhiều các loại gói tin khác nhau
thông qua card mạng mà ta khó có thể kiểm soát hết được. Trong khi đó ta thường
chỉ muốn tiến hành thu thập dữ liệu và phân tích một số loại gói tin nhất định.
Chính vì thế Wireshark cung cấp cho người dùng khả năng lọc các gói tin theo các
tiêu chí cụ thể.
Wireshark cung cấp cho người dùng 2 phương pháp để lọc gói tin vào 2 thời điểm
khác nhau của quá trình bắt gói tin. Tuy nhiên, do 2 thời điểm lọc gói tin là khác
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 3
CTT105 – Mạng Máy Tính
Console
nhau và do 2 thành phần khác nhau đứng ra lọc gói tin là WinPCap và chương
trình Wireshark nên ta sẽ thấy được sự khác nhau trong ngôn ngữ mô tả của 2 chức
năng này. Sau đây ta sẽ đi tìm hiểu cả 2 phương pháp.
II.4.1. Lọc gói tin ngay khi bắt:
Khi mở hộp thoại chọn card mạng, thay vì bấm Start để bắt đầu, ta tiên nhấn
nút Options để tùy khởi động việc tùy chọn cho việc bắt gói tin.
Hộp thoại Capture Options sẽ hiện ra :
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 4
CTT105 – Mạng Máy Tính
Console
Hộp thoại này cho phép ta tùy chỉnh rất nhiều các tính năng trong quá trình
bắt gói tin như chức năng lọc các gói tin, chức năng hiển thị các gói, chức năng lưu
trữ các gói tin và chức năng hẹn giờ tắt chương trình.
Ở đây chúng ta quan tâm đến chức năng lọc các gói tin bắt được. Việc lọc
các gói tin bắt được sẽ được thực hiện theo mô tả mà người dùng đánh vào ở mục
capture Filter. Các gói tin sẽ được lọc theo tiêu chí được mô tả và chỉ những gói tin
thỏa các tiêu chí này mới được lưu lại để xem xét.
Phương pháp mô tả các gói tin :
Vì việc bắt các gói tin ở phần này được thực hiện dưới sự hỗi trợ bộ thư viện
WinPcap, nên ngôn ngữ mô tả ở đây được sử dụng là ngôn ngữ mô tả của
WinPcap.
Sau đây sẽ trình bày một cách khái quát phương pháp mô tả này.
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 5
CTT105 – Mạng Máy Tính
Console
Câu lệnh mô tả là sự kết hợp của nhiều câu lênh mô tả con và được nối với
nhau bằng [and|or], ta có thể phủ định câu lênh mô tả con bằng cách đặt chữ not
trước nó.
[not] Mô Tả [and|or] [not] Mô Tả …
Ví dụ :
+Lọc các gói tin Telnet (port 23) từ máy chủ 10.0.0.5
tcp port 23 and host 10.0.0.5
Các mô tả thành phần là một trong những mô tả sau :
[src|dst] host <host>
Là một thành phần cho phép bạn lọc các gói tin theo địa chỉ IP hay theo tên
của nguồn hay đích. Bạn có thể chỉ rõ địa chỉ nguồn hay đích bằng cách đặt các
tham số phụ ở đầu là src|dst . Nếu trường này không được chỉ ra, về mặc định các
gói tin có địa chỉ nguồn hay đích phù hợp điều kiện sẽ được nhận.
ether [src|dst] host <ehost>
Thành phần này cho phép bạn filter trên địa chỉ Ethernet của nguồn hay
đích. Tương tự như thành phần ở trên bạn có thể chỉ rõ loại địa chỉ mà bạn quan
tâm bằng tham số phụ là [src|dst].
[src|dst] net <net> [{mask <mask>}|{len <len>}]
Thành phần này cho phép bạn tiến hành lọc các gói tin theo địa chỉ network
của một gói tin. Bạn có thể thêm các thành phần phụ như src|dst vào để nhấn mạnh
rằng bạn quan tâm đến địa chỉ nguồn hay đích. Nếu không thêm trường này vào thì
các gói tin có địa chỉ nguồn hoặc đích thỏa yêu cầu sẽ được lưu lại.
[tcp|udp] [src|dst] port <port>
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 6
CTT105 – Mạng Máy Tính
Console
Cho phép bạn lọc các gói tin theo TCP và UDP port. Bạn có thể thêm các
tham số src|dst và tcp|udp cho phép bạn nhấn mạnh rằng quan tâm đến địa chỉ
port nguồn hay đích, UDP hay TCP. Chú ý rằng từ tcp|udp phải xuất hiện trước
src|dst.
Nếu các tham số đó không được sử dụng, gói tin sẽ được lựa chọn trên cả 2
giao thức là TCP và UDP khi mà địa chỉ và port của gói tin thỏa mãn điều kiện đề
ra.
less|greater <length>
Thành phần này cho phép bạn lọc các gói tin có chiều dài nhỏ hơn, hay bằng
hoặc lớn hơn một độ dài cho trước.
ip|ether proto <protocol>
Thành phần này cho phép bạn lọc các gói tin ở một số giao thức nhất định ở
cả tầng Ethernet hay tầng IP.
ether|ip broadcast|multicast
Cho phép bạn tiến hành lọc các gói tin ở cả tầng Ethernet hay IP với
broadcasts or multicasts.
<expr> relop <expr>
Cho phép bạn tạo ra một điều kiện lọc gói tin phức tạp bằng cách nhấn mạnh
bằng cách chỉ ra một byte hay một khoảng bytes của gói tin. Tham khảo chi tiết tại
II.4.2. Lọc các gói tin sau khi bắt:
Wireshark cung cấp một cách lọc các gói tin khác sau khi bắt và lưu trữ nó
một cách khá hiệu quả và đơn giản hơn. Ngôn ngữ mô tả ở đây được Wireshark
xây dựng một cách đơn giản hơn vì thế cho phép bạn có thể tạo ra những điều kiện
lọc gói tin chính xác và hiệu quả hơn. Bạn có thể so sánh giá trị của các trường của
một gói tin thông qua các biểu thức một cách trực quan. Bạn có thể tiến hành lọc
các gói tin theo :
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 7
CTT105 – Mạng Máy Tính
Console
Loại giao thức.
Sự xuất hiện của một trường
Giá trị của một trường
Và nhiều các giá trị khác.
VD :
Ta tiến hành lọc các gói tin DNS từ các gói tin bắt được bằng cách nhập chữ
DNS vào trường Filter của cửa sổ hiển thị :
Để xây dựng tốt các miêu tả lọc gói tin bạn nên tham khảo chi tiết tại
cách xây dựng biểu thức lọc gói tin.
Phương pháp mô tả các gói tin :
Mọi trường trong khung thông tin của Packet mà Wireshark thể hiện đều có
thể sử dụng ở trong ô Filter.
Ví dụ : nếu Filter là tcp thì Wireshark sẽ tiến hành lọc các gói tin có trường
này.
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 8
CTT105 – Mạng Máy Tính
Console
Một bảng danh sách đầy đủ các trường có thể tiến hành lọc được thể hiện ở
Menu Internals Supported Protocals
Tiến hành so sánh các trường :
Ta có thể tiến hành so sánh các trường của một gói tin theo các giá trị cụ thể.
Bạn có thể sử dụng từ viết tắt cho tiếng anh hay sử dụng các phép so sánh của ngôn
ngữ C để thể hiện việc so sánh. Bảng các phép so sánh có giá trị được liệt kê bên
dưới:
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 9
CTT105 – Mạng Máy Tính
Console
English
C
Định nghĩa và ví dụ
Bằng
==
!=
>
Eq
Ne
Gt
Lt
ip.src==10.0.0.5
Khác
ip.src!=10.0.0.5
Lớn hơn
frame.len > 10
Bé hơn
<
frame.len < 128
Lớn hơn hay bằng
>=
<=
Ge
Le
frame.len ge 0x100
Bé hơn hay bằng
frame.len <= 0x20
Bảng sau thể hiện các trường mà bạn có thể tiến hành so sánh cũng như cách
sử dụng chúng :
Type
Example
Ta có thể tiến hành so sánh các giá trị số với với trên
hệ 10 hay hệ 16
Giá trị số không dấu (8-
bit, 16-bit, 24-bit, 32-
bit)
ip.len le 1500
ip.len le 02734
ip.len le 0x436
Nhấn mạnh một trường nào đó của gói tin có tồn tại hay không. Nếu
trường đó tồn tại, giá trị trả ra là True và gói tin thỏa điều kiện lọc.
Boolean
VD : Lọc các gói tin có cờ SYN của giao thức TCP
tcp.flags.syn
Dấu ngăn cách sử dụng ở đây có thể là dấu hai chấm (:), dấu chấm (.),
dấu gạch ngang (-).
Địa chỉ Ethernet (6
bytes)
eth.dst == ff:ff:ff:ff:ff:ff
eth.dst == ff-ff-ff-ff-ff-ff
eth.dst == ffff.ffff.ffff
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 10
CTT105 – Mạng Máy Tính
Console
Type
Example
ip.addr == 192.168.0.1
IPv4
Tiến hành lọc IP từ một miền xác định :
ip.addr == 129.111.0.0/16
ipv6.addr == ::1
IPv6
IPX
ipx.addr == 00000000.ffffffffffff
Chuỗi
http.request.uri == "http://www.wireshark.org/"
Các phép liên kết giữa các biểu thức :
English C-
Định nghĩa và ví dụ
ip.src==10.0.0.5 and tcp.flags.fin
and
or
&&
||
ip.scr==10.0.0.5 or ip.src==192.1.1.1
tr.dst[0:3] == 0.6.29 xor tr.src[0:3] == 0.6.29
xor
not
^^
!
not llc
Phân đoạn
Wireshark cho phép bạn chia các tham số thành các đoạn để so sánh với một cách
khá phức tạp. Sau trường so sánh, bạn có thể đặt dấu [] và chỉ ra khoảng mà bạn
muốn sử dụng để so sánh.
VD:
[n:m] giá trị so sánh lấy từ vị trí n và lấy m giá trị
eth.src[0:3] == 00:00:83]
[...]
[n-m] Lấy từ vị trí thứ n đến vị trí thứ m
eth.src[1-2] == 00:83
[:m] lấy các giá trị từ vị trí bắt đầu cho đến vị trí thứ m. điều này tương đương với
[0:m]
eth.src[:4] == 00:00:83:00
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 11
CTT105 – Mạng Máy Tính
Console
English C-
Định nghĩa và ví dụ
[n:] Lấy các giá trị từ điểm n trở về sau.
eth.src[4:] == 20:20
[n] lấy chính xác giá trị tại vị trí thứ n. Tương đương với [n:1]
eth.src[2] == 83
Wireshark cho phép bạn nối các giá trị này lại với nhau bằng dấu phẩy ngăn cách
giữa chúng.
eth.src[0:3,1-2,:4,4:,2] ==
00:00:83:00:83:00:00:83:00:20:20:83
III. Cấu trúc các gói tin thông dụng
III.1.Gói tin TCP:
.
Chi tiết tham khảo tại
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 12
CTT105 – Mạng Máy Tính
Console
III.2.Gói tin UDP
III.3.Gói tin IP
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 13
CTT105 – Mạng Máy Tính
Console
III.4.Gói tin ICMP
Chi tiết tham khảo tại
III.5.ARP Packet:
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 14
CTT105 – Mạng Máy Tính
Console
III.6. Gói tin DHCP:
Chi tiết tham khảo tại
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 15
CTT105 – Mạng Máy Tính
Console
III.7. Gói tin DNS:
Bộ môn MMT&VT | Khoa CNTT | ĐH KHTN TP HCM | Tháng 9/2012
Trang 16
Bạn đang xem tài liệu "Tài liệu Hướng dẫn thực hành môn Mạng máy tính - Bài 3: Tìm hiểu công cụ bắt gói tin Wireshark", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
tai_lieu_huong_dan_thuc_hanh_mon_mang_may_tinh_bai_3_tim_hie.pdf