Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
1,16 MB
Nội dung
PHÂNTÍCHGÓITINVỚI WIRESHARK
MỤC LỤC
Giới thiệu
1.Thế nào là phântíchgói tin?
2.Các bước để nghe góitin
I. Các cách thức nghe góitin trên mạng
1.Living Promiscuously (chế độ bắt tất cả các góitin đ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
1
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ântíchgói
tin.
1. Thế nào là phântíchgói tin?
Phân tíchgói tin, thông thường được quy vào việc nghe các góitin và phântí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ântí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ântíchgóitin 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óitin 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
2. Các bước để nghe gói tin:
Quá trình nghe góitin đượ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óitin 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óitin đ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óitin 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ântích các góitin đã được chuyển đổi.
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ântí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óitin 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óitin trên mạng
Để thực hiện việc bắt các góitin 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óitin 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ântí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
3
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óitin
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óitin đi qua)
Trước khi nghe các góitin 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óitin đ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óitin trên mạng nhưng không gửi cho nó, nó sẽ huỷ (drop) các góitin
này. Khi nó ở chế độ Promiscuous, nó bắt tất cả các góitin 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ântíchgói tin.
Cơ chế hoạt động của Hub cho phép góitin được gửi tất cả các cổng của hub. Hơn nữa,
để phântí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
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óitin gửi và nhận của máy tính
mà bạn đang sử dụng.
4
Có 3 cách chính để bắt được các góitin 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.
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.
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
6
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óitin 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óitin 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óitinphả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óitin đị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 (http://www.oxid.it).
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óitin đó 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.
8
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 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 đề.
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ântí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ântíchgó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ântích giao thức.
10
[...]... ứng với nó, ví dụ: cổng 80 là http 2 Protocol Dissection Một protocol dissector cho phép Wiresharkphâ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 Wiresharkphân chia dữ liệu bắt được và định dạng chúng như là một góitin 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 11 Wireshark Với. .. một dessector cho giao thức đó phải được tích hợp trong WiresharkWireshark sử dụng đồng thời vài dissector để phiên dịch mỗi góitin 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óitin Tuy nhiên, ta có thể thay đổi việc lựa... Thanh Tiến hành: cài Wireshark và bắt góitin khi truy cập website Novell trên máy của Thanh 32 Phân thích: Thông tin nhận được khi bắt đầu có kết nối HTTP đến website Novell: Hình 3.2-18: The capture begins with standard HTTP communication Từ phía client gửi góitin RST để kết thúc kết nối HTTP: Hình 3.2-19: Packets 28 and 29 present a problem 33 Lý do gì khiến client gửi góitin RST ? Sử dụng một... 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 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óitin để 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. ..• 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... nhận dữ liệu, các MAC đó tạo nên các endpoint trong kết nối 12 Khi thực hiện phân tíchgó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óitin và dung lượng đã được truyền nhận của từng máy 13 6 Cửa số đồ thị IO Cách... 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ớiWireShark 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íchgó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... tượng đó ở mức góitin Ví dụ: Một ví truyền file bị mất kết nối: 14 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óitin đến đích,... thông thường Ta sẽ gửi góitin 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 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óitin ghi nhận được lớn hơn kích thước góitin mặc định gửi đi... 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óitin SYN để bắt tay với server nhưng không có phản hồi từ server 25 Server : Hình 3.1-20: The