khai thac va su dung Wirreshark
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BÁO CÁO THỰC TẬP CHUYÊN NGÀNH
PHÂN TÍCH GÓI TIN VỚI WIRRESHARK
http://www.Ethereal.com/docs/eug_html/
SINH VIÊN:
TRẦN NGỌC CẢNH
TRẦN HỮU CHƯƠNG
LỚP : CĐTIN6_K52
1. GIỚI THIỆU VỀ WIRRESHAK
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ợ.
2. 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.
3. 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.
4. 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ở.
5. 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ục đích sử dụng
• Giúp người quản trị mạng có thể khắc phục lỗi mạng.
• Kỹ sư an ninh mạng xem xét các vấn đề bảo mật.
• Người phát triển phân tích và gỡ rối hoạt động của các giao thức.
• Người dùng nghiên cứu bản chất giao thức mạng.
3.Tính năng
• Thu thập các gói tin đến và đi thông qua card mạng
• Hiện thị các gói tin với những thông tin về giao thức chi tiết.
• Lưu trữ giữ dữ liệu vào file để sau này có thể sử dụng lại.
• Lọc gói tin theo nhiều tiêu chuẩn.
• Tìm kiếm gói tin theo nhiều tiêu chuẩn.
• Tạo nhiều thống kê khác nhau.
Hình biểu diễn các gói tin WIRRESHAK đã được thu thập sẵn sàng để phân tích.
4.Tìm hiểu các hạng mục thực đơn làm việc
.
Giao diện chương trình: giao diện của chương trình wirreshak cũng như các chương trình khác.dưới đây là cửa sổ mà người dùng thấy sau khi các gói tin được bắt và hiển thị.
Thanh MENU
• File:chứa các lệnh mở và lưu các file dữ liệu mà chương trình đã bắt được.
• Edit : chứa các lệnh tìm gói tin,tham chiếu thời gian hoặc đánh dấu một hay nhiều gói tin, thiết lập các tùy chọn.
• Display: chứa lệnh điều khiển việc hiển thị dữ liệu thu được, bao gồm việc tô màu các gói tin, phóng to cỡ font, biểu diễn gói tin trong cửa số riêng, mở rộng hoặc thu hẹp cây chi tiết gói tin...
• Capture : chứa các lệnh bắt đầu và kết thúc việc thu thập các gói tin.
• Help: giúp đỡ người dùng sử dụng các chức năng cơ bản, xem danh sách các giao thức được hỗ trợ, các trang hướng dẫn, các trang web, và hộp thoại About như thường lệ.
Ô liệt kê gói tin
Ô liệt kê gói tin hiển thị tóm tắt các gói tin bắt được
Mỗi dòng trong danh sách ứng với một gói tin trong file dữ liệu thu thập. Nếu chọn một dòng trong ô này, ô Packet Details và Packet Bytes sẽ hiển thị thông tin chi tiết về gói tin tương ứng.
Khi phân tích một gói tin, wirreshak sẽ lấy thông tin từ bộ phân tích giao thức và đặt vào các cột. Vì thông tin về giao thức ở tầng cao sẽ ghi đè lên thông tin của giao thức ở tầng thấp nên bạn sẽ chỉ nhìn thấy thông tin giao thức tầng cao nhất có thể.
Ví dụ, giả sử một gói tin TCP nằm bên trong gói tin IP, gói tin IP lại nằm bên trong frame Ethernet. Bộ phân tích Ethernet ghi dữ liệu của mình (chẳng hạn địa chỉ card mạng), sau đó bộ phân tích IP ghi đè bằng dữ liệu IP (ví dụ địa chỉ IP), và cuối cùng bộ phân tích TCP sẽ ghi đè lên thông tin về IP..
Có rất nhiều cột thông tin khác nhau và có thể chọn hiển thị cột nào bằng cách thiết lập tùy chọn (Preference settings).
Ô chi tiết gói tin
Ô chi tiết gói tin hiển thị chi tiết gói tin được chọn ở ô liệt kê gói tin.
Giao thức và các trường của gói tin được biểu diễn dưới dạng cây, có thể dễ dàng mở rộng hoặc thu gọn lại.
Ô mã nhị phân gói tin
Ô mã nhị phân hiển thị dữ liệu biểu diễn dưới dạng cơ số 16 của gói tin được chọn (là gói tin được chọn trong ô gói tin chi tiết).
Cột bên trái ghi vị trí tương đối (offset) của dữ liệu trong gói tin, cột ở giữa là dữ liệu được biểu diễn dưới dạng cơ số 16 và cột bên phải là kí tự ASCII tương ứng (hoặc dấu chấm ('.') nếu kí tự không hiển thị được).
Tùy thuộc vào dữ liệu gói tin, đôi khi ô này chứa nhiều trang, chẳng hạn như khi wirreshak ráp nhiều gói tin lại thành một khối dữ liệu duy nhất. Trong trường hợp này, một vài tab sẽ xuất hiện ở đáy của ô để có thể lựa chọn các trang cần xem.
5Thu thập tức thì dữ liệu trong mạng
5.1. Giới thiệu
Thu thập tức thì dữ liệu trong mạng là một trong những tính năng chủ yếu của wirreshak. Wirreshak cung cấp các chức năng sau:
• Thu thập thông tin từ các kiểu kiến trúc phần cứng mạng khác nhau (Ethernet, Token Ring, ATM,...).
• Chấm dứt việc thu thập thông tin khi một trong số các chỉ tiêu sau đạt được: độ lớn dữ liệu thu thập, thời gian thu thập hay tổng số gói tin bắt được.
• Hiển thị các gói tin đã được phân tích trong khi vẫn tiếp tục thu thập thông tin.
• Lọc gói tin, giảm độ lớn của dữ liệu.
• Ghi ra nhiều file khác nhau. Có thể lựa chọn để ghi dữ liệu thu được lần lượt và theo thứ tự xoay tròn vào các file và giữ lại x file cuối cùng. Điều này cực kỳ có ích khi cần thu thập dữ liệu trong thời gian dài.
Một số tính năng nâng cao của Wireshark
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 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
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.
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ị.
•
Tuy nhiên, các tính năng sau chưa có trong wirreshark :
• Bắt thông tin đồng thời từ nhiều card mạng khác nhau (tuy nhiên, có thể chạy nhiều chương trình Wirreshark ứng với các card mạng khác nhau cùng lúc và sau đó kết hợp - các file dữ liệu được thu thập lại).
• Chấm dứt việc bắt thông tin (hay thực hiện một hành động nào đó) dựa trên dữ liệu được thu thập.
Các thao tác thực hiện việc thu thập dữ liệu (khởi động/ dừng/ khởi động lại) được chọn từ menu Capture trên thanh Menu.
5.2 Các tùy chọn(Menu Capture/ Options).
Khi khởi động việc bắt dữ liệu, Wirreshark có thể sẽ hiển thị một hộp thoại tùy chọn (Capture Options). Nếu không chắc về một tuỳ chọn nào đó, hãy để chế độ mặc định. Trong nhiều trường hợp điều đó sẽ không ảnh hưởng nhiều đến kết quả hiển thị.
Khung Capture:
• Interface: chọn card mạng bạn sử dụng.
• Capture packets in promiscuous mode: Tắt chế độ này nếu bạn chỉ muốn bắt các dữ liệu đến hoặc đi từ máy tính của bạn.
• Limit each packet to n bytes: Kích cỡ dữ liệu lớn nhất của mỗi gói tin.
• Capture Filter: thiết lập bộ lọc.
Khung Caputure File:
• Stop capture after n file(s): Dừng việc bắt dữ liệu sau khi đã ghi đủ vào n file.
Khung Stop Capture :
• ...after n packet(s): Ngừng việc bắt dữ liệu sau khi đã thu thập được một số lượng nào đó các gói tin.
• ...after n megabyte(s): Ngừng việc bắt dữ liệu sau khi đã thu thập được một số lượng nào đó dữ liệu.
• ...after n minute(s): Ngừng việc thu thập dữ liệu sau một số giây/ phút/ giờ/ ngày.
Display Options Frame:
• Update list of packets in real time: Yêu cầu Wirreshark cập nhật ô liệt kê gói tin trong thời gian thực. Nếu không có lựa chọn này, Wirreshark sẽ chỉ hiển thị các gói tin sau khi ngừng quá trình thu thập dữ liệu.
• Automatic scrolling in live capture: Tùy chọn này cho phép Wirreshark cuộn ô liệt kê gói tin khi có thêm gói tin mới, để người sử dụng luôn luôn nhìn thấy gói tin mới nhất.
• Hide capture info dialoge: đóng mở hộp thoại thông tin
Name Resolution Frame:
• Enable MAC name resolution: Giải mã địa chỉ MAC trong quá trình thu thập.
• Enable network name resolution: Giải mã địa chỉ mạng trong quá trình thu thập.
• Enable transport name resolution: Giải mã địa chỉ tầng giao vận trong quá trình thu thập.
5.3 Bộ lọc
Có thể điền biểu thức lọc vào trường Filter của hộp thoại Capture Options. Biểu thức có thể được xem là tổ hợp của các biểu thức nguyên thủy (primitive) kết nối với nhau theo các phép toán AND OR hoặc NOT.
Khuôn dạng tổng quát của biểu thức: [not] primitive [and|or [not] primitive ...]
Ví dụ 1: Bắt thông tin ứng dụng telnet đến hoặc đi từ một host cụ thể nào đó:
tcp port 23 and host 10.0.0.5
Ví dụ 2: Bắt thông tin telnet không xuất phát từ địa chỉ IP 10.0.05:
tcp port 23 and not host 10.0.0.5
Dưới đây là các biểu thức nguyên thủy thường được sử dụng:
• [src|dst] host <host>: lọc dựa trên tên hoặc địa chỉ IP của máy tính. Nếu có thêm từ khóa src (hoặc dst) thì chúng ta chỉ lấy những gói tin có địa chỉ gửi (hoặc địa chỉ nhận) là host. Nếu không có hai từ khóa này, hệ thống sẽ thu giữ tất cả gói tin có địa chỉ gửi hoặc nhận là host.
• ether [src|dst] host <ehost>: lọc dựa trên địa chỉ của Ethernet host. Từ khóa src và dst giống như trên.
• gateway host <host>: lọc các gói tin sử dụng host như một gateway (router). Có nghĩa là địa chỉ Ethernet là địa chỉ của host nhưng địa chỉ IP không phải là địa chỉ của host.
• [src|dst] net <net> [{mask <mask>}|{len <len>}] Lọc theo địa chỉ subnet của mạng. Từ khóa src hoặc dst chỉ ra rằng chỉ cần lấy gói tin gửi từ (hoặc đến) một mạng cụ thể nào đó. Có thể bạn phải chỉ ra mặt nạ mạng hoặc tiền tố CIDR trong trường hợp bạn địa chỉ subnet khác subnet trên máy tính cài Ethereal.
• [tcp|udp] [src|dst] port <port>: lọc theo cổng của TCP và UDP.
• less|greater <length>: lọc các gói tin theo một độ dài cho trước.
ip|ether proto <protocol>: lọc dựa trên các giao thức cho trước thuộc tâng Ethernet hoặc tầng IP
6. Làm việc với các gói tin bắt được
6.1.Xem các gói tin đã bắt
Sau khi bạn đã bắt được một số gói tin, hay khi mở file dữ liệu thu thập, chúng ta có thể chọn và xem từng gói tin được hiển thị trong ô liệt kê các gói tin bằng cách nhấn chuột vào. Chi tiết về gói tin sẽ hiển thị ở các ô phía dưới( -) theo dạng cây và dạng nhị phân. Có thể mở rộng cây hiển thị gói tin bằng cách ấn vào dấu (+), khi đó các thông tin chi tiết hơn về giao thức sẽ hiện ra trên màn hình.
Ngoài ra, bạn có thể xem gói tin trong từng cửa sổ riêng. Điều này cho phép bạn dễ dàng so sánh hai hay nhiều các gói tin. Để xem như vậy, nhấn chuột phải vào gói tin và chọn Show Packet in New Window.
6.2 Lọc các gói tin khi đang xem
Bộ lọc hiển thị cho phép bạn tập trung vào những gói tin bạn quan tâm và ẩn đi các gói tin khác. Bạn có thể chọn các gói tin dựa trên:
• Giao thức
• Sự xuất hiện một trường
• Giá trị của trường
• So sánh giữa các trường
• ... và nhiều hơn thế!
6.3 Hộp thoại các biểu thức lọc (Filter Expression Dialog box)
Khi bạn đã quen với hệ thống lọc của Wirresharl và biết được nhãn nào bạn cần dùng thì việc tạo một chuỗi biểu thức lọc là rất đơn giản. Tuy nhiên nếu bạn mới làm quen với Wirreshark hoặc bạn phải làm việc với một giao thức hơi lạ nào đó, bạn có thể sẽ gặp khó khăn. Hộp thoại biểu thức lọc (Filter Expression dialog box) sẽ giúp bạn trong trường hợp này
• Field name: Liệt kê các trường giao thức trong cây.
• Relation: Chọn quan hệ bạn mong muốn. Quan hệ is present là true nếu trường bạn chọn có trong gói tin. Các quan hệ khác cần thêm dữ liệu giá trị (Value).
• Value: Điền giá trị thích hợp cho biểu thức.
• Predefined values: Một số trường giao thức đã định nghĩa sẵn các giá trị. Bạn chỉ việc chọn một trong số các giá trị đó.
6.4 Tìm kiếm gói tin
Bạn có thể dễ dàng tìm kiếm các gói tin bằng cách chọn Find Packet... trong menu Edit
7. Phân tích các màn hình và các tệp kết xuất
Sử dụng lệnh ping đến trang google.com :
Và đây là màn hình nhận được sau khi wirreshark bắt gói tin:
Phân tich:
Từ màn hình ta thấy, giao thức chạy trên moden là RIPV2
Lệnh ping được gõ trên máy có đĩa chỉ 192.168.1.33 và ping đến tràn web google.com
Trước tiên máy tính(192.168.1.33) hỏi DNS server ( có địa chỉ IOP: 208.67.222.222) địa chỉ ip của trang web có tên miền google.com
Tiếp theo DNS server(208.67.222.222) trả về địa chỉ ip của trang google.com là 212.227.93.146
Kế tiếp máy tính(192.168.1.33) gửi một gói tin ICMP để request đến địa chỉ 212.227.93.146
Sau đó 212.227.93.146 lại gửi một gói tin ICMP để reply tới 192.168.1.33
Tương tự ,có thêm một lần request _ reply giữa 2 địa chỉ 192.168.1.33 & 212.227.93.146 thông qua các gới tin ICMP
Bạn đang đọc truyện trên: TruyenTop.Vip