TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
KHOA CÔNG NGHỆ THÔNG TIN
@&?
BÀI TẬP LỚN
THỰC HÀNH MẠNG MÁY TÍNH
ĐỀ TÀI:
TÌM HIỂU PHẦN MỀM WIRESHARK
Giáo viên hướng dẫn : Nguyễn Duy Tân
Sinh viên thực hiện : Hoàng Lệ Chi
Lớp : TK6LC_1
HƯNG YÊN 5-2009
Tìm hiểu về Wireshark
ĐỀ TÀI: TÌM HIỂU VỀ WIRESHARK
I. Giới thiệu WireShark
WireShark có một bề dầy lịch sử. Gerald Combs là người đầu tiên phát triển phần
mềm này. Phiên bản đầu tiên được gọi là Ethereal được phát hành năm 1998. Tám
năm sau kể từ khi phiên bản đầu tiên ra đời, Combs từ bỏ công việc hiện tại để
theo đuổi một cơ hội nghề nghiệp khác. Thật không may, tại thời điểm đó, ông
không thể đạt được thoả thuận với công ty đã thuê ông về việc bản quyền của
thương hiệu Ethereal. Thay vào đó, Combs và phần còn lại của đội phát triển đã
xây dựng một thương hiệu mới cho sản phẩm “Ethereal” vào năm 2006, dự án tên
là WireShark.
WireShark đã phát triển mạnh mẽ và đến nay, nhóm phát triển cho đến nay đã lên
tới 500 cộng tác viên. Sản phẩm đã tồn tại dưới cái tên Ethereal không được phát
triển thêm.
Wireshark là công cụ dùng để phân tích các giao thức của mạng. Wireshark
cho phép bạn xem được chi tiết các giao thức mạng hiện có, bắt các gói tin
và phân tích offline chúng, phân tích VoIP. Dữ liệu có thể bắt được thông qua
giao diện đồ hoạ hoặc qua TTY-mode của tiện ích TShark. Wireshark có thể đọc/
ghi nhiều dạng file như tcpdump (libpcap), Catapult DCT2000, Cisco Secure IDS
iplog, Microsoft Network Monitor, Network General Sniffer®, … Dữ liệu nén
dạng gzip bắt được có thể giải nén ngay lập tức, ngoài ra Wireshark cũng cung
cấp nhiều phương thức giải nén cho nhiều phương thức khác như IPsec, ISAKMP,
Kerberos, SNMPv3, SSL/TLS, WEP, … Wireshark có hỗ trợ nhiều quy tắc tô màu
cho các phương thức khác nhau, giúp bạn phân tích chúng trực quan hơn.
Wireshark làm việc với nhiều loại kết nối mạng, bao gồm Ethernet, IEEE 802.11,
PPP/HDLC, ATM, Bluetooth, USB, Token Ring, Frame Relay, FDDI, …
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
Lợi ích Wireshark đem lại đã giúp cho nó trở nên phổ biến như hiện nay. Nó có thể
đáp ứng nhu cầu của cả các nhà phân tích chuyên nghiệp và nghiệp dư và nó đưa ra
nhiều tính năng để thu hút mỗi đối tượng khác nhau.
1. Các giao thức được hỗ trợ bởi WireShark:
WireShark vượt trội về khả năng hỗ trợ các giao thức (khoảng 850 loại), từ những
loại phổ biến như TCP, IP đến những loại đặc biệt như là AppleTalk và Bit
Torrent. Và cũng bởi Wireshark được phát triển trên mô hình mã nguồn mở, những
giao thức mới sẽ được thêm vào. Và có thể nói rằng không có giao thức nào mà
Wireshark không thể hỗ trợ.
•
Thân thiện với người dùng: Giao diện của Wireshark là một trong những
giao diện phần mềm phân tích gói dễ dùng nhất. Wireshark là ứng dụng đồ
hoạ với hệ thống menu rât rõ ràng và được bố trí dễ hiểu. Không như một số
sản phẩm sử dụng dòng lệnh phức tạp như TCPdump, giao diện đồ hoạ của
Wireshark thật tuyệt vời cho những ai đã từng nghiên cứu thế giới của phân
tích giao thức.
•
Giá rẻ: Wireshark là một sản phẩm miễn phí GPL. Bạn có thể tải về và sử
dụng Wireshark cho bất kỳ mục đích nào, kể cả với mục đích thương mại.
•
Hỗ trợ: Cộng đồng của Wireshark là một trong những cộng đồng tốt và năng
động nhất của các dự án mã nguồn mở.
Hệ điều hành hỗ trợ Wireshark: Wireshark hỗ trợ hầu hết các loại hệ điều hành
hiện nay.
2. Một số tính năng nâng cao của Wireshark
•
Name Resolution
Dữ liệu truyền trong mạng thông qua một vài hệ thống địa chỉ, các địa chỉ này
thường dài và khó nhớ (Ví dụ: MAC). Phân giải điạch chỉ là quá trình mà một giao
thức sử dụng để chuyển đổi một địa chỉ loại này thành một địa chỉ loại khác đơn
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
giản hơn. Chúng ta có thể tiết kiệm thời gian bằng cách sử dụng một vài công cụ
phân giải địa chỉ để file dữ liệu ta bắt được dễ đọc hơn. Ví dụ như là chúng ta có
thể sử dụng phân giải tên DNS để giúp định danh tên của một máy tính mà ta đang
có gắng xác định như là nguồn của các gói cụ thể.
Các kiểu công cụ phân giải tên trong Wireshark: có 3 loại
Ø
MAC Name Resolution: phân giải địa chỉ MAC tầng 2 sang địa chỉ IP
tầng 3. Nếu việc phân giải này lỗi, Wireshark sẽ chuyển 3 byte đầu tiên
của địa chỉ MAC sang tên hãng sản xuất đã được IEEE đặc tả, ví dụ:
Netgear_01:02:03.
Ø
Network Name Resolution: chuyển đổi địa chỉ tầng 3 sang một tên DNS dễ
đọc như là MarketingPC1.
Ø
Transport Name Resolution: chuyển đổi một cổng sang một tên dịch vụ
tương ứng với nó, ví dụ: cổng 80 là http.
•
Protocol Dissection
Một protocol dissector cho phép Wireshark phân chia một giao thức thành một số
thành phần để phân tích. ICMP protocol dissector cho phép Wireshark phân chia
dữ liệu bắt được và định dạng chúng như là một gói tin ICMP. Bạn có thể nghĩ
rằng một dissector như là một bộ phiên dịch giữa dòng dữ liệu trên đường truyền
và chương trình Wireshark. Với mục đích để hỗ trợ một giao thức nào đó, một
dessector cho giao thức đó phải được tích hợp trong Wireshark. Wireshark sử dụng
đồng thời vài dissector để phiên dịch mỗi gói tin. Nó quyết định dissector nào được
sử dụng bằng cách sử dụng phân tích lôgic đã được cài đặt sẵn và thực hiện việc dự
đoán. Thật không may là Wireshark không phải lúc nào cũng đúng trong việc lựa
chọn dissector phù hợp cho một gói tin. Tuy nhiên, ta có thể thay đổi việc lựa chọn
này trong từng trường hợp cụ thể.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
•
Following TCP Streams
Một trong những tính năng hữu ích nhất của Wireshark là khả năng xem các dòng
TCP như là ở tầng ứng dụng. Tính năng này cho phép bạn phối hợp tất cả các
thông tin liên quan đến các gói tin và chỉ cho bạn dữ liệu mà các gói tin này hàm
chứa giống như là người dùng cuối nhìn thấy trong ứng dụng. Còn hơn cả việc
xem các dữ liệu đang được truyền giữa máy trạm và máy chủ trong một mớ hỗn
độn, tính năng này sắp xếp dữ liệu để có thể xem một cách đơn giản. Bạn có thể sử
dụng công cụ này để bắt và giải mã một phiên instant messages được gửi bởi một
người làm thuê (người này đang bị nghi ngờ phát tán các thông tin tài chính của
công ty).
•
Cửa sổ thống kê phân cấp giao thức
Khi bắt được một file có kích thước lớn, chúng ta cần biết được phân bố các giao
thức trong file đó, bao nhiêu phần trăm là TCP, bao nhiêu phần trăm là IP và
DHCP là bao nhiêu phần trăm, Thay vì phải đếm từng gói tin để thu được kết
quả, chúng ta có thể sử dụng cửa sổ thống kê phân cấp giao thức của Wireshark.
Đây là cách tuyệt với để kiểm thử mạng của bạn. Ví dụ, nếu bạn biết rằng 10% lưu
lượng mạng của bạn được sử dụng bởi các lưu lượng ARP, và một ngày nào đó,
bạn thấy lưu lượng ARP lên tới 50%, bạn hoàn toàn có thể hiểu rằng đang có một
cái gì đó không ổn xảy ra.
•
Xem các Endpoints
Một Endpoint là chỗ mà kết nối kết thúc trên một giao thức cụ thể. Ví dụ, có hai
endpoint trong kết nối TCP/IP: các địa chỉ IP của các hệ thống gửi và nhận dữ liệu,
192.168.1.5 và 192.168.0.8. Một ví dụ ở tầng 2 có thể là kết nối giữa hai NIC vật
lý và địa chỉ MAC của chúng. Các NIC gửi và nhận dữ liệu, các MAC đó tạo nên
các endpoint trong kết nối.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
Khi thực hiện phân tích gói tin, bạn có thể nhận ra rằng bạn đã khoanh vùng vấn
đề chỉ còn là một enpoint cụ thể trong mạng. Hộp thoại Wireshark endpoints chỉ
ra một vài thống kê hữu ích cho mỗi endpoint, bao gồm các địa chỉ của từng máy
cũng như là số lượng các gói tin và dung lượng đã được truyền nhận của từng máy.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
•
Cửa số đồ thị IO
Cách tốt nhất để hình dung hướng giải quyết là xem chúng dưới dạng hình ảnh.
Cửa sổ đồ thị IO của Wireshark cho phép bạn vẽ đồ thị lưu lượng dữ liệu trên
mạng. Bạn có thể sử dụng tính năng này để tìm kiếm các đột biến hoặc những thời
điểm không có dữ liệu truyền của các giao thức cụ thể mà bạn đang quan tâm. Bạn
có thể vẽ đồng thời 5 đường trên cùng một đồ thị cho từng giao thức mà bạn quan
tâm bằng các màu khác nhau. Điều này giúp bạn dễ dàng hơn để thấy sự khác nhau
của các đồ thị.
3. Cài đặt WireShark.
Wireshark là một ứng dụng mã nguồn mở và có thể download miễn phí tại
trang Sau khi download Wireshark về, tập tin lưu trên
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
máy có dạng wireshark-setup-x.y.z.exe. Để khởi động tiến trình cài đặt, bạn thực
thi file trên.
Các bước cài đặt như sau:
Hình 1: Bắt đầu cài đặt
Ấn Next để tiếp tục.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
Hình 2: Thông tin bản quyền.
Nhấn “I Agree” để tiếp tục.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
Hình 3: Trang Components của Wireshark
GTK1 và GTK2 là 2 bộ giao diện đồ họa của WireShark. Chỉ nên chọn
GTK1 khi bạn đang ở chế độ đồ họa 256 màu (thường ở chế độ này GTK2 hoạt
động không được tốt), hoặc khi GTK2 hoạt động không được tốt vì một lý do nào
đó. ngoài ra, bạn nên chọn GTK2 với nhiều tính năng nâng cao hơn so với GTK.
TShark là giao diện dòng lệnh của WireShark. Phần Plugin/Extensions và Tools
bạn để ở chế độ mặc định.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
Hình 4: Cửa sổ Additional Tasks
Nhấn “Next” để tiếp tục.
Hình 5: Chọn đường dẫn đến thư mục bạn định cài Wireshark
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
Mặc định, wireshark sẽ được cài đặt trong thư mục C:\Program
Files\Wireshark. Bạn có thể chọn đường dẫn khác bằng cách nhấn vào “Browse…”
Sau cùng, Nhấn “Next” để tiếp tục.
Hình 6: Bạn có cài winpcap không?
Để Wireshark có thể hoạt động được, bạn phải cài đặt driver Winpcap trên
máy tính của bạn. Trình cài đặt wireshark sẽ kiểm tra xem bạn đã cài đặt winpcap
chưa. Nếu chưa cài đặt winpcap hoặc bạn đã cài rồi nhưng phiên bản cũ hơn,
chương trình sẽ hỏi bạn có cài winpcap không?
Start WinPcap service "NPF" at startup: Cho phép user không có quyền
admin có thể bắt gói tin bằng wireshark.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
Hình 7: Đang trong tiến trình cài đặt
Hình 8: Cửa số cài đặt Winpcap
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
Hình 9: Cửa số cài đặt Winpcap
Nhấn “Next” để tiếp tục.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
Hình 10: Thông tin bản quyền của Winpcap
Nhấn “I Agree” để tiếp tục.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
Hình 11: Chúc mừng! Bạn đã cài đặt xong Winpcap
Nhấn “Finish” để hoàn thành cài đặt Winpcap và tiếp tục cài đặt Wireshark.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
Hình 12: Tiếp tục tiến trình cài đặt Wireshark
Nhấn “Next” để tiếp tục.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
Hình 12: Hoàn thành việc cài đặt Wireshark trên Windows
4. Giao diện và một số hướng dẫn sử dụng.
Khởi động Wireshark trên windows đơn giản bằng cách nhấn kép vào
shortcut trên menu Start. Điều này sẽ giúp mở ra màn hình chính của Wireshark.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
Hình 13: Giao diện của Wireshark
Giao diện của Wireshark rất đơn giản.
1. Title bar: Thanh này sẽ chứa những thông tin khác nhau phụ thuộc vào
những gì Wireshark đang làm. Nếu nó đang bắt dữ liệu mạng, nó sẽ hiểu thị giao
điện đang sử dụng. Nếu nó đang hiển thị dữ liệu từ lần bắt dữ liệu trước đó, tên của
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
file chứa trong dữ liệu bắt được đó sẽ được hiển thị (untitled sẽ được hiển thị nếu
lần bắt đó được trình diễn, dừng lại và không được lưu lại). Ngược lại nó sẽ hiển
thị tên của ứng dụng: Wireshark network Protocol Analyzer.
2. Menu bar: Thanh này cung cấp khả năng truy cập đến các tính năng của
ứng dụng.
a. File - Chức năng làm với việc với dữ liệu bắt được như lưu lại và export
đến các định dạng file khác nhau.
b. Edit - Chức năng tìm kiểm packets, thiết đặt thay đổi thời gian và tham
khảo các thiết đặt.
c. View - Chức năng thay đổi cách hiển thị thông tin của Wireshark.
d. Go - Chức năng tìm vị trí của một packet chỉ rõ.
e. Capture - Chức năng bắt đầu và dừng lại các lần bắt, lưu lại các filter và
làm việc với các giao diện mạng.
f. Analyze - Chức năng giải thích và lọc dữ liệu bắt được.
g. Statistics - Chức năng thống kê phân tích dữ liệu bắt được.
h. Help - Chức năng trợ giúp.
3. Main tool bar: Lối tắt để sử dụng các chức năng thường dùng trong thanh
menu.
4. Filter tool bar: Truy cập nhanh đến chức năng filter.
5. Packet list pane: Hiển thị tất cả các packet trong file bắt hiện tại.
6. Packet details pane: Chỉ rõ các chi tiết của packet được chọn hiện tại trong
khung Packet List.
7. Packet bytes pane: Chế độ xem hexdum của packet hiện tại trong Packet
List.
8. Status bar: Cung cấp các thông điệp và thông tin phản hồi đến người dùng.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
5. Các lệnh kiểm tra mạng và phần mềm WireShark.
2.1. Lệnh Ping.
Ping (Packet Internet Grouper) là lệnh kiểm tra cấp độ kết nối với máy tính
khác bằng cách gửi các gói tin ICMP (Echo request) và nhận lại các gói tin hồi đáp
tương ứng. Ping là 1 lệnh căn bản của TCP/IP sử dụng để dò lỗi kết nối, tính với
tới, sự phân giải tên miền.
Ping là một trong số những lệnh thường được sử dụng và biết đến. Ping cho
phép người sử dụng ping đến một địa chỉ IP mạng khác.
Cú pháp lệnh Ping:
Ping ip/host [-t] [-a] [-n Count] [-l Size] [-f] [-i TTL] [-v TOS] [-r Count] [-sCount]
[{-jHostLisct | -k HostList}] [-w Timeout] [TargetName]
Trong đó:
o
ip: Địa chỉ IP của máy cần kiểm tra; host là tên của máy tính cần kiểm
tra. Người ta có thể sử dụng địa chỉ IP hoặc tên của máy tính.
o
Tham số -t: Liên tục gửi Echo Request Messages cho đến khi ngừng
kết nối. Để gián đoạn và trình bày thống kê, nhấn CTRL- Break. Để kết
thúc ping, nhấn CTRL-C.
o
Tham số -a: Nếu Ping đến một địa chỉ IP thành công Ping sẽ trả lại host
name tương ứng.
o
Tham số -n Count: Chỉ định số Echo Request Messages được gửi.
o
Tham số -l Size: Chỉ định độ dài của trường Data trong Echo Request
Messages được gửi. Mặc định là 32 byte , tối đa là 65527.
o
Tham số -f : chỉ định Echo Request Messages gửi sẽ không có cờ hiệu
phân mảnh trong IP header. Echo Request Messages sẽ không được
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
phân mảnh bởi cả router trên đường dẫn đến đích.Tham số này hữu ích
cho việc kiểm tra các vấn đề về đơn vị truyền đạt tham số.Hình dưới
minh họa sự khác biệt khi có hay không có tham số f trong lệnh ping
với lần lượt 2 gói tin có kích cỡ lớn và bé.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
Mô phỏng lệnh Ping trên phần mềm Wireshark (Ethereal).
o
-i TTL : Giá trị của trường TTL trong IP header của Echo Request
Messages gửi.Mỗi host có 1 giá trị TTL mặc định riêng, đối với WinXP
là 128byte còn linux là 64byte, giá trị tối đa là 255.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
Trên đây là minh họa ping đến kma vơi TTL lần lượt là 128 (mặc đinh của
Win) và 100. Ở đây dùng ethereal để thấy rõ sự khác biệt. 80 ở hệ 16 đổi ra hệ 10
là 128 tương tự 64 hệ 16 đổi ra hệ 10 là 100.
Hoàng Lệ Chi_Lớp TK6LC1
Tìm hiểu về Wireshark
o
-v TOS: Chỉ định giá trị kiểu của trường dịch vụ TOS(Type Of Service)
trong IP Header của Echo Request messages gửi.TOS nằm từ bit thứ 4
->7 trong byte thứ 2 của IP Header. Mặc định là 0. TOS nhận giá trị số
thập phân từ 0 đến 255.
o
-r Count: Chỉ ra số các R để lại vết trên Record Route Option trong
IP Header .Mọi hop trên đường đi đều để lại một vết trên Record
Route.Nếu ping thành công thì Count sẽ lớn hơn hoặc bằng số hop giữa
nguồn và đích. Count có thể nhận giá trị từ 1->9.
Hoàng Lệ Chi_Lớp TK6LC1