Một số công cụ sniffer mạng hữu ích

08:30 | 19/06/2018

Sniffer là chương trình được sử dụng để chuẩn đoán và phát hiện lỗi trong hệ thống mạng và các vấn đề liên quan. Bài viết này giới thiệu một số công cụ sniffer mạng hữu ích.

Sniffer là gì?

Sniffer hay packet sniffer là một chương trình phần mềm nghe trộm gói tin (còn gọi là chương trình phân tích mạng, phân tích giao thức hay nghe trộm Ethernet), có khả năng chặn bắt và ghi lại lưu lượng dữ liệu qua một mạng viễn thông số hoặc một phần của một mạng. Khi các dòng dữ liệu di chuyển qua lại trong một mạng, chương trình sẽ chặn bắt các gói tin rồi giải mã và phân tích nội dung của nó theo đặc tả RFC hoặc các đặc tả thích hợp khác.

Tùy theo cấu trúc mạng (hub hay chuyển mạch) mà có thể nghe trộm tất cả hoặc chỉ một phần lưu lượng dữ liệu qua lại từ một máy trong mạng. Đối với mục đích giám sát mạng (network monitoring), có thể theo dõi tất cả các gói tin trong một mạng LAN bằng cách sử dụng một thiết bị chuyển mạch với một cổng theo dõi (lặp lại tất cả các gói tin đi qua các cổng của thiết bị chuyển mạch).

Khả năng của Sniffer

- Đối với mạng LAN có dây, phụ thuộc vào cấu trúc của mạng (sử dụng hub hay switch) để có thể chặn bắt toàn bộ hay một phần các thông tin trên mạng từ một nút duy nhất nằm trong mạng. Đối với hub, có thể chặn bắt tất cả các gói tin truyền tải qua mạng. Nhưng đối với switch, cần có một số phương thức đặc biệt như ARP snoofing.

- Đối với mạng LAN không dây, các gói tin được chặn bắt trên các kênh riêng biệt. Để một máy có thể chặn bắt thông tin trong mạng này, network adapter phải được đặt ở chế độ promiscuous mode.

Mục đích sử dụng Sniffer

Sử dụng Sniffer thường có 2 mục đích chính: kiểm tra bảo trì mạng và xâm nhập mạng. Cụ thể, Sniffer thường được sử dụng để:

- Phân tích các vấn đề của mạng.

- Phát hiện các cố gắng xâm nhập mạng.

- Thu thập thông tin để tăng hiệu quả một cuộc xâm nhập mạng.

- Theo dõi lưu lượng sử dụng mạng.

- Thu thập và lập báo cáo thống kê mạng.

- Lọc các nội dung đáng ngờ ra khỏi lưu lượng mạng.

- Do thám những người sử dụng mạng khác và thu thập thông tin nhạy cảm như mật khẩu (tùy theo các phương pháp mã hóa nội dụng được sử dụng).

- Kỹ thuật dịch ngược các giao thức truyền thông được sử dụng trên mạng.

- Tìm lỗi các giao tiếp khách/chủ.

Một số công cụ sniffer mạng

Wireshark

Wireshark là một công cụ kiểm tra, theo dõi và phân tích thông tin mạng được phát triển bởi Gerald Combs (người Mỹ). Phiên bản đầu tiên của Wireshark mang tên Ethereal được phát hành năm 1988. Đến nay, WireShark vượt trội về khả năng hỗ trợ các giao thức (khoảng 850 loại), từ những giao thức phổ biến như TCP, IP đến những loại đặc biệt như AppleTalk và BitTorrent. Các ưu điểm của phần mềm Wireshark bao gồm:

- Thân thiện với người dùng: Giao diện của Wireshark thân thiện, dễ sử dụng, đồ họa trực với hệ thống điều khiển rất rõ ràng và được bố trí hợp lý.

- Chi phí: Wireshark là một sản phẩm miễn phí, 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ợ kỹ thuật: Cộng đồng của Wireshark là một trong những cộng đồng tốt và năng động nhất trong các dự án mã nguồn mở.

- Hỗ trợ đa hệ điều hành: Wireshark hỗ trợ hầu hết các hệ điều hành hiện nay.

Từ những lợi ích Wireshark đem lại đã giúp nó trở nên phổ biến như hiện nay. Wireshark có thể đáp ứng nhu cầu của các nhà phân tích chuyên nghiệp và nghiệp dư.


Chương trình Wireshark

NetworkMiner

NetworkMiner là một công cụ phân tích điều tra mạng (Network Forensics Analysis Tool – NFAT) dành cho hệ điều hành Windows. NetworkMiner có thể được sử dụng như một công cụ chặn bắt gói tin thụ động nhằm nhận biết các hệ điều hành, các phiên làm việc, tên host, các port mở... mà không cần đặt bất cứ luồng dữ liệu nào lên mạng.

NetworkMiner cũng có thể phân tích các tệp tin pcap trong trường hợp ngoại tuyến và tái tạo các tập tin truyền tải, cấu trúc thư mục hay chứng chỉ từ tệp tin pcap. Mục đích của NetworkMiner là thu thập dữ liệu (chẳng hạn như chứng cứ) về các host trên mạng, chứ không thu thập dữ liệu về lưu lượng truy cập. Nó quan tâm đến trung tâm máy chủ (nhóm các thông tin trên từng máy) chứ không tập trung vào gói tin (thông tin về danh sách các gói tin, khung nhìn...). NetworkMiner là công cụ tiện dụng trong việc phân tích máy chủ C&C (Command & Control) hay khi kiểm soát lưu lượng truy cập từ mạng lưới botnet.


Chương trình Network Miner

Tcpdump

Đây là công cụ được phát triển nhằm mục đích phân tích các gói dữ liệu mạng theo dòng lệnh. Tcpdump cho phép người dùng chặn và hiển thị các gói tin được truyền đi hoặc được nhận trên một mạng mà máy tính có tham gia.

Tcpdump xuất ra màn hình nội dung các gói tin (chạy trên card mạng mà máy chủ đang lắng nghe) phù hợp với biểu thức logic chọn lọc mà người dùng nhập vào. Với từng loại tùy chọn khác nhau người dùng có thể xuất những mô tả về gói tin này ra file pcap để phân tích sau và có thể đọc nội dung của file pcap đó với option –r của lệnh tcpdump.

OmniPeek

OmniPeek là một công cụ giám sát hệ thống mạng mạnh mẽ nhằm phân tích các hoạt động mạng LAN hay kiểm tra hiệu suất của mạng của doanh nghiệp.

Việc quản lý mạng là một hoạt động đòi hỏi phải có kiến ​​thức chuyên sâu. Quản trị viên cần phải có thông tin thời gian thực về tất cả các máy tính kết nối và các cơ sở hạ tầng để khắc phục các lỗi khác nhau. Chương trình này được thiết kế để nắm bắt các hoạt động mạng và phân tích để hiển thị trạng thái hiện tại và số liệu thống kê cần thiết trong các hoạt động hàng ngày của một quản trị mạng. OmniPeek có tính năng là một giao diện trực quan cho phép người sử dụng dễ dàng nắm bắt các thông tin.

Để truy cập vào một số chi tiết, người dùng có thể lựa chọn một bảng điều khiển sẵn có từ công cụ. Ví dụ, có thể xem các địa chỉ IP sử dụng hầu hết các băng thông từ bảng điều khiển mạng, trong đó các tab cho phép phân tích lưu lượng dữ liệu. Các đồ thị sẽ hiển thị thống kê cho việc phân bố kích thước gói tin, các điểm truy cập không dây và các giao thức được sử dụng.

Nếu muốn kiểm tra các kết nối đến một máy tính nào đó, người dùng có thể gửi các gói dữ liệu bằng cách sử dụng các bộ chuyển đổi mạng có sẵn. Hơn nữa, quản trị viên có thể chia nhỏ gói dữ liệu hoặc sử dụng Tools Menu để giải mã các gói tin sử dụng mã hóa SSL.

Các tính năng của OmniPeek bao gồm:

- Phân tích lưu lượng truy cập của bất kỳ phân đoạn mạng (nội bộ hoặc từ xa), bao gồm Gigabit và các phân đoạn mạng WAN.

- Có khả năng phân tích tất cả các lỗ hổng đang hoạt động trong mạng.

- Có khả năng thay đổi các bộ lọc mà không cần khởi động lại Sniffer.

- Có khả năng hoàn thành phân tích tất cả các gói dữ liệu gửi/nhận.

- Có khả năng xem lưu lượng nội bộ, toàn cầu hoặc cả hai cùng một lúc.

- Tính linh hoạt độc đáo cho phép người dùng toàn quyền kiểm soát lưu lượng trên các phân khúc độc lập, cho phép các nhà thiết kế có thể xác định các vấn đề và vị trí của nó.


Chương trình OmniPeek

Foremost

Foremost là một chương trình điều khiển (console) dùng để khôi phục tệp tin dựa vào tiêu đề, phụ đề và các cấu trúc dữ liệu. Quá trình này thường được gọi là chạm khắc dữ liệu (data carving). Foremost có thể làm việc trên các tệp tin image, được tạo ra bởi các công cụ như dd, Safeback, Encase... hoặc trực tiếp từ trên ổ cứng. Tiêu đề và phụ đề có thể được xác định bởi một tệp tin cấu hình hoặc có thể sử dụng một switch dòng lệnh dựa trên dạng tệp tin tích hợp. Các dạng tích hợp này sẽ tra cứu cấu trúc dữ liệu của định dạng tệp tin được cung cấp nhằm đảm bảo việc phục hồi sẽ nhanh và đáng tin cậy hơn.

Scapy

Scapy là một công cụ thao tác với gói tin dùng cho mạng máy tính, được viết bằng Python bởi nhà nghiên cứu Philippe Biondi. Nó có thể giả mạo hoặc giải mã các gói tin, gửi lại trên đường truyền, chặn bắt và làm khớp các yêu cầu với phản hồi. Scapy cũng có thể xử lý những tác vụ khác như quét, truy vết, thăm dò, kiểm thử đơn vị, tấn công và phát hiện mạng.

Scapy cung cấp một giao diện Python vào libpcap (WinPCap trên Windows) theo một cách tương tự như cung cấp trong Wireshark với giao diện trực quan. Scapy cũng có thể giao tiếp với một số chương trình khác để cung cấp tính trực quan bao gồm cả Wireshark cho việc giải mã các gói tin, GnuPlot cho việc tạo đồ thị, graphviz hoặc Vpython cho việc hiển thị.