Network

WireShark là gì? Hướng dẫn sử dụng WireShark toàn tập

Nếu bạn là một người am hiểu về công nghệ thông tin, chắc chắn sẽ từng nghe qua về WireShark. Vậy bạn có biết WireShark là gì không? Đây là phần mềm bắt gói tin hàng đầu được sử dụng trong việc theo dõi, giám sát và phân tích traffic Network. Bài viết này Vietnix sẽ hướng dẫn sử dụng toàn tập từ căn bản đến nâng cao: cài đặt, cách bắt gói tin, cách đọc gói tin, cách phân tích gói tin, cách viết Wireshark Expression để filter traffic khi capture hoặc khi phân tích.

Wireshark là gì?

Wireshark là một ứng dụng dùng để bắt (capture), phân tích và xác định các vấn đề liên quan đến network như: rớt gói tin, kết nối chậm, hoặc các truy cập bất thường. Phần mềm này cho phép quản trị viên hiểu sâu hơn các Network Packets đang chạy trên hệ thống, qua đó dễ dàng xác định các nguyên nhân chính xác gây ra lỗi.

Website chính thức: https://www.wireshark.org/

Wireshark là gì?

Sử dụng WireShark có thể capture các packet trong thời gian thực (real time), lưu trữ chúng lại và phân tích chúng offline. Ngoài ra, nó cũng bao gồm các filter, color coding và nhiều tính năng khác, cho phép người dùng tìm hiểu sâu hơn về lưu lượng mạng cũng như inspect (kiểm tra) các packets.

Ứng dụng được viết bằng ngôn ngữ C và hệ điều hành Cross-platform, ngoài ra hiện này gồm có các bản phân phối Linux, Windows, OS X, FreeBSD, NetBSD và OpenBSD. Đây là một phần mềm mã nguồn mở, được cấp phép GPL, và do đó miễn phí sử dụng, tự do chia sẻ, sửa đổi.

WireShark là gì?

Từng được biết đến với cái tên Ethereal, phần mềm được xây dựng bởi Gerald Combs vào năm 1998. Hiện nay, có một tổ chức toàn cầu gồm nhiều chuyên gia mạng, cũng như các Developer phần mềm hàng đầu tham gia cùng The WireShark Team phát triển phần mềm này. Đội ngũ chuyên gia này không ngừng cập nhật các công nghệ và giao thức mới.

Đây là phần mềm hoàn toàn an toàn để sử dụng. Nhiều cơ quan chính phủ, tập đoàn, tổ chức phi lợi nhuận và tổ chức giáo dục đều sử dụng Wireshark để khắc phục các sự cố, cũng như ứng dụng vào việc giảng dạy. Có thể nói, cách tốt nhất để tìm hiểu về mạng chính là sử dụng để theo dõi các lưu lượng truy cập.

Được dùng nhiều ở các cơ quan chính phủ, tập đoàn, tổ chức phi lợi nhuận và tổ chức giáo dục

Dĩ nhiên, đây là một công cụ có khả năng dò tìm dữ liệu trong các packet rất mạnh mẽ. Do đó cũng có nhiều câu hỏi được đặt ra xoay quanh tính hợp pháp của nó. Nhiều người dùng cũng như chuyên gia đã nhấn mạnh rằng, chỉ nên sử dụng trên các mạng mà mình có thẩm quyền. Việc dùng Wireshark để xem các packet không được cho phép hoàn toàn không được khuyến khích.

Phiên bản ổn định nhất hiện nay là 2.2.6 ra mắt ngày 12 tháng 4 năm 2017; 4 năm trước.

Phần mềm Wireshark dùng để làm gì?

Wireshark là một phần mềm dùng để phân tích và giám sát lưu lượng mạng. Dưới đây là một số chức năng chính của Wireshark:

  • Phân tích Gói Tin: Wireshark cho phép bạn theo dõi và phân tích từng gói tin dữ liệu trên mạng. Bạn có thể xem các thông tin chi tiết như nguồn, đích, loại gói tin, dữ liệu payload và nhiều thông tin khác.
  • Đánh giá Hiệu suất Mạng: Wireshark cung cấp thông tin về thời gian phản hồi (response time), độ trễ (latency), và các thống kê khác, giúp đánh giá hiệu suất của mạng.
  • Phân tích Giao thức: Wireshark hỗ trợ nhiều giao thức mạng khác nhau. Bạn có thể xem và phân tích giao thức HTTP, TCP, UDP, IP, DNS, và nhiều giao thức khác.
  • Điều tra Vấn đề Mạng: Khi xảy ra vấn đề mạng, Wireshark là một công cụ mạnh mẽ để phân tích và xác định nguyên nhân của sự cố.
Phần mềm Wireshark dùng để làm gì?
  • Bảo mật Mạng: Wireshark có thể được sử dụng để phát hiện các hoạt động độc hại trên mạng. Nó cho phép bạn xem gói tin để phát hiện các tấn công mạng, như phishing hoặc kiểm soát truy cập không được ủy quyền.
  • Giáo dục và Học tập: Wireshark là một công cụ hữu ích cho sinh viên, chuyên gia mạng, và người quan tâm đến việc hiểu rõ cách mạng hoạt động. Nó cung cấp một cách thức thực hành để nắm bắt và hiểu các khái niệm mạng.

Lưu ý rằng việc sử dụng Wireshark để theo dõi mạng cần phải tuân thủ các quy tắc và luật lệ, và chỉ được thực hiện trên các mạng mà bạn có quyền truy cập hoặc được ủy quyền sử dụng.

Wireshark hoạt động như thế nào?

Để rõ hơn Wireshark là gì? Tìm hiểu ngay cách hoạt động Wireshark ngay tại đây.

Như đã đề cập ở trên, đây là một công cụ dùng để capture và phân tích các packet. Nó capture các lưu lượng mạng trên mạng cục bộ, sau đó sẽ lưu trữ nó để phân tích offline. Có thể capture các lưu lượng mạng từ các kết nối Ethernet, Bluetooth, Wireless (IEEE.802.11), Token Ring, Frame Relay…

Bắt các lưu lượng mạng kết nối Ethernet, Wireless, Bluetooth,..

Wireshark cho phép thiết lập filter (bộ lọc) trước khi bắt đầu capture hoặc thậm chí là trong quá trình phân tích. Do đó, ta có thể thu hẹp phạm vi tìm kiếm trong quá trình theo dõi mạng.

Lấy ví dụ, ta có thể đặt một filter để xem lưu lượng TCP giữa hai địa chỉ IP, hoặc đặt filter chỉ hiển thị các packet được gửi từ một máy tính. Tiện ích filter cũng chính là một trong những lý do khiến nó trở thành công cụ tiêu chuẩn để phân tích các packet.

Chức năng của Wireshark là gì?

Các dữ liệu capture ở dạng binary được chuyển thành định dạng giúp bạn dễ dàng đọc được. Với hơn 2000 giao thức mạng được hỗ trợ, điều này giúp xác định lưu lượng truy cập đang đi qua hệ thống mạng của bạn.

Chức năng và các tính năng nổi bật

Với khối lượng lưu lượng khổng lồ truyền hệ thống mạng, các công cụ của Wireshark sẽ giúp lọc các lưu lượng đó ra để phân tích chúng. Bộ capture filter sẽ chỉ thu thập các loại lưu lượng truy cập mà bạn quan tâm. Sau đó, hiển thị chi tiết lưu lượng mà bạn muốn kiểm tra. Module phân tích giao thức mạng cũng cung cấp các công cụ tìm kiếm, các biểu thức và tô màu, giúp dễ phân tích hơn.

Các tính năng nổi bật của phần mềm bắt gói tin Wireshark:

  • Hỗ trợ phân tích sâu hàng trăm giao thức và liên tục được cập nhật.
  • Live capture và phân tích offline.
  • Hoạt động đa nền tảng: Windows, Linux, MacOS, Solaris, FreeBSD, OpenBSD…
  • Các gói tin đã capture có thể xem bằng giao diện hoặc sử dụng command line (tshark).
  • Display filter mạnh mẽ.
  • Hỗ trợ phân tích VoIP chuyên sâu.
  • Hỗ trợ read/write nhiều định dạng: tcpdump (libpcap), Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network General Sniffer® (compressed and uncompressed), Sniffer® Pro, and NetXray®, Network Instruments Observer, NetScreen snoop, Novell LANalyzer, RADCOM WAN/LAN Analyzer, Shomiti/Finisar Surveyor, Tektronix K12xx, Visual Networks Visual UpTime, WildPackets EtherPeek/TokenPeek/AiroPeek …
  • File capture được nén bằng gzip có thể được giải nén “on the fly”.
  • Capture dữ liệu từ Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring, Frame Relay, FDDI …
  • Hỗ trợ decryption của nhiều giao thức như: IPsec, ISAKMP, Kerberos, SNMPv3, SSL/TLS, WEP, and WPA/WPA2.
  • Coloring rules cho phép thiết lập màu sắc cho các packet giúp phân tích nhanh và hiệu quả hơn.
  • Output có thể export sang XML, PostScript®, CSV, hoặc plain text.

Mục đích sử dụng Wireshark là gì?

“Ta cần phải hiểu những điều bình thường thì mới có thể tìm ra những thứ bất thường”. Có các công cụ để tạo các thống kê cơ bản. Mặc dù đây là một công cụ phân tích giao thức mạng, không phải hệ thống phát hiện xâm nhập (IDS). Nó có thể cực kỳ hữu ích trong việc giảm các lưu lượng độc hại.

Wireshark cũng có thể được sử dụng để chặn và phân tích lưu lượng TLS được mã hóa. Các session key đối xứng được lưu trữ trong trình duyệt. Và với cài đặt trình duyệt thích hợp, quản trị viên có thể load các session key đó và kiểm tra các lưu lượng ở dạng đã được giải mã.

Phần mềm hữu ích trong việc giảm các lưu lượng độc hại

Ứng dụng cũng đi kèm với các công cụ đồ họa để hình dung các số liệu thống kê. Điều này giúp bạn dễ dàng phát hiện các xu hướng chung, cảnh báo các phát hiện để quản lý dễ dàng và hiệu quả hơn.

Có rất nhiều cách dùng Wireshark, trong lĩnh vực giáo dục, nó còn là một công cụ học tập rất hiệu quả. Việc sử dụng Wireshark để bắt và đọc gói tin, xem cách các packet di chuyển, thậm chí đào sâu vào các lớp byte, kiểm tra các header của packet – là một cách để học và dạy người khác về Network. Chính vì thế, đây là một phần không thể thiếu trong các chương trình đào tạo hiện nay.

Tài liệu hướng dẫn sử dụng Wireshark

Có rất nhiều tài liệu hướng dẫn và video hướng dẫn cách sử dụng Wireshark cho từng mục đích cụ thể. Nhưng để bạn nắm được những thông tin và cách thức chuẩn hóa hơn. Thì nghĩ bạn nên bắt đầu tìm hiểu một số tài liệu chính thức trên trang Wikipedia thay vì các tài liệu Wireshark tiếng Việt. Đôi khi các tài liệu Việt Nam dịch chưa chuẩn xác các thuật ngữ chuyên ngành sẽ gây cho bạn nhiều khó khăn hơn.

Hướng dẫn tải và cài đặt Wireshark

Tải và cài đặt Wireshark tương đối dễ dàng. Phiên bản cơ bản hiện đang hoàn toàn miễn phí.

Đối với Windows

Phần mềm này có hỗ trợ Windows phiên bản 32 bit và 64 bit. Hãy chọn phiên bản chính xác cho hệ điều hành đang sử dụng. Tính đến thời điểm viết thì Wireshark 3.4.5 là phiên bản mới nhất.

Dành cho Windows phiên bản mới nhất

TẢI WireShark CHO WINDOWS

Đối với macOS

Bản cài đặt chính thức cho macOS đã được hỗ trợ trên trang chủ, bạn chỉ việc download và mở file .dmg để bắt đầu cài đặt, kéo thả biểu tượng của Wireshark vào thư mục /Applications để hoàn tất.

TẢI WireShark CHO MAC

Đối với Ubuntu

Từ terminal prompt, chạy lệnh sau:

sudo apt-get install wireshark
sudo dpkg-reconfigure Wireshark-common
sudo adduser $USER wireshark

Các lệnh giúp tải package xuống, update package và thêm các đặc quyền cho người dùng để khởi chạy.

Đối với RedHat Fedora

Từ Terminal Prompt, chạy lệnh sau:

sudo dnf install Wireshark-qt
sudo usermod -a -G Wireshark username

Trong đó, dòng lệnh đầu tiên sẽ cài đặt GUI và phiên bản CLI của WireShark. Dòng lệnh thứ hai sẽ thêm quyền sử dụng cho nó, thay username thành user hiện tại bạn đang sử dụng.

Đối với Kali Linux

Hiện tại, Wireshark đã được cài đặt sẵn trong các bản phân phối Kali Linux. Hãy kiểm tra menu ở option “Sniffing & Spoofing” để sử dụng.

Hướng dẫn sử dụng Wireshark

Sử dụng Wireshark để bắt gói tin

Sau khi download và cài đặt, ta có thể khởi động nó bằng cách double-click vào tên của Network interface trong danh sách phía dưới “Capture” để bắt đầu bắt gói tin trên card mạng đó. Đường biểu diễn phía sau tên Interface thể hiện lưu lượng mạng đang sử dụng.

Ví dụ: Nếu muốn bắt gói tin trong mạng wifi, hãy double click vào “Wi-Fi” (hoặc “Wireless Interface”). Ngoài ra, chúng ta cũng có thể thiết lập các biểu thứ ở phần “…using this filter” để lọc và capture những packet chỉ định khi thỏa mãn yêu cầu.

Bắt gói tin mạng wifi

Sau đó, các packet sẽ bắt đầu hiển thị theo thời gian thực. Wireshark sẽ capture từng packet được gửi đến hoặc đi từ hệ thống của ta.

Nếu chế độ Promiscuous được enable (theo mặc định), ta cũng có thể xem tất cả các packet khác trên mạng thay vì chỉ các packet được gửi đến network adapter của mình.

Để kiểm tra chế độ Promiscuous, click vào Capture > Options và kiểm tra xem hộp “Enable promiscuous mode on all interfaces” có được kích hoạt chưa (nằm ở dưới cùng của cửa sổ).

Click vào nút “Stop” màu đỏ (ở góc trên bên trái của cửa sổ – hoặc chọn “Capture > Stop”) nếu muốn dừng việc capture lại.

Dừng bắt gói tin

Ngoài cách bắt gói tin và sử dụng giao diện như trên, bạn cũng có thể dùng cách bắt gói tin bằng cách sử dụng command line được đề cập ở phần nâng cao phía dưới bài viết.

Giao diện WireShark

Bạn sẽ dành rất nhiều thời gian để thao tác trên giao diện chính của phần mềm này. Đây là nơi liệt kê danh sách các packet đã được capture, parse và thể hiện dưới định dạng mà chúng ta có thể dễ dàng đọc thông tin và phân tích chúng.

Giao diện gồm: Packet List, Packet Detail, Packet Byte

Giao diện chính của Wireshark được chia thành 3 phần:

  • Packet List: Chứa danh sách toàn bộ packet của file capture hiện tại. Nó thể hiện số thứ tự của gói tin, thời gian mà mà gói tin được bắt, source và destination IP, protocol của packet, chiều dài gói tin và các thông tin tổng quan khác.
  • Packet Details: Khi bạn chọn một gói tin ở phần Packet List, thông tin chi tiết của gói tin sẽ được thể hiện ở phần Packet Detail. Các thông tin chi tiết có thể được collapsed hoặc expanded bằng cách click vào mũi tên hình tam giác ở đầu dòng.
  • Packet Bytes: Thể hiện packet ở định dạng raw dưới dạng hex hoặc binary. Thể hiện cách mà packet được truyền trên đường truyền.

Mở gói tin và lưu gói tin

Để mở gói tin bằng Wireshark, chọn “File > Open” và tìm đến đường dẫn của file cần mở.

Mở gói tin

Để lưu gói tin đã capture, click vào “File > Save”, sau đó chọn dường dẫn để lưu trữ, đặt tên cho file capture và định dạng sẽ lưu.

Cách lọc các gói tin trong phần mềm Wireshark

Hãy khám phá cách sử dụng Wireshark để lọc gói tin. Trong tình huống khi chúng ta muốn theo dõi lưu lượng truy cập của một ứng dụng thực hiện cuộc gọi điện về nhà, Wireshark có khả năng tạm thời đóng tất cả các ứng dụng khác đang sử dụng mạng, giúp người dùng giảm thiểu lưu lượng truy cập. Tuy nhiên, lưu ý rằng người dùng sẽ phải xử lý một lượng lớn gói dữ liệu cần được lọc.

Một cách cơ bản để sử dụng Wireshark để lọc là nhập điều kiện vào hộp bộ lọc ở đầu cửa sổ và sau đó nhấp vào Apply hoặc nhấn Enter. Ví dụ, nếu bạn nhập dns vào bộ lọc, chỉ các gói tin DNS sẽ được hiển thị. Wireshark cung cấp chức năng tự động hoàn thành bộ lọc khi bạn bắt đầu nhập.

Ngoài ra, bạn cũng có thể truy cập Analyze > Display Filters để chọn các bộ lọc mặc định của Wireshark hoặc thêm bộ lọc mới và lưu chúng để sử dụng sau này.

Khi muốn xem chi tiết một cuộc trò chuyện TCP giữa máy khách và máy chủ, bạn có thể chuột phải vào một tệp và chọn Follow > TCP Stream. Điều này sẽ hiển thị cuộc trò chuyện TCP đầy đủ. Bạn cũng có thể theo dõi các cuộc trò chuyện của các giao thức khác để hiểu rõ hơn về cách chúng hoạt động.

Sau khi áp dụng bộ lọc, Wireshark sẽ tự động hiển thị các gói tin liên quan đến cuộc trò chuyện, giúp bạn hiểu rõ cách lọc gói tin trong Wireshark.

Cách Color Coding trong Wireshark

Trên máy tính của chúng ta, Wireshark sử dụng màu sắc để đánh dấu các gói tin, giúp người dùng nhanh chóng xác định các loại lưu lượng khi thực hiện truy cập. Các màu sắc mặc định trong Wireshark có các ý nghĩa như sau:

  • Màu tím nhạt: Đại diện cho lưu lượng TCP.
  • Màu xanh dương nhạt: Biểu thị lưu lượng UDP.
  • Màu đen: Chỉ các gói tin có lỗi.

Để hiểu rõ hơn về ý nghĩa cụ thể của từng màu, bạn có thể truy cập mục View > Coloring Rules trong Wireshark. Ngoài ra, người dùng cũng có khả năng tự tùy chỉnh màu sắc theo ý muốn cá nhân thông qua cách thức Color Coding trong Wireshark.

Cách kiểm tra gói tin trong Wireshark

Để kiểm tra gói tin trong máy tính sử dụng Wireshark, chúng ta bắt đầu bằng cách nhấp chuột vào một gói tin cụ thể. Sau đó, để tạo một bộ lọc, có thể nhấp chuột phải vào bất kỳ chi tiết nào trong gói tin và sử dụng menu con Apply as Filter để tạo bộ lọc dựa trên thông tin đó. Việc tự tạo bộ lọc giúp người dùng tập trung vào các gói tin cụ thể và thuận tiện trong quá trình phân tích dữ liệu mạng.

Phân tích gói tin với Wireshark

Tìm kiếm gói tin (Find Packet)

Để tìm kiếm gói tin, chúng ta có thể sử dụng thanh công cụ “Find Packet” bằng cách bấm phím Ctrl + F, một hộp thoại mới sẽ xuất hiện nằm giữa thanh Filter và Packet List:

Tìm kiếm gói tin

Chúng ta có thể tìm kiếm packet dựa vào:

  • Display Filter: nhập vào một biểu thức filter (expression-based filter), Wireshark sẽ tìm kiếm các gói tin khớp với biểu thức này.
  • Hex value: Tìm kiếm dựa trên giá trị Hex.
  • String: tìm kiếm dựa trên chuỗi dữ liệu.
  • Regular Expression: Tìm kiếm dựa trên biểu thức Regex.

Tip: Sử dụng Ctrl + N để đi đến kết quả tiếp theo, Ctrl + B để lùi lại kết quả trước đó.

OptionsVí dụ
Display filtertcp.src port==80
hoặc
ip.src==192.168.1.1
Hex010108ffff
StringQuantrilinux.vn
hoặc
GET /
Regular ExpressionGET .* HTTP

Wireshark Filter

Filter cho phép bạn lọc ra những packet nào sẽ dùng để phân tích. Sử dụng Wireshark filter bằng cách khai báo một biểu thức để quy định việc thêm vào (inclusion) hoặc loại bỏ (exclusion) các gói tin. Nếu có những gói tin bạn không cần phân tích, có thể viết filter để loại bỏ chúng. Ngược lại, có những gói tin quan trọng bạn muốn phân tích kỹ, có thể viết filter để lọc riêng chúng ra. Có hai loại filter chính:

  • Capture Filters: Chỉ định các packet sẽ được capture và quá trình bắt gói tin chỉ capture những packet thỏa điều kiện này.
  • Display filters: Áp dụng filter lên các gói tin đã được capture, mục tiêu là để ẩn đi những packet không cần thiết và chỉ thể hiện những packet thỏa điều kiện chỉ định.

Capture FilterDisplay Filter sử dụng cấu trúc ngữ pháp khác nhau nên chúng ta sẽ xem xét chi tiết từng loại.

Capture Filter

Được áp dụng trong quá trình bắt gói tin để giới hạn số lượng gói tin sẽ được bắt. Lý do chính để sử dụng filter này nhằm cải thiện performance và giới hạn số lượng dữ liệu capture được chỉ chứa các thông tin chúng ta quan tâm, giúp việc phân tích trở nên hiệu quả hơn. Điều này cực kỳ hữu ích khi áp dụng bắt gói tin bằng Wireshark trên các hệ thống có lưu lượng mạng cao, dữ liệu trao đổi lớn.

Chúng ta có thể khai báo biểu thức cho Capture Filter ở “Capture > Capture Filters” hoặc khai báo ở phần “…using this filter” khi lựa chọn card mạng:

Khai báo Capture Filter

Wireshark Capture Filter sử dụng cú pháp của Berkeley Packet Filter (BPF):

  • Mỗi filter gọi là một expression.
  • Mỗi expression chứa một hoặc nhiều primitives. Các primitives được kết hợp với nhau bằng các “Logical Operator” như AND (&&), OR (||) và NOT (!) .
  • Mỗi primitives chứa một hoặc nhiều qualifiers, theo sau là một ID name hoặc number. Các BPF Qualifiers bao gồm:
QualifiersMô tảVí dụ
TypeChỉ định ID name hoặc number ta sẽ tham chiếuhost, net, port
DirChỉ định hướng của dữ liệu (transfer direction)src, dst
ProtoProtocolether, ip, tcp, udp, http, ftp
  • Cú pháp tổng quan: Bắt các gói tin gửi đến host 192.168.0.10 và sử dụng giao thức TCP, port 80:
Cú pháp tổng quan để bắt gói tin

Một vài Wireshark Expression tham khảo cho phần Capture Filter:

ExpressionÝ nghĩa
host 172.18.5.4Wireshark filter by IP: Bắt gói tin liên quan đến IP 172.18.5.4
src 192.168.0.10Wireshark filter source IP: Bắt các gói tin có source IP là 192.168.0.10
dst 192.168.0.1Wireshark filter destination IP: Bắt các gói tin có destination IP là 192.168.0.1
net 192.168.0.0/24
hoặc:
net 192.168.0.0 mask 255.255.255.0
Bắt gói tin liên quan đến subnet 192.168.0.0/24
src net 192.168.0.0/24
hoặc:
src net 192.168.0.0 mask 255.255.255.0
Bắt các gói tin có source IP thuộc subnet 192.168.0.0/24
dst net 192.168.0.0/24
hoặc:
dst net 192.168.0.0 mask 255.255.255.0
Bắt các gói tin có destination IP thuộc subnet 192.168.0.0/24
port 53Wireshark port filter: Bắt gói tin DNS
port 67 or port 68Bắt gói tin DHCP
host 192.168.1.1 and not (port 80 or 443)
hoặc:
host 192.168.1.1 and not port 80 and not port 443
Capture tất cả traffic liên quan đến IP 192.168.1.1 nhưng không phải traffic HTTP/HTTPS
(tcp[0:2] > 1500 and tcp[0:2] < 1550) or (tcp[2:2] > 1500 and tcp[2:2] < 1550)
hoặc:
tcp portrange 1501-1549
Capture các packet nằm trong range port từ 1501-1549
ipWireshark IPv4 filter
ip6Wireshark IPv6 filter
tcpBắt gói tin TCP
udpBắt gói tin UDP
icmpBắt gói tin ICMP
httpWireshark HTTP filter
httpsWireshark HTTPS filter
tcp[13] & 32 == 32TCP packets với cờ URG được bật
tcp[13] & 16 == 16TCP packets với cờ ACK được bật
tcp[13] & 8 == 8TCP packets với cờ PSH được bật
tcp[13] & 4 == 4TCP packets với cờ RST được bật
tcp[13] & 2 == 2TCP packets với cờ SYN được bật
tcp[13] & 1 == 1TCP packets với cờ FIN được bật
icmp[0:2] == 0x0301ICMP destination unreachable, host unreachable

Display Filter

Display Filter giúp lọc ra những packet thỏa điều kiện trong file capture để thể hiện lên cho người dùng. Display filter chỉ lọc và thể hiện packet thỏa điều kiện chứ không xóa bỏ những packet không thỏa điều kiện, dữ liệu trong file capture hoàn toàn không bị ảnh hưởng.

Sử dụng Display Filter bằng cách nhập biểu thức (expression) vào Filter textbox phía trên phần Packet List. Bạn cũng có thể nhấp vào phần “Expression” để lựa chọn các pre-defined filters có sẵn ứng với từng giao thức.

Nhập expression vào Filter textbox

Cú pháp của Wireshark Display Filter phần lớn tuân theo cú pháp:

protocol.feature.subfeature COMPARISION_OPERATOR value LOGICAL_OPERATOR protocol.feature.subfeature COMPARISION_OPERATOR value

Ví dụ: ip.addr==192.168.0.1 and tcp.flags.syn==1

Trong đó, Comparison Operators bao gồm:

OperatorÝ nghĩa
==Bằng (equal to)
!=Không bằng (not equal to)
>Lớn hơn (greater than)
<Nhỏ hơn
>=Lớn hơn hoặc bằng (greater than or equal)
<=Nhỏ hơn hoặc bằng (less than or equal)

Logical Operators bao gồm:

OperatorÝ nghĩa
andtất cả các điều kiện phải được thỏa mãn
ormột trong các điều kiện được thoả mãn
xormột và chỉ một điều kiện được thỏa mãn
notkhông điều kiện nào được phép thảo mãn

Một vài Wireshark Expression tham khảo cho phần Display Filter:

ExpressionÝ nghĩa
tcp.port eq 25 or icmpLọc gói tin TCP liên quan port 25 hoặc sử dụng giao thức ICMP
ip.src==192.168.0.0/16 and ip.dst==192.168.0.0/16Lọc traffic trao đổi trong mạng LAN của subnet 192.168.0.0/16
tcp.window_size == 0 && tcp.flags.reset != 1TCP buffer full và source kết nối báo hiệu cho Destination ngừng gửi dữ liệu
udp contains 81:60:03UDP packet chứa 3 bytes 81:60:03 ở vị trí bất kỳ trong header hoặc payload
http.request.uri matches “gl=se$”HTTP request có URL tận cùng bằng chuỗi “gl=se”
ip.addr == 192.168.0.1
hoặc:
ip.src == 192.168.0.1 or ip.dst == 192.168.0.1
Wireshark filter by ip: Lọc tất cả traffic liên quan đến IP 192.168.0.1
! ( ip.addr == 192.168.0.1 )
hoặc:
! (ip.src == 192.168.0.1 or ip.dst == 192.168.0.1)
Lọc tất cả traffic KHÔNG liên quan đến IP 192.168.0.1
tcp.flags.syn == 1Các gói tin TCP có cờ SYN được bật
tcp.flags.syn == 1 && tcp.flags.ack == 1Các gói tin TCP có cờ SYN/ACK được bật
http.host == “quantrilinux.vnHTTP request có Host header là “quantrilinux.vn”
http.response.code == 404Các HTTP request có response status code là 404
smtp || imap || popTraffic liên quan đến email (SMTP, IMAP, POP)
! tcp.port == 22Loại bỏ traffic SSH
! arpLoại bỏ traffic ARP
ip.version == 4Wireshark IPv4 filter: Lọc tất cả các gói tin IP version 4
tcp.srcport == 80Wireshark port filter: Lọc tất cả gói tin TCP có source port là 80
tcp.port == 80Lọc tất cả các gói tin có liên quan đến port 80
udp.port == 67 or udp.port == 68Traffic DHCP
dnsFilter traffic liên quan DNS
httpWireshark http filter
httpsWireshark https filter
ip.src == 192.168.0.1Wireshark filter source ip
ip.dst == 192.168.0.1Wireshark filter destination ip
Ví dụ Display Filter

Ngoài ra, người dùng có thể Click vào Analyze > Display Filters để chọn một filter trong các filter mặc định. Từ đây, ta có thể thêm hoặc custom các filter và lưu chúng để có thể dễ dàng truy cập sau này.

Chọn Filter mặc định trong WireShark

Một tính năng hữu ích khác là “Follow TCP stream”, chọn một packet rồi click chuột phải vào packet chọn “Follow > TCP Stream”. Sau đó, một hộp thoại sẽ hiện ra cho thấy dữ liệu trao đổi giữa Client và Server trong luồng tương ứng và các packet liên quan. Ta có thể click vào các giao thức khác trong menu Follow để xem đầy đủ các đoạn hội thoại, nếu có thể.

Xem đầy đủ đoạn hội thoại trong Display Filter

Cuối cùng, đóng cửa sổ lại và một filter sẽ được áp dụng tự động. Bây giờ, Wireshark đang hiển thị các packet tạo nên đoạn hội thoại đó.

Hiển thị các packet trong đoạn hội thoại

Cách đọc gói tin trong Wireshark

Click vào một packet để chọn nó, sau đó xem thêm chi tiết về nó.

Phân tích chi tiết gói tin

Ở khung cửa sổ Paket List sẽ cung cấp cho chúng ta các thông tin như:

  • No: Số thứ tự của gói tin trong file capture hiện tại.
  • Time: Thời gian tương đối mà gói tin này được bắt, tính từ lúc bắt đầu quá trình bắt gói tin.
  • Source: địa chỉ source IP của kết nối.
  • Destination: địa chỉ destination IP của kết nối.
  • Length: chiều dài của gói tin.
  • Protocol: giao thức của gói tin
  • Info: các thông tin tổng quan liên quan đến gói tin.

Ở khung cửa sổ của Packet Details sẽ cho ta thông tin chi tiết từng Layer của packet như:

  • Frame: Interface
  • Ethernet: Destination, Source, Mac Address
  • Internet: Source IP, Destination IP, TTL, Protocol, Flags, Checksum, Identification, Total Length…
  • TCP/UDP/ICMP: Source Port, Destination Port, Sequence Number, ACK Number, Flags, TCP Options …
  • Application Layer: HTTP, DNS, SMTP…

Chúng ta có thể click vào hình mũi tên ở đầu mỗi dòng để thể hiện thêm thông tin chi tiết.

Ở khung cửa sổ của Packet Bytes thể hiện gói tin ở dạng Hex. Khi chúng ta click chọn 1 trường nào đó ở phần Packet Details, những bytes liên quan đến phần đó sẽ được tô đậm ở phần Packet Bytes tương ứng.

Phân tích gói tin bằng Wireshark

Ta cũng có thể tạo thêm các filter ở đây. Chỉ cần click chuột phải vào một trong số các chi tiết, rồi chọn Apply as Filter để tạo một filter dựa theo đó.

Tạo filter

WireShark nâng cao

Bên cạnh khả năng capture và filter nổi tiếng, còn có một số tính năng Wireshark nâng cao khác biến đây trở thành công cụ lợi hại cho các nhà quản trị mạng và phân tích bảo mật.

Tùy chọn chỉnh màu trong WireShark

Người dùng có thể tô màu cho các packet ở trong Packet List theo Display Filter, nhằm nhấn mạnh các packet cần đánh dấu. Ta cũng có thể thêm vào các quy tắc ở đây để tô màu cho các packet theo chỉ định.

Tùy chỉnh màu trong Packet List

Chế độ Promiscuous trong WireShark

Theo mặc định, Wireshark chỉ capture các packet đến và đi từ máy tính mà nó chạy. Tuy nhiên, ta có thể chỉnh chạy ở Promiscuous Mode trong Capture Settings. Khi đó, ngoài việc capture các packet được chỉ định cho nó, máy chạy Wireshark cũng có thể capture được các packet khác không dành cho nó, thay vì loại bỏ chúng.

Wireshark Statistics

Phần menu Statistic cung cấp những thông tin thống kê có giá trị liên quan đến file capture hiện tại như:

  • Capture File Properties: Các thông số tổng quan của file capture
  • Protocol Hierarchy: Tổng quan về protocol
  • Conversation: thông tin về các luồng trao đổi giữa client và server
  • Endpoints: Danh sách những IP tham gia kết nối, số lượng packets và bytes tương ứng.
  • Packet Lengths: Thống kê về chiều dài của các gói tin tham gia kết nối.
  • I/0 Graph: biểu đồ kết nối.
  • Thống kê liên quan đến các giao thức như: HTTP, HTTP2, DNS, DHCP…
  • IPv4/IPv6 Statistics: thống kê về danh sách IP, số lượng packet, tần số kết nối.
Thống kê kết nối IPv4

Wireshark Command Line

Ứng dụng cũng hỗ trợ một Command Line Interface (CLI) nếu hệ điều hành đang sử dụng không có một GUI. Cách kết hợp hiệu quả nhất là dùng CLI để capture, rồi lưu lại bản log để có thể reivew bằng GUI.

Các lệnh trong Wireshark

  • wireshark: chạy trong chế độ GUI
  • wireshark -h: hiển thị tham số command line khả dụng
  • wireshark -a duration:300 -i eth1 -w Wireshark: capture các lưu lượng trên Ethernet interface 1 trong 5 phút (300 giây). -a là tự động (auto) dừng việc capture. -i chỉ định interface sẽ capture

Lời kết

Wireshark là gì? Wireshark là một công cụ phân tích và đánh giá hệ thống mạng cực kì mạnh mẽ. Nếu bạn sử dụng nó với mục đích rõ ràng. Hy vọng bài viết về tài liệu hướng dẫn sử dụng Wireshark toàn tập từ căn bản đến nâng cao này của mình sẽ giúp các bạn sử dụng Wireshark một cách thuần thục và hiệu quả hơn. Nếu có bất kỳ khó khăn hoặc thắc mắc cần hỗ trợ, đừng ngần ngại hãy comment bên dưới để mình hỗ trợ bạn nhé!

Mọi thắc mắc xin hãy liên hệ
Email: [email protected]

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button