Tải bản đầy đủ (.docx) (39 trang)

Giao thức, tính năng và sử dụng WireShark

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.26 MB, 39 trang )


MỤC LỤC


DANH MỤC HÌNH VẼ


Chương 1
GIỚI THIỆU CHUNG
1.1. Giám sát an ninh mạng (Network Security Mornitoring - NSM)
Giám sát an ninh mạng là việc thu thập các thông tin trên các thành phần
của hệ thống, phân tích các thông tin, dấu hiệu nhằm đánh giá và đưa ra các
cảnh báo cho người quản trị hệ thống.
Đối tượng của giám sát an ninh mạng là tất cả các thành phần, thiết bị trong
hệ thống mạng:
- Các máy trạm
- Cơ sở dữ liệu
- Các ứng dụng
- Các server
- Các thiết bị mạng
1.2. Tổng quan về wireshark
Wireshark là một công cụ phân tích gói dữ liệu mạng. Công cụ phân tích
gói dữ liệu mạng sẽ cố gắng nắm bắt các gói tin mạng và cố gắng để hiển thị dữ
liệu gói tin càng chi tiết càng tốt.
Ta có thể nghĩ một công cụ phân tích gói dữ liệu mạng như một thiết bị đo
sử dụng để kiểm tra những gì đang xảy ra bên trong một cáp mạng, giống như
một vôn kế được sử dụng bởi một thợ điện để kiểm tra những gì đang xảy ra bên
trong một dây cáp điện (nhưng ở một mức độ cao hơn).
Trong quá khứ, các công cụ như vậy hoặc là rất tốn kém, độc quyền, hoặc
cả hai. Tuy nhiên, với sự ra đời của Wireshark, tất cả đã thay đổi.
Wireshark có lẽ là một trong những phân tích gói dữ liệu mã nguồn mở tốt


nhất hiện nay.
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.

4


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.
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 lẫn nghiệp
dư và nó đưa ra nhiều tính năng để thu hút mỗi đối tượng khác nhau.
Dưới đây là một số mục đích cho người sử dụng Wireshark:
- Người quản trị mạng sử dụng nó để khắc phục sự cố các vấn đề mạng
- Kỹ sư an ninh mạng sử dụng nó để kiểm tra vấn đề an ninh
- Các nhà phát triển sử dụng nó để gỡ lỗi thực thi giao thức
- Số người sử dụng nó để học hỏi giao thức mạng internals
Bên cạnh những ví dụ Wireshark có thể hữu ích trong nhiều tình huống
khác nữa.
Một số tính năng Wireshark cung cấp:
- Có sẵn cho Unix và của Windows.
- Chụp dữ liệu gói trực tiếp từ giao diện mạng.
- Mở tập tin chứa dữ liệu gói chụp bằng tcpdump / WinDump, Wireshark,

và một số chương trình bắt gói dữ liệu khác.
- Nhập gói dữ liệu từ tập tin văn bản có chứa các bãi hex của dữ liệu gói.
- Các gói dữ liệu hiển thị với giao thức thông tin rất chi tiết.
- Lưu dữ liệu gói chụp.
- Trích xuất một số hoặc tất cả các gói trong một số định dạng file chụp.
- Gói bộ lọc trên nhiều tiêu chí.
- Tìm kiếm cho các gói tin trên nhiều tiêu chí.
- Colorize hiển thị gói dựa trên bộ lọc.
- Tạo hình thống kê.

5


Hình 1.1 Giao diện công cụ WireShark

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 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.
6


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

7


Chương 2
CÁC GIAO THỨC VÀ TÍNH NĂNG CỦA WIRESHARK
2.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ợ.
Dưới đây sẽ trình bày về một số giao thức thường được sử dụng trong

WireShark.
2.1.1. Giao thức UDP
UDP (User Datagram Protocol) là một trong những giao thức cốt lõi của
giao thức TCP/IP. Dùng UDP, chương trình trên mạng máy tính có thể gửi
những dữ liệu ngắn được gọi là datagram tới máy khác. UDP không cung cấp sự
tin cậy và thứ tự truyền nhận mà TCP làm; các gói dữ liệu có thể đến không
đúng thứ tự hoặc bị mất mà không có thông báo. Tuy nhiên UDP nhanh và hiệu
quả hơn đối với các mục tiêu như kích thước nhỏ và yêu cầu khắt khe về thời
gian. Do bản chất không trạng thái của nó nên nó hữu dụng đối với việc trả lời
các truy vấn nhỏ với số lượng lớn người yêu cầu.
Những ứng dụng phổ biến sử dụng UDP như: DNS (Domain Name
System), ứng dụng streaming media, Voice over IP, Trivial File Transfer
Protocol (TFTP), và game trực tuyến.
UDP là giao thức hướng thông điệp nhỏ nhất của tầng giao vận hiện được
mô tả trong RFC 768 của IETF.
Trong bộ giao thức TCP/IP, UDP cung cấp một giao diện rất đơn giản giữa
tầng mạng bên dưới (thí dụ, IPv4) và tầng phiên làm việc hoặc tầng ứng dụng
phía trên.
UDP không đảm bảo cho các tầng phía trên thông điệp đã được gửi đi và
người gửi cũng không có trạng thái thông điệp UDP một khi đã được gửi (Vì lý
do này đôi khi UDP còn được gọi là Unreliable Datagram Protocol).
UDP chỉ thêm các thông tin multiplexing và giao dịch. Các loại thông tin
tin cậy cho việc truyền dữ liệu nếu cần phải được xây dựng ở các tầng cao hơn.
+

Bits 0 - 15

16 - 31

0


Source Port

Destination Port

32

Length

Checksum
8


64

Data
Hình 2.2 Phần header của UDP

Phần header của UDP chỉ chứa 4 trường dữ liệu, trong đó có 2 trường là
tùy chọn (ô nền đỏ trong bảng).
- Source port: Trường này xác định cổng của người gửi thông tin và có ý
nghĩa nếu muốn nhận thông tin phản hồi từ người nhận. Nếu không dùng đến thì
đặt nó bằng 0.
- Destination port: Trường xác định cổng nhận thông tin, và trường này là
cần thiết.
- Length: Trường có độ dài 16 bit xác định chiều dài của toàn bộ datagram:
phần header và dữ liệu. Chiều dài tối thiểu là 8 byte khi gói tin không có dữ liệu,
chỉ có header.
- Checksum: Trường checksum 16 bit dùng cho việc kiểm tra lỗi của phần
header và dữ liệu. Phương pháp tính checksum được định nghĩa trong RFC 768.

Do thiếu tính tin cậy, các ứng dụng UDP nói chung phải chấp nhận mất
mát, lỗi hoặc trùng dữ liệu. Một số ứng dụng như TFTP có nhu cầu phải thêm
những kỹ thuật làm tin cậy cơ bản vào tầng ứng dụng. Hầu hết các ứng dụng
UDP không cần những kỹ thuật làm tin cậy này và đôi khi nó bị bỏ đi.
Streaming media, game trực tuyến và voice over IP(VoIP) là những thí dụ cho
các ứng dụng thường dùng UDP. Nếu một ứng dụng đòi hỏi mức độ cao hơn về
tính tin cậy, những giao thức như TCP hoặc mã erasure có thể dùng thay.
Thiếu những cơ chế kiểm soát tắc nghẽn và kiểm soát luồng, các kỹ thuật
dựa trên mạng là cần thiết để giảm nguy hiệu ứng cơ tắc nghẽn dây chuyền do
không kiểm soát, tỷ lệ tải UDP cao. Nói cách khác, vì người gởi gói UDP không
thể phát hiện tắc nghẽn, các thành phần dựa trên mạng như router dùng hàng đợi
gói (packet queueing) hoặc kỹ thuật bỏ gói như là những công cụ để giảm tải
của UDP. Giao thức Datagram Congestion Control Protocol (DCCP) được thiết
kế như một giải pháp cho vấn đề bằng cách thêm hành vi kiểm soát tắc nghẽn
cho thiết bị đầu cuối cho các dòng dữ liệu UDP như streaming media.
Mặc dù tổng lượng lưu thông của UDP trên mạng thường chỉ vài phần
trăm, nhưng có nhiều ứng dụng quan trọng dùng UDP, bao gồm DNS, SNMP,
DHCP và RIP.
2.1.2. Giao thức TCP
TCP (Transmission Control Protocol - "Giao thức điều khiển truyền vận")
là một trong các giao thức cốt lõi của bộ giao thức TCP/IP. Sử dụng TCP, các
9


ứng dụng trên các máy chủ được nối mạng có thể tạo các "kết nối" với nhau, mà
qua đó chúng có thể trao đổi dữ liệu hoặc các gói tin. Giao thức này đảm bảo
chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự. TCP còn
phân biệt giữa dữ liệu của nhiều ứng dụng (chẳng hạn, dịch vụ Web và dịch vụ
thư điện tử) đồng thời chạy trên cùng một máy chủ.
TCP hỗ trợ nhiều giao thức ứng dụng phổ biến nhất trên Internet và các ứng

dụng kết quả, trong đó có WWW, thư điện tử và Secure Shell.
Trong bộ giao thức TCP/IP, TCP là tầng trung gian giữa giao thức IP bên
dưới và một ứng dụng bên trên. Các ứng dụng thường cần các kết nối đáng tin
cậy kiểu đường ống để liên lạc với nhau, trong khi đó, giao thức IP không cung
cấp những dòng kiểu đó, mà chỉ cung cấp dịch vụ chuyển gói tin không đáng tin
cậy. TCP làm nhiệm vụ của tầng giao vận trong mô hình OSI đơn giản của các
mạng máy tính.
Các ứng dụng gửi các dòng gồm các byte 8-bit tới TCP để chuyển qua
mạng. TCP phân chia dòng byte này thành các đoạn(segment) có kích thước
thích hợp (thường được quyết định dựa theo kích thước của đơn vị truyền dẫn
tối đa (MTU) của tầng liên kết dữ liệu của mạng mà máy tính đang nằm trong
đó). Sau đó, TCP chuyển các gói tin thu được tới giao thức IP để gửi nó qua một
liên mạng tới mô đun TCP tại máy tính đích. TCP kiểm tra để đảm bảo không có
gói tin nào bị thất lạc bằng cách gán cho mỗi gói tin một "số thứ tự" (sequence
number). Số thứ tự này còn được sử dụng để đảm bảo dữ liệu được trao cho ứng
dụng đích theo đúng thứ tự. Mô đun TCP tại đầu kia gửi lại "tin báo nhận"
(acknowledgement) cho các gói tin đã nhận được thành công, một "đồng hồ"
(timer) tại nơi gửi sẽ báo time-out nếu không nhận được tin báo nhận trong
khoảng thời gian bằng một round-trip time (RTT), và dữ liệu (được coi là bị thất
lạc) sẽ được gửi lại. TCP sử dụng checksum (giá trị kiểm tra) để xem có byte
nào bị hỏng trong quá trình truyền hay không; giá trị này được tính toán cho mỗi
khối dữ liệu tại nơi gửi trước khi nó được gửi, và được kiểm tra tại nơi nhận.
Không như giao thức UDP - giao thức có thể lập tức gửi gói tin mà không
cần thiết lập kết nối, TCP đòi hỏi thiết lập kết nối trước khi bắt đầu gửi dữ liệu
và kết thúc kết nối khi việc gửi dữ liệu hoàn tất. Cụ thể, các kết nối TCP có ba
pha:
- Thiết lập kết nối
- Truyền dữ liệu
- Kết thúc kết nối
Trước khi miêu tả các pha này, ta cần lưu ý các trạng thái khác nhau của

một socket:

10


- LISTEN: Đang đợi yêu cầu kết nối từ một TCP và cổng bất kỳ ở xa (trạng
thái này thường do các TCP server đặt)
- SYN-SENT: Đang đợi TCP ở xa gửi một gói tin TCP với các cờ SYN và
ACK được bật (trạng thái này thường do các TCP client đặt)
- SYN-RECEIVED: Đang đợi TCP ở xa gửi lại một tin báo nhận sau khi đã
gửi cho TCP ở xa đó một tin báo nhận kết nối (connection acknowledgment)
(thường do TCP server đặt)
- ESTABLISHED: Cổng đã sẵn sàng nhận/gửi dữ liệu với TCP ở xa (đặt
bởi TCP client và server)
- TIME-WAIT: Đang đợi qua đủ thời gian để chắc chắn là TCP ở xa đã
nhận được tin báo nhận về yêu cầu kết thúc kết nối của nó. Theo RFC 793, một
kết nối có thể ở tại trạng thái TIME-WAIT trong vòng tối đa 4 phút.
Để thiết lập một kết nối, TCP sử dụng một quy trình bắt tay 3 bước (3-way
handshake). Trước khi client thử kết nối với một server, server phải đăng ký một
cổng và mở cổng đó cho các kết nối: đây được gọi là mở bị động. Một khi mở bị
động đã được thiết lập thì một client có thể bắt đầu mở chủ động. Để thiết lập
một kết nối, quy trình bắt tay 3 bước xảy ra như sau:
- Client yêu cầu mở cổng dịch vụ bằng cách gửi gói tin SYN (gói tin TCP)
tới server, trong gói tin này, tham số sequence number được gán cho một giá trị
ngẫu nhiên X.
- Server hồi đáp bằng cách gửi lại phía client bản tin SYN-ACK, trong gói
tin này, tham số acknowledgment number được gán giá trị bằng X + 1, tham số
sequence number được gán ngẫu nhiên một giá trị Y
- Để hoàn tất quá trình bắt tay ba bước, client tiếp tục gửi tới server bản tin
ACK, trong bản tin này, tham số sequence number được gán cho giá trị bằng X

+ 1 còn tham số acknowledgment number được gán giá trị bằng Y + 1
Tại thời điểm này, cả client và server đều được xác nhận rằng, một kết nối
đã được thiết lập.
2.1.3. Địa chỉ IP
IP (IP là viết tắt của từ tiếng Anh: Internet Protocol - giao thức Internet) là
một địa chỉ đơn nhất mà những thiết bị điện tử hiện nay đang sử dụng để nhận
diện và liên lạc với nhau trên mạng máy tính bằng cách sử dụng giao thức
Internet.
Mỗi địa chỉ IP là duy nhất trong cùng một cấp mạng.
Một cách đơn giản hơn: IP là một địa chỉ của một máy tính khi tham gia
vào mạng nhằm giúp cho các máy tính có thể chuyển thông tin cho nhau một
11


cách chính xác, tránh thất lạc. Có thể coi địa chỉ IP trong mạng máy tính giống
như địa chỉ nhà của ta để nhân viên bưu điện có thể đưa thư đúng cho ta chứ
không phải một người nào khác.
Bất kỳ thiết bị mạng nào - bao gồm bộ định tuyến, bộ chuyển mạch mạng,
máy vi tính, máy chủ hạ tầng (như NTP, DNS, DHCP, SNMP, v.v.), máy in,
máy fax qua Internet, và vài loại điện thoại—tham gia vào mạng đều có địa chỉ
riêng, và địa chỉ này là đơn nhất trong phạm vi của một mạng cụ thể. Vài địa chỉ
IP có giá trị đơn nhất trong phạm vi Internet toàn cầu, trong khi một số khác chỉ
cần phải đơn nhất trong phạm vi một công ty.
Địa chỉ IP hoạt động như một bộ định vị để một thiết bị IP tìm thấy và giao
tiếp với nhau. Tuy nhiên, mục đích của nó không phải dùng làm bộ định danh
luôn luôn xác định duy nhất một thiết bị cụ thể. Trong thực tế hiện nay, một địa
chỉ IP hầu như không làm bộ định danh, do những công nghệ như gán địa chỉ
động và biên dịch địa chỉ mạng.
Địa chỉ IP do Tổ chức cấp phát số hiệu Internet (IANA) quản lý và tạo ra.
IANA nói chung phân chia những "siêu khối" đến Cơ quan Internet khu vực, rồi

từ đó lại phân chia thành những khối nhỏ hơn đến nhà cung cấp dịch vụ Internet
và công ty.
IPv4:
Địa chỉ IP theo phiên bản IPv4 sử dụng 32 bit để mã hoá dữ liệu. Địa chỉ IP
(IPv4) có dạng như sau:
EFG.HIJ.KMN.OPQ (ví dụ một địa chỉ IP: 198.35.26.96)
Trong đó mỗi ký tự trên đại diện cho một con số do người sử dụng máy
tính, modem hoặc một máy chủ có dịch vụ DHCP (Dynamic Host Configuration
Protocol) gán cho chúng.
IPv6:
Địa chỉ IP theo phiên bản IPv6 sử dụng 128 bit để mã hoá dữ liệu, nó cho
phép sử dụng nhiều địa chỉ hơn so với IPv4.Ước tính địa chỉ IP phiên bản IPv6
cho phép cung cấp (4*10^4)^4 (4 tỉ mũ 5) địa chỉ IP cùng lúc.
Địa chỉ IP phiên bản IPv6 đang dần được đưa vào áp dụng bởi nguồn tài
nguyên IPv4 đang cạn kiệt do sự phát triển rất nhanh của công nghệ thông tin.
Tuy nhiên vì lý do tương thích với thiết bị cũ, nên khó có thể thay thế hết cho
IPv4,các tổ chức đã đề xuất lộ trình chuyển đổi IPv4 sang IPv6 bắt đầu từ năm
2019 đến năm 2033.
2.1.4. Giao thức ICMP
Internet Control Message Protocol (viết tắt là ICMP), là một giao thức của
gói Internet Protocol. Giao thức này được các thiết bị mạng như router dùng để
12


gửi đi các thông báo lỗi chỉ ra một dịch vụ có tồn tại hay không, hoặc một địa
chỉ host hay router có tồn tại hay không. ICMP cũng có thể được sử dụng để
chuyển tiếp các thông điệp truy vấn.[1] Giao thức này được đánh số 1. [2] ICMP
[3]
khác với các giao thức vận chuyển như TCP và UDP ở chỗ nó không thường
được sử dụng để trao đổi dữ liệu giữa các hệ thống, cũng không thường xuyên

được sử dụng bởi các ứng dụng mạng của người dùng cuối (với ngoại lệ của một
số công cụ chẩn đoán như ping và traceroute).
Các Internet Control Message Protocol là một phần của Internet Protocol
Suite, như được định nghĩa trong RFC 792. Điệp ICMP thường được sử dụng
cho mục đích chẩn đoán hoặc điều khiển hoặc được tạo ra để đáp ứng với các lỗi
trong IP hoạt động (như quy định trong RFC 1122 ). Lỗi ICMP đang hướng đến
các địa chỉ IP nguồn của gói tin nguồn gốc.
Ví dụ, mỗi thiết bị (như một trung gian bộ định tuyến ) chuyển tiếp một IP
datagram đầu tiên decrements thời gian để sống trường (TTL) trong tiêu đề IP
một. Nếu TTL kết quả là 0, gói tin bị loại bỏ và một ICMP Time To Sống vượt
quá cảnh nhắn được gửi đến địa chỉ nguồn của gói tin.
Mặc dù thông điệp ICMP được chứa trong các gói tin IP chuẩn, các thông
điệp ICMP thường được xử lý như là một trường hợp đặc biệt, phân biệt với chế
biến IP bình thường, hơn là xử lý như là một sub-giao thức bình thường của IP.
Trong nhiều trường hợp, nó là cần thiết để kiểm tra các nội dung của thông điệp
ICMP và cung cấp những thông báo lỗi thích hợp cho các ứng dụng chịu trách
nhiệm cho việc truyền các gói tin IP mà nhắc việc gửi thông điệp ICMP.
Nhiều tiện ích mạng thường được sử dụng dựa trên các thông điệp ICMP.
Các traceroute lệnh có thể được thực hiện bằng cách truyền các datagram IP với
đặc biệt thiết header IP TTL, và tìm kiếm ICMP Thời gian để sống vượt quá
cảnh (trên) và "Destination unreachable" thông điệp được tạo ra trong phản ứng.
Các liên quan ping tiện ích được thực hiện bằng cách sử dụng "yêu cầu Echo"
ICMP và "Echo reply" tin nhắn.
2.2. Tính năng của WireShark
2.2.1. Tính năng cơ bản
WireShark có các tính năng cơ bản sau:
- 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.

13


- Miến phí: Wireshark là một sản phẩm miễn phí GPL. Ta 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.2.2. Một số tính năng nâng cao của Wireshark
Ngoài các tính năng cơ bản thì WireShark có các tính năng nâng cao sau:
2.2.2.1. 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ỉ 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 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.

2.2.2.2. 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. Ta 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ể.

14


2.2.2.3. 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 ta phối hợp tất
cả các thông tin liên quan đến các gói tin và chỉ cho ta 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. Ta 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).
Để sử dụng tính năng này, ta click chuột phải vào 1 gói packet, chọn
Follow TCP Stream:

Hình 2.3 Cửa sổ Following TCP Streams


2.2.2.4. 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 ta. Ví dụ, nếu ta biết
rằng 10% lưu lượng mạng của mình được sử dụng bởi các lưu lượng ARP, và
một ngày nào đó, ta thấy lưu lượng ARP lên tới 50%, ta hoàn toàn có thể hiểu
rằng đang có một cái gì đó không ổn xảy ra.
Để sử dụng tính năng này, ta chọn menu Statistics > Protocol Hierarchy:

15


Hình 2.4 Cửa sổ thống kê phân cấp giao thức

2.2.2.5. 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.

Hình 2.5 Ví dụ về thiết bị đầu cuối trong mạng

Khi thực hiện phân tích gói tin, ta có thể nhận ra rằng ta đã 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.
16


Để sử dụng tính năng này, ta chọn menu Statistics > Endpoint List và chọn
một giao thức để hiển thị.

Hình 2.6 Cửa sổ xem các Endpoints

2.2.2.6. 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 ta vẽ đồ thị lưu lượng dữ liệu trên
mạng. Ta 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à ta đang quan tâm. Ta
có thể vẽ đồng thời 5 đường trên cùng một đồ thị cho từng giao thức mà ta quan
tâm bằng các màu khác nhau. Điều này giúp ta dễ dàng hơn để thấy sự khác
nhau của các đồ thị.
Để sử dụng tính năng này, ta chọn menu Statistics > IO Graph.

17


Hình 2.7 Cửa số đồ thị IO

18


Chương 3
CÀI ĐẶT VÀ SỬ DỤNG WIRESHARK
3.1. Cài đặt WireShark

Ta có thể tải phần mềm tại địa chỉ: www.wireshark.org\download.html.
Sau khi tải về bạn kích đôi vào biểu tượng WireShark để tiến hành cài đặt
chương trình
Cửa sổ chào mừng tới chương trình xuất hiện. Bấm Next để tiếp tục

Hình 3.8 Hướng dẫn cài đặt 1

Đọc trước thông tin bản quyền trước khi cài đặt. Kích I Agree để tiếp tục

19


Hình 3.9 Hướng dẫn cài đặt 2

Chọn loại cài đặt. Khuyến cáo nên để mặc định. Kích Next để tiếp tục.

Hình 3.10 Hướng dẫn cài đặt 3

Để mặc định rồi kích Next để tiếp tục.

20


Hình 3.11 Hướng dẫn cài đặt 4

Chon đường dẫn cài đặt. Ở đây mình lưu ở ổ D. Kích Next để tiếp tục:

Hình 3.12 Hướng dẫn cài đặt 5

Có thê đánh dấu tick vào ô Install WinPcap 4.0.2 để cài đặt WinPcap – một

công cụ hỗ trợ cho WiresShark. Kích Install để cài đặt

21


Hình 3.13 Hướng dẫn cài đặt 6

Quá trình cài đặt diễn ra

Hình 3.14 Hướng dẫn cài đặt 7

Chương trình sẽ tự động bật cửa sổ yêu cầu cài đặt WinPcap. Kích next để
tiếp tục.
Hộp thoại chào mừng tới chương trình. Kích Next để tiếp tục.
22


Hình 3.15 Hướng dẫn cài đặt 8

Điều khoản người dùng phần mềm. Kích I agree để chấp nhận điều khoản.

Hình 3.16 Hướng dẫn cài đặt 9

Quá trình cài đặt WinPcap diễn ra.

23


Hình 3.17 Hướng dẫn cài đặt 10


Quá trình cài đặt WinPcap hoàn thành. Kích finish.
Quá trình cài đặt WireShark cũng hoàn thành. Kich Next để tiếp tục.
Kích Finish để quá trình cài đặt hoàn thành và sử dụng chương trình.

24


Hình 3.18 Hướng dẫn cài đặt 11

3.2. Sử dụng WireShark
3.2.1. Một thử ngiệm với Wireshark
Cách tốt nhất để tìm hiểu về bất kỳ phần mềm nào là thử nó! Giả định rằng
máy tính được kết nối với Internet thông qua một phương thức Ethernet có dây.
Khởi động trình duyệt web yêu thích của ta, mà sẽ hiển thị trang web lựa
chọn của ta.
Khởi động phần mềm Wireshark.
Để bắt đầu bắt gói tin, click chọn Capture.

Hình 3.19 Giao diện bắt gói tin

Để lựa chọn các tùy chỉnh khác nhau, ta cần click vào Options. Và đây là
cửa sổ hiển thị tùy chỉnh:

25


×