Wireshark là trình phân tích gói được biết đến nhiều nhất và được sử dụng rộng rãi nhất trên toàn thế giới. Nhờ chương trình này, chúng tôi sẽ có thể nắm bắt và phân tích chi tiết tất cả lưu lượng mạng đi vào và rời khỏi PC của chúng tôi, ngoài ra, chúng tôi phải nhớ rằng nó là đa nền tảng, điều này có nghĩa là nó có sẵn cho Cửa sổ, Linux, macOS, Solaris, FreeBSD, NetBSD và những thứ khác. Hôm nay trong bài viết này chúng tôi sẽ hướng dẫn bạn một cách cơ bản, cách thực hiện thu thập lưu lượng và cách phân tích lưu lượng mạng để xem có bất kỳ loại bất thường nào không.
Các tính năng chính của Wireshark
Chương trình này, hoàn toàn miễn phí, cho phép chúng tôi thực hiện kiểm tra sâu hàng trăm giao thức, vì nó hỗ trợ các giao thức của lớp vật lý, liên kết, giao thức mạng, lớp vận chuyển và cả lớp ứng dụng. Nó sẽ cho phép chúng tôi chụp trong thời gian thực và khi chúng tôi đã hoàn tất việc bắt tất cả các gói nhập và rời card mạng có dây hoặc không dây, chúng tôi có thể thực hiện phân tích chuyên sâu ngoại tuyến, nghĩa là trên một máy tính khác (hoặc trong giống nhau) và bất cứ lúc nào.

Wireshark cho phép xem tất cả lưu lượng truy cập được thu thập thông qua GUI bằng chính chương trình, tuy nhiên, chúng ta cũng có thể thấy tất cả thông tin được ghi lại bằng chương trình TShark, một công cụ hoạt động thông qua bảng điều khiển và sẽ cho phép chúng ta đọc mọi thứ thông qua dòng lệnh CLI, để xem mọi thứ qua SSH chẳng hạn. Một đặc điểm cơ bản của bất kỳ bộ phân tích gói nào là các bộ lọc, do đó nó chỉ cho chúng ta thấy những gì chúng ta muốn nó hiển thị cho chúng ta và không có thêm thông tin nào có thể tạo thêm công việc cho chúng ta.
Wireshark có khả năng đọc và viết ở các định dạng chụp khác nhau, chẳng hạn như tcpdump (libpcap), pcap ng và nhiều phần mở rộng khác, để thích ứng hoàn hảo với các chương trình khác nhau để phân tích thêm. Một khía cạnh quan trọng khác là việc chụp bị bắt có thể được nén bằng GZIP khi đang bay, và tất nhiên, giải nén nó khi đang bay cũng trong trường hợp chúng ta đang đọc bản chụp. Tất nhiên, nó có khả năng đọc dữ liệu từ các công nghệ mạng khác nhau như Ethernet, IEEE 802.11, PPP / HDLC, ATM, Bluetooth, USB, Token Ring, Frame Relay, FDDI và các công nghệ khác. Ngày nay chúng ta có nhiều giao thức với dữ liệu được mã hóa, với khóa riêng phù hợp, Wireshark có thể giải mã lưu lượng của các giao thức khác nhau như IPsec, ISAKMP, Kerberos, SNMPv3, SSL / TLS, WEP và WPA / WPA2.
Khi chúng tôi đã thấy các tính năng chính, chúng tôi sẽ tải xuống và cài đặt nó.
Tải về và cài đặt
Chương trình này hoàn toàn miễn phí, chúng tôi có thể truy cập trực tiếp vào trang web chính thức của Wireshark nơi bạn có thể tìm thấy các liên kết để tải về. Việc cài đặt chương trình này rất đơn giản, chúng ta chỉ cần làm theo từng bước của trình hướng dẫn cài đặt và khởi động lại máy tính khi hoàn tất. Wireshark là một chương trình được cập nhật liên tục, vì vậy chúng tôi khuyên bạn nên luôn cài đặt phiên bản mới nhất trên máy tính của chúng tôi để thưởng thức những tin tức mới nhất.
Nếu bạn có một hệ điều hành dựa trên Linux, rất có khả năng trong trình quản lý gói của bạn, bạn có Wireshark và bạn chỉ cần chạy một lệnh như thế này:
sudo apt install wireshark
Khi chúng tôi đã thấy cách tải xuống và cài đặt Wireshark, chúng tôi sẽ sử dụng nó để thu thập dữ liệu.
Chụp lưu lượng truy cập với Wireshark trong Windows 10
Chúng tôi đã sử dụng hệ điều hành Windows 10 để thực hiện thu thập lưu lượng, nhưng trên hệ thống Linux hoặc macOS thì hoàn toàn giống nhau, vì chúng tôi có giao diện người dùng đồ họa giống hệt nhau. Điều đầu tiên chúng ta sẽ thấy khi khởi động chương trình này là tất cả các card mạng và giao diện mạng của máy tính, trong trường hợp của chúng ta, chúng ta có tổng cộng ba card mạng có dây (ASUS XG-C100C, Realtek 2.5G và Intel 1G), mạng Wi-Fi một thẻ (WiFi 2), ngoài ra, chúng tôi có các giao diện mạng ảo khác nhau tương ứng với giao diện VMware và Virtual Box.
Wireshark cho phép chúng tôi nắm bắt lưu lượng của bất kỳ card mạng nào, dù là vật lý hay ảo, chúng tôi chỉ đơn giản là phải rõ ràng về loại card mạng nào hiện đang được sử dụng và từ đó chúng tôi muốn nắm bắt lưu lượng mạng. Trong trường hợp của chúng tôi, đó là ASUS XG-C100C, vì vậy chúng tôi chỉ cần nhấp đúp chuột vào thẻ này.

Nhấp đúp sẽ tự động bắt đầu nắm bắt tất cả lưu lượng truy cập mạng, cả trong và ngoài nước. Một số đề xuất TRƯỚC KHI thực hiện lưu lượng truy cập như sau:
- Đóng tất cả các chương trình tạo lưu lượng truy cập mạng mà chúng tôi không muốn nắm bắt
- Đảm bảo rằng tường lửa bị tắt, vì nó có thể chặn lưu lượng truy cập nhất định và nó sẽ không xuất hiện trong Wireshark hoặc chỉ một phần lưu lượng truy cập được tạo sẽ xuất hiện.
- Nếu chúng tôi muốn nắm bắt một số lưu lượng dữ liệu được tạo bởi một ứng dụng, bạn nên đợi 1 giây trước khi khởi động và để nắm bắt lưu lượng mạng từ máy tính, sau đó chúng tôi chạy ứng dụng đó và cuối cùng, chúng tôi đóng ứng dụng và đợi 1 giây trước dừng bắt lưu lượng.
Với những đề xuất này, chúng tôi chắc chắn rằng việc nắm bắt lưu lượng truy cập mà bạn thực hiện sẽ thành công.

Trong lưu lượng truy cập này, bạn có thể thấy lưu lượng truy cập từ các giao thức khác nhau, cả lưu lượng truy cập từ Giao thức Spanning-Tree của mạng, cũng như lưu lượng TCP và lưu lượng TLSv1.2 từ các ứng dụng khác nhau mà chúng tôi đã mở.

Với mỗi lần nhập dữ liệu, chúng tôi sẽ có thể hiển thị và xem chi tiết toàn bộ gói dữ liệu, cả ở cấp ứng dụng, vận chuyển, ở cấp mạng, liên kết và cả ở cấp vật lý, nghĩa là, Wireshark sẽ cung cấp cho chúng tôi thông tin theo lớp, để tìm thông tin chúng ta cần biết dễ dàng hơn.

Tất nhiên, nó cũng sẽ cho chúng ta biết cổng nguồn và cổng đích là gì nếu chúng ta sử dụng TCP hoặc UDP và thậm chí chúng ta có thể nhìn thấy trước các số thứ tự và nếu có RST trong kết nối hoặc nếu một phân đoạn phải chuyển tiếp do một vấn đề.

Trong ảnh chụp màn hình sau, bạn có thể thấy kết quả của việc thực hiện lệnh «nslookup www.redeszone.net» thông qua bảng điều khiển, hãy DNS yêu cầu tới máy chủ DNS của chúng tôi và nó sẽ tự động trả lời với độ phân giải DNS được tạo từ miền trước đó. Tất nhiên, lưu lượng này “trộn lẫn” với các lưu lượng khác mà chúng ta có trên máy tính của mình từ các ứng dụng khác nhau, vì lý do này, điều quan trọng là phải đóng tất cả các ứng dụng sử dụng kết nối Internet trước khi bắt đầu nắm bắt lưu lượng.

Tại đây bạn có thể thấy phản hồi của máy chủ DNS đối với yêu cầu DNS trước đó:

Nếu chúng ta thực hiện ping thông thường, sử dụng giao thức ICMP, nó cũng sẽ hiển thị cho chúng ta một cách hoàn hảo, nó sẽ hiển thị cho chúng ta cả «Yêu cầu Echo» và «Trả lời Echo».

Như bạn đã thấy, rất dễ dàng để thu thập dữ liệu với Wireshark để phân tích tất cả lưu lượng truy cập mạng. Nếu chúng ta muốn lưu bản chụp này, chúng ta chỉ cần nhấp vào nút Red Stop Stop để dừng việc ghi dữ liệu, sau đó nhấp vào Tập tin / Lưu lại để lưu nó.
Bản chụp này có thể được lưu trên máy tính của chúng tôi hoặc trên phương tiện bên ngoài để phân tích sau hoặc gửi cho chuyên gia có khả năng phát hiện sự cố, mặc dù bạn nên nhớ rằng nó sẽ có quyền truy cập vào tất cả lưu lượng truy cập đã chụp, vì vậy bạn phải gửi chụp này một người mà bạn tin tưởng. Nếu chúng tôi đã bắt được lưu lượng truy cập bằng TLS hoặc IPsec, bạn sẽ cần khóa giải mã tương ứng, vì vậy bạn không thể đọc dữ liệu mà không có thông tin này, điều tương tự cũng xảy ra đối với lưu lượng WPA / WPA2, không có khóa, bạn không thể đọc lưu lượng truy cập nội bộ.
Chúng tôi hy vọng rằng hướng dẫn này sẽ giúp bạn nắm bắt lưu lượng dữ liệu với chương trình tuyệt vời này và bạn sẽ có thể phát hiện các sự cố trên mạng.