TÌM HIỂU PHẦN MỀM WIRESHARK
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
KHOA CÔNG NGHỆ THÔNG TIN
Trang 2Tì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
Trang 3Tì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
Trang 4Tì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
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
Trang 5Tì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
Trang 6Tì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
Trang 7Tì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 9Tìm hiểu về Wireshark
Hình 2: Thông tin bản quyền.
Nhấn “I Agree” để tiếp tục.
Trang 10Tì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
Trang 12Tì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
Trang 13Tì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
Trang 14Tì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
Trang 15Tì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
Trang 16Tì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
Trang 17Tì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
Trang 18Tì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
Trang 19Tì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
Trang 20Tì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
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
Trang 21Ping 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]
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
Trang 22Tì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
Trang 23Tìm hiểu về Wireshark
Mô phỏng lệnh Ping trên phần mềm Wireshark (Ethereal)
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
Trang 25Tìm hiểu về Wireshark
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
Trang 26Tìm hiểu về Wireshark
dụng để ghi thời gian đến của gói tin Echo Request messages và Echo Reply message tương ứng khi qua mỗi hop Count mang giá trị từ 1-> 4
Hoàng Lệ Chi_Lớp TK6LC1
Trang 27Tìm hiểu về Wireshark
2.2 Lệnh.
Lệnh
định tuyến này các đích trung gian có thể cách nhau qua 1 hay nhiều router Số lớn nhất của các địa chỉ hay tên trong hostlist là 9 hostlist là
1 loạt 1 series các địa chỉ ip ngăn cách bởi dấu cách
phải với tới trực tiếp nhau
Reply message tương ứng với mỗi Echo Request message Nếu Echo Reply message không nhận được thì sẽ thông báo lỗi “Request timed out ” trên dislay Timeout được mặc định là 4000 (4s)
Trang 28Tìm hiểu về Wireshark
II Xử lý các tình huống trên wireshark
1 Một số tình huống cơ bản
1.1.A Lost TCP Connection (mất kết nối TCP)
Một trong các vấn đề phổ biến nhất là mất kết nối mạng.Chúng ta sẽ bỏ qua nguyên nhân tại sao kêt nối bị mất, chúng ta sẽ nhìn hiện tượng đó ở mức gói tin
Ví dụ:
Một ví truyền file bị mất kết nối:
Bắt đầu bằng việc gửi 4 gói TCP ACK từ 10.3.71.7 đến 10.3.30.1
Hình 3.1-1: This capture begins simply enough with a few ACK packets
Lỗi bắt đầu từ gói thứ 5, chúng ta nhìn thấy xuất hiện việc gửi lại gói của TCP
Hình 3.1-2: These TCP retransmissions are a sign of a weak or dropped connection
Theo thiết kế, TCP sẽ gửi một gói tin đến đích, nếu không nhận được trả lời sau một khoảng thời gian nó sẽ gửi lại gói tin ban đầu Nếu vẫn tiếp tục không nhận được phản hồi, máy nguồn sẽ tăng gấp đôi thời gian đợi cho lần gửi lại tiếp theo
Hoàng Lệ Chi_Lớp TK6LC1
Trang 29Tìm hiểu về Wireshark
Như ta thấy ở hình trên, TCP sẽ gửi lại 5 lần, nếu 5 lần liên tiếp không nhận được phản hồi thì kết nối được coi là kết thúc
Hiện tượng này ta có thể thấy trong Wireshark như sau:
Hình 3.1-4: Windows will retransmit up to five times by default
Khả năng xác định gói tin bị lỗi đôi khi sẽ giúp chúng ta có thể phát hiện ra mấu trốt mạng bị mất là do đâu
Trang 30Hình 3.1-5: A standard ping request from 10.2.10.2 to 10.4.88.88
Hình dưới đây cho thấy thông báo không thể ping tới 10.4.88.88 từ máy 10.2.99.99
Như vậy so với ping thông thường thì ta có thể thấy kết nối bị đứt từ 10.2.99.99 Ngoài ra còn có các mã lỗi của ICMP, ví dụ : code 1 (Host unreachable)
Hoàng Lệ Chi_Lớp TK6LC1
Trang 31Tìm hiểu về Wireshark
Hình 3.1-6: This ICMP type 3 packet is not what we expected
1.3.Unreachable Port (không thể kết nối tới cổng)
Một trong các nhiệm vụ thông thường khác là kiểm tra kết nối tới một cổng trên một máy đích Việc kiểm tra này sẽ cho thấy cổng cần kiểm tra có mở hay không,
có sẵn sang nhận các yêu cầu gửi đến hay không
Ví dụ, để kiểm tra dịch vụ FTP có chạy trên một server hay không, mặc định FTP
sẽ làm việc qua cổng 21 ở chế độ thông thường Ta sẽ gửi gói tin ICMP đến cổng
21 của máy đích, nếu máy đích trả lời lại gói ICMP loại o và mã lỗi 2 thì có nghĩa
là không thể kết nối tới cổng đó.s
1.4.Fragmented Packets