Tải bản đầy đủ (.pdf) (41 trang)

Hướng dẫn sử dụng phần mềm 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.31 MB, 41 trang )

ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
1
PHÂN TÍCH GÓI TIN VỚI WIRESHARK
MỤC LỤC
Giới thiệu
1.Thế nào là phân tích gói tin?
2.Các bước để nghe gói tin
I. Các cách thức nghe gói tin trên mạng
1.Living Promiscuously (chế độ bắt tất cả các gói tin đi qua)
2.“Nghe” trong mạng có Hub
3.“Nghe” trong mạng Switched
- Port Mirroring
- Hubbing Out
- ARP Cache Poisoning
4.Nghe trong mạng sử dụng Router
Network Maps
II. Giới thiệu WireShark
Một số tính năng nâng cao của Wireshark
1.Name Resolution
2.Protocol Dissection
3.Following TCP Streams
4.Cửa sổ thống kê phân cấp giao thức
5.Xem các Endpoints
6.Cửa số đồ thị IO
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;


2
Giới thiệu
Hàng ngày, có hàng triệu vấn đề lỗi trong một mạng máy tính, từ việc đơn giản là nhiễm Spyware
cho đến việc phức tạp như lỗi cấu hình router, và các vấn đề này không thể được xử lý tất cả lập tức.
Tốt nhất là chúng ta có thể hi vọng thực hiện công việc đó bằng cách chuẩn bị đầy đủ các kiến thức
và các công cụ tương ứng với các vấn đề. Tất cả các vấn đề trên mạng đều xuất phát ở mức gói, nơi
mà không có gì được che dấu đối với chúng ta, nơi mà không có thứ gì bị ẩn đi bởi các cấu trúc
menu, các hình ảnh bắt mắt hoặc là các nhân viên không đáng tin cậy. Không có gì bí mật ở đây, và
chúng ta có thể điều khiển được mạng và giải quyết các vấn đề. Đây chính là thế giới của phân tích
gói tin.
1. Thế nào là phân tích gói tin?
Phân tích gói tin, thông thường được quy vào việc nghe các gói tin và phân tích giao thức, mô tả quá
trình bắt và phiên dịch các dữ liệu sống như là các luồng đang lưu chuyển trong mạng với mục tiêu
hiểu rõ hơn điều gì đang diễn ra trên mạng. Phân tích gói tin thường được thực hiện bởi một packet
sniffer, một công cụ được sử dụng để bắt dữ liệu thô trên đang lưu chuyển trên đường dây. Phân tích
gói tin có thể giúp chung ta hiểu cấu tạo mạng, ai đang ở trên mạng, xác định ai hoặc cái gì đang sử
dụng băng thông, chỉ ra những thời điểm mà việc sử dụng mạng đạt cao điểm, chỉ ra các khả năng
tấn công và các hành vi phá hoại, và tìm ra các ứng dụng không được bảo mật.
Có một vài kiểu chương trình nghe gói tin, bao gồm cả miễn phí và sản phẩm thương mại. Mỗi
chương trình được thiết kế với các mục tiêu khác nhau. Một vài chương trình nghe gói tin phổ biến
như là tcpdump (a command-line program), OmniPeek, và Wireshark (cả hai đều là chương trình có
giao diện đồ hoạ). Khi lựa chọn chương trình nghe gói tin, ta cần phải quan tâm đến một số vấn đề:
các giao thức mà chương trình cần hỗ trợ, tính dễ sử dụng, chi phí, hỗ trợ kỹ thuật và chương trình
hỗ trợ cho hệ điều hành nào.


2. Các bước để nghe gói tin:
Quá trình nghe gói tin được chia làm 3 bước: thu thập dữ liệu, chuyển đổi dữ liệu và phân tích.
 Thu thập dữ liệu: đây là bước đầu tiên, chương trình nghe gói tin chuyển giao diện mạng được lựa
chọn sang chế độ Promiscuous. Chế độ này cho phép card mạng có thể nghe tất cả các gói tin

đang lưu chuyển trên phân mạng của nó. Chương trình nghe gói sử dụng chế độ này cùng với
việc truy nhập ở mức thấp để bắt các dữ liệu nhị phân trên đường truyền.
 Chuyển đổi dữ liệu: trong bước này, các gói tin nhị phân trên được chuyển đổi thành các khuôn
dạng có thể đọc được.
 Phân tích: phân tích các gói tin đã được chuyển đổi.
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
3
Có vài chương trình khác nhau về nghe gói tin, trong tiểu luận này, chúng tôi xin giới thiệu một
chương trình điển hình với nhiều tính năng mạnh hỗ trợ việc bắt và phân tích gói tin. Đó là
WireShark.
Nội dung các phần chính:
 Phần I: Các cách thức nghe gói tin trên mạng
 Phần II: Giới thiệu WireShark
 Phần III: Các tính huống với WireShark
 Phần IV: Xử lý các tình huống mạng với WireShark
I. Các cách thức nghe gói tin trên mạng
Để thực hiện việc bắt các gói tin trên mạng, ta phải chỉ ra những vị trí tương ứng để đặt “máy nghe”
vào hệ thống đường truyền của mạng. Quá trình này đơn giản là đặt “máy nghe” vào đúng vị trí vật
lý nào trong một mạng máy tính. Việc nghe các gói tin không đơn giản chỉ là cắm một máy xách tay
vào mạng và bắt gói. Thực tế, nhiều khi việc đặt máy nghe vào mạng khó hơn việc phân tích các gói
tin. Thách thức của việc này là ở chỗ là có một số lượng lớn các thiết bị mạng phần cứng được sử
dụng để kết nối các thiết bị với nhau. Lý do là vì 3 loại thiết bị chính (hub, switch, router) có nguyên
lý hoạt động rất khác nhau. Và điều này đòi hỏi ta phải nắm rõ được cấu trúc vật lý của mạng mà ta
đang phân tích.
Chúng ta sẽ nghiên cứu một số mạng thực tế để chỉ ra cách tốt nhất để bắt các gói tin trong từng môi
trường mạng sử dụng Hub, Switch và Router.
1. Living Promiscuously (chế độ bắt tất cả các gói tin đi qua)

Trước khi nghe các gói tin trên mạng, ta cần một card mạng có hỗ trợ chế độ Promiscuous. Chế độ
Promiscuous cho phép card mạng nhìn thấy thất cả các gói tin đi qua hệ thống dây mạng. Khi một
card mạng không ở chế độ này, nó nhìn thấy một số lượng lớn các gói tin trên mạng nhưng không
gửi cho nó, nó sẽ huỷ (drop) các gói tin này. Khi nó ở chế độ Promiscuous, nó bắt tất cả các gói tin
và gửi toàn bộ tới CPU.
2. “Nghe” trong mạng có Hub
Việc nghe trong một mạng có hub là một điều kiện trong mơ cho việc phân tích gói tin. Cơ chế hoạt
động của Hub cho phép gói tin được gửi tất cả các cổng của hub. Hơn nữa, để phân tích một máy
tinh trên một hub, tất cả các công việc mà bạn cần làm là cắm máy nghe vào một cổng còn trống trên
hub. Bạn có thể nhìn thấy tất cả các thông tin truyền và nhận từ tất cả các máy đang kết nối với hub
đó, của sổ tầm nhìn của bạn không bị hạn chế khi mà máy nghe của bạn được kết nối với một mạng
hub.
3. “Nghe” trong mạng Switched
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
4
Một môi trường switched là kiểu mạng phổ biến mà bạn làm việc. Switch cung cấp một phương thức
hiệu quả để vận chuyển dữ liệu thông qua broadcast, unicast, multicast. Switch cho phép kết nối
song công (full-duplex), có nghĩa là máy trạm có thể truyền và nhận dữ liệu đồng thời từ switch. Khi
bạn cắm một máy nghe vào một cổng của switch, bạn chỉ có thể nhìn thấy các broadcast traffic và
những gói tin gửi và nhận của máy tính mà bạn đang sử dụng.

Có 3 cách chính để bắt được các gói tin từ một thiết bị mục tiêu trên mạng switch: port mirroring,
ARP cache poisoning và hubbing out.
Port Mirroring
Port mirroring hay còn gọi là port spanning có thể là cách đơn giản nhất để bắt các lưu lượng từ thiết
bị mục tiêu trên mạng switch. Với cách này, bạn phải truy cập được giao diện dòng lệnh của switch
mà máy mục tiêu cắm vào. Tất nhiên là switch này phải hỗ trợ tính năng port mirroring và có một

port trống để bạn có thể cắm máy nghe vào. Khi ánh xạ cổng, bạn đã copy toàn bộ lưu lượng đi qua
cổng này sang một cổng khác.
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
5

Hubbing Out
Một cách đơn giản khác để bắt các lưu lượng của thiết bị mục tiêu trong một mạng switch là hubbing
out. Hubbing out là kỹ thuật mà trong đó bạn đặt thiết bị mục tiêu và máy nghe vào cùng một phân
mạng bằng cách đặt chúng trực tiếp vào một hub.

Rất nhiều người nghĩ rằng hubbing out là lừa dối, nhưng nó thật sự là một giải pháp hoàn hảo trong
các tình huống mà bạn không thể thực hiện port mirroring nhưng vẫn có khả năng truy cập vật lý tới
switch mà thiết bị mục tiêu cắm vào.
Trong hầu hết các tình huống, hubbing out sẽ giảm tính năng song công của thiết bị mục tiêu (full to
haft). Trong khi phương thức này không phải là cách sạch sẽ nhất để nghe, và nó thường được bạn
sử dụng như là một lựa chọn khi mà switch không hỗ trợ port mirroring.
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
6
Khi hubbing out, chắc chắn rằng bạn sử dụng một cái hub chứ không phải là một switch bị gắn nhầm
nhãn. Khi mà bạn sử dụng hub, hãy kiểm tra để chắc chắn rằng nó là một hub bằng cách cắm 2 máy
tính vào nó và nhìn xem cái một máy có thể nhìn thấy lưu lượng của cái còn lại không.
ARP Cache Poisoning
Địa chỉ tầng 2 (địa chỉ MAC) được sử dụng chung với hệ thống hệ thống địa chỉ tầng 2. Tất cả các
thiết bị trong một mạng liên lạc với nhau thông qua địa chỉ IP. Do switch làm việc tại tầng 2, vì vậy

nó phải có khả năng phiên dịch địa chỉ tầng 2 (MAC) sang địa chỉ tầng 3 (IP) hoặc ngược lại để có
thể chuyển tiếp gói tin tới thiết bị tương ứng. Quá trình phiên dịch được thực hiện thông qua một
giao thức tầng 3 là ARP (Address Resolution Protocol). Khi một máy tính cần gửi dữ liệu cho một
máy khác, nó gửi một yêu cầu ARP tới switch mà nó kết nối. Switch đó sẽ gửi một gói ARP
broadcast tới tất cả các máy đang kết nối với nó để hỏi. Khi mà máy đích nhận được gói tin này, nó
sẽ thông báo cho switch bằng cách gửi địa chỉ MAC của nó. Sau khi nhận được gói tin phản hồi,
Switch định tuyến được kết nối tới máy đích. Thông tin nhận được được lưu trữ trong ARP cache
của switch và switch sẽ không cần phải gửi một thông điệp ARP broadcast mới mỗi lần nó cần gửi
dữ liệu tới máy nhận.
ARP cache poisoning là một kỹ thuật nâng cao trong việc nghe đường truyền trong một mạng
switch. Nó được sử dụng phổ biến bởi hacker để gửi các gói tin địa chỉ sai tới máy nhận với mục tiêu
để nghe trộm đường truyền hiện tại hoặc tấn công từ chối dịch vụ, nhưng ARP cache poisoning chỉ
có thể phục vụ như là một cách hợp pháp để bắt các gói tin của máy mục tiêu trong mạng switch.
ARP cache poisoning là quá trình gửi một thông điệp ARP với địa chỉ MAC giả mạo tới switch hoặc
router nhằm mục đích nghe lưu lượng của thiết bị mục tiêu. Có thể sử dụng chương trinh Cain &
Abel để thực hiện việc này ().

ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
7
4. Nghe trong mạng sử dụng Router
Tất cả các kỹ thuật nghe trong mạng switch đều có thể được sử dụng trong mạng router. Chỉ có một
việc cần quan tâm khi mà thực hiện với mạng router là sự quan trọng của việc đặt máy nghe khi mà
thực hiện xử lý một vấn đề liên quan đến nhiều phân mạng. Broadcast domain của một thiết bị được
mở rộng cho đến khi nó gặp router. Khi đó, lưu lượng sẽ được chuyển giao sang dòng dữ liệu router
tiếp theo và bạn sẽ mất liên lạc với các gói tin đó cho đến khi bạn nhận được một ACK của các máy
nhận trả về. Trong tình hướng này, dữ liệu sẽ lưu chuyển qua nhiều router, vì vậy rất quan trọng để
thực hiện phân tích tất cả lưu lượng trên các giao diện của router.

Ví dụ, liên quan đến vấn đề liên kết, bạn có thể gặp phải một mạng với một số phân mạng được kết
nối với nhau thông qua các router. Trong mạng đó, một phân mạng liên kết với một phân mạng với
mục đích lưu trữ và tham chiếu dữ liệu. Vấn đề mà chúng ta đang cố gắng giải quyết là phân mạng D
không thể kết nối với các thiết bị trong phân mạng A.

Khi mà bạn nghe lưu lượng của một thiết bị trong phân mạng D. Khi đó, bạn có thể nhìn tháy rõ ràng
lưu lượng truyền tới phân mạng A, nhưng không có biên nhận (ACK) nào được gửi lại. Khi bạn
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
8
nghe luồng lưu lượng ở phân mạng cấp trên để tìm ra nguyên nhân vấn đề, bạn tìm ra rằng lưu lượng
bị huỷ bởi router ở phân mạng B. Cuối cùng dẫn đến việc bạn kiểm tra cấu hình của router, nếu
đúng, hãy giải quyết vấn đề đó của bạn. Đó là một ví dụ điển hình lý do vì sao cần nghe lưu lượng
của nhiều thiết bị trên nhiều phân mạng với mục tiêu xác định chính xác vấn đề.
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
9
Network Maps
Để quyết định việc đặt máy nghe ở đâu, cách tốt nhất là bạn phải biết được một cách rõ ràng mạng
mà bạn định phân tích. Nhiều khi việc xác định vấn đề đã chiếm nửa khối lượng công việc trong việc
xử lý sự cố.
II. 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.
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.
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.
Một số tính năng nâng cao của Wireshark
1. Name Resolution
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
10
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 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. 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ể.
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 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).
4. Cửa sổ thống kê phân cấp giao thức
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
11
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.
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.


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.
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
12


ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
13
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 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ị.


III. Xử lý các tính huống thực tế với WireShark
1. Một số tình huống cơ bản
Trong phần này chúng ta sẽ đề cập đến vấn đề cụ thể hơn. Sử dụng Wireshark và phân tích gói tin để giải
quyết một vấn đề cụ thể của mạng.
Chúng tôi xin đưa ra một số tình huống điển hình.
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.

ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;

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

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:

ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
15
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.
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
16
Unreachable Destinations and ICMP Codes (không thể chạm tới điểm cuối và các mã ICMP)

Một trong các công cụ khi kiểm tra kết nối mạng là công cụ ICMP ping. Nếu may mắn thì phía mục tiêu
trả lời lại điều đó có nghĩa là bạn đã ping thành công, còn nếu không thì sẽ nhận được thông báo không
thể kết nối tới máy đích. Sử dụng công cụ bắt gói tin trong việc này sẽ cho bạn nhiều thông tin hơn thay
vì chỉ dung ICMP ping bình thường. Chúng ta sẽ nhìn rõ hơn các lỗi của ICMP.




Hì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)

Hình 3.1-6: This ICMP type 3 packet is not what we expected.

Unreachable Port (không thể kết nối tới cổng)
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
17
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
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội


Design by MrQuý - Mobile: 0983127983 -
Email:;
18
Fragmented Packets

Hình 3.1-7: This ping request requires three packets rather than one because the data being transmitted is
above average size.

Ở đây có thể thấy kích thước gói tin ghi nhận được lớn hơn kích thước gói tin mặc định gửi đi khi ping là
32 bytes tới một máy tính chạy Windows.
Kích thước gói tin ở đây là 3,072 bytes.
Determining Whether a Packet Is Fragmented (xác định vị trí gói tin bị phân đoạn)
No Connectivity (không kết nối)
Vấn đề : chúng ta có 2 nhân viên mới Hải và Thanh và được sắp ngồi cạnh nhau và đương nhiên là được
trang bị 2 máy tính. Sauk hi được trang bị và làm các thao tác để đưa 2 máy tính vào mạng, có một vấn đề
xảy ra là máy tính của Hải chạy tốt, kết nối mạng bình thường, máy tính của Thanh không thể truy nhập
Internet.
Mục tiêu : tìm hiểu tại sao máy tính của Thanh không kết nối được Internet và sửa lỗi đó.
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
19
Các thông tin chúng ta có
 Cả 2 máy tính đều mới
 Cả 2 máy đều được đặt IP và có thể ping đến các máy khác trong mạng
Nói tóm lại là 2 máy này được cấu hình không có gì khác nhau.
Tiến hành
Cài đặt Wireshark trực tiếp lên cả 2 máy.
Phân tích

Trước hết trên máy của Hải ta nhìn thấy một phiên làm việc bình thường với HTTP. Đầu tiên sẽ có một
ARP broadcast để tìm địa chỉ của gateway ở tầng 2, ở đây là 192.168.0.10. Khi máy tính của Hải nhận
được thông tin nó sẽ bắt tay với máy gateway và từ đó có phiên làm việc với HTTP ra bên ngoài.


Hình 3.1-12: Hải’s computer completes a handshake, and then HTTP data transfer begins.

Trường hợp máy tính của Thanh

Hình 3.1-13: Thanh’s computer appears to be sending an ARP request to a different IP address.
Hình trên cho thấy yêu cầu ARP không giống như trường hợp ở trên. Địa chỉ gateway được trả về là
192.168.0.11.
Như vậy có thể thấy NetBIOS có vấn đề.
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
20


NetBIOS là giao thức cũ nó sẽ được thay thế TCP/IP khi TCP/IP không hoạt động. Như vậy là máy của
Thanh không thể kết nối Internet với TCP/IP.
Chi tiết yêu cầu ARP trên 2 máy :
Máy Hải

Máy Thanh

Kết luận : máy Thanh đặt sai địa chỉ gateway nên không thể kết nối Internet, cần đặt lại là 192.168.0.10.
The Ghost in Internet Explorer (con ma trong trình duyệt IE)
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội


Design by MrQuý - Mobile: 0983127983 -
Email:;
21
Hiện tượng : máy tính của A có hiện tượng như sau, khi sử dụng trình duyệt IE, trình duyệt tự động trỏ
đến rất nhiều trang quảng cáo. Khi A thay đổi bằng tay thì vẫn bị hiện tượng đó thậm chí khở động lại
máy cũng vẫn bị như thế.
Thông tin chúng ta có
 A không thạo về máy tính lắm
 Máy tính của A dùng Widows XP, IE 6
Tiến hành
Vì hiện tượng này chỉ xảy ra trên máy của A và trang home page của A bị thay đổi khi bật IE nên chúng
ta sẽ tiếp hành bắt gói tin từ máy của A. Chúng ta không nhất thiết phải cài Wireshark trực tiếp từ máy
của A. Chúng ta có thể dùng kỹ thuật
“Hubbing Out” .

Phân tích


Hình 3.1-16: Since there is no user interaction happening on A’s computer at the time of this capture, all
of these packets going across the wire should set off some alarms.

Chi tiết gói tin thứ 5:


Hình 3.1-17: Looking more closely at packet 5, we see it is trying to download data from the Internet.
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;

22

Từ máy tính gửi yêu cầu GET của HTTP đến địa chỉ như trên hình.

Hình 3.1-18: A DNS query to the weatherbug.com domain gives a clue to the culprit.

Gói tin trả lại bắt đầu có vấn đề : thứ tự các phần bị thay đổi.
Một số gói tiếp theo có sự lặp ACK.

Sau một loạt các thay đổi trên thì có truy vấn DNS đến deskwx.weatherbug.com
Đây là địa chỉ A không hề biết và không có ý định truy cập.


Như vậy có thể là có một process nào đó đã làm thay đổi địa chỉ trang chủ mỗi khi IE được bật lên. Dùng
một công cụ kiểm tra process ẩn ví dụ như Process Explore và thấy rằng có tiến trình weatherbug.exe
đang chạy. Sau khi tắt tiến trình này đi không còn hiện tượng trên nữa.
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
23
Thông thường các tiến trình như weatherbug có thể là virus, spyware.
Giao diện Process Explore

ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
24
Lỗi kết nối FTP

Tình huống : có tài khoản FTP trên Windows Server 2003 đã update service packs vừa cài đặt xong,
phần mềm FTP Server hoàn toàn bình thường, khoản đúng nhưng không truy nhập được.
Thông tin chúng ta có
 FTP làm việc trên cổng 21
Tiến hành
Cài đặt Wireshark trên cả 2 máy.
Phân tích
Client:

Hình 3.1-19: The client tries to establish connection with SYN packets but gets no response; then it sends
a few more.
Client gửi các gói tin SYN để bắt tay với server nhưng không có phản hồi từ server.






Server :
ITB2 - K29 - CNTT - Đại học Bách Khoa Hà Nội

Design by MrQuý - Mobile: 0983127983 -
Email:;
25

Hình 3.1-20: The client and server trace files are almost identical.

Có 3 lý do có thể dẫn đến hiện tượng trên
 FTP server chưa chạy, điều này không đúng vì FTP server của chúng ta đã chạy như kiểm tra lúc
đầu

 Server quá tải hoặc có lưu lượng quá lớn khiến không thể đáp ứng yêu cầu. Điều này cũng không
chính xác vì server vừa mới được cài đặt.
 Cổng 21 bị cấm ở phía clien hoặc phía server hoặc ở cả 2 phía. Sau khi kiểm tra và thấy rằng ở
phía Server cấm cổng 21 cả chiều Incoming và Outgoing trong Local Security Policy

×