Tôi đã viết một ứng dụng máy chủ đơn giản bằng C chạy trên localhost. Làm thế nào để nắm bắt lưu lượng truy cập localhost bằng Wireshark?
Tôi đã viết một ứng dụng máy chủ đơn giản bằng C chạy trên localhost. Làm thế nào để nắm bắt lưu lượng truy cập localhost bằng Wireshark?
Câu trả lời:
Nếu bạn đang sử dụng Windows thì không thể - hãy đọc phần bên dưới. Thay vào đó, bạn có thể sử dụng địa chỉ cục bộ của máy và sau đó bạn sẽ có thể chụp được nội dung. Xem CaptureSetup / Loopback .
Tóm tắt: bạn có thể chụp trên giao diện loopback trên Linux, trên nhiều BSD khác nhau bao gồm Mac OS X và Digital / Tru64 UNIX, và bạn có thể thực hiện trên Irix và AIX, nhưng bạn chắc chắn không thể làm như vậy trên Solaris, HP -UX ... .
Mặc dù trang đề cập rằng điều này không thể thực hiện được trên Windows chỉ sử dụng Wireshark, nhưng bạn thực sự có thể ghi lại bằng cách sử dụng một giải pháp khác như đã đề cập trong một câu trả lời khác .
CHỈNH SỬA: Khoảng 3 năm sau, câu trả lời này không còn hoàn toàn đúng nữa. Trang được liên kết chứa các hướng dẫn để nắm bắt trên giao diện lặp lại .
Vì một số lý do, không có câu trả lời nào trước đây phù hợp với trường hợp của tôi, vì vậy tôi sẽ đăng một cái gì đó có tác dụng. Có một viên ngọc nhỏ gọi là RawCap có thể nắm bắt lưu lượng máy chủ cục bộ trên Windows. Ưu điểm:
Sau khi lưu lượng truy cập đã được nắm bắt, bạn có thể mở nó và kiểm tra trong Wireshark bình thường. Điểm bất lợi duy nhất mà tôi thấy là bạn không thể đặt bộ lọc, tức là bạn phải nắm bắt tất cả lưu lượng localhost có thể rất nặng. Cũng có một lỗi liên quan đến Windows XP SP 3.
Vài lời khuyên khác:
Trên nền tảng Windows, cũng có thể nắm bắt lưu lượng máy chủ cục bộ bằng cách sử dụng Wireshark. Những gì bạn cần làm là cài đặt bộ điều hợp loopback của Microsoft , sau đó tìm kiếm nó.
Tôi chưa thực sự thử điều này, nhưng câu trả lời này từ web nghe có vẻ đầy hứa hẹn:
Wireshark thực sự không thể nắm bắt các gói cục bộ trên windows XP do bản chất của ngăn xếp TCP cửa sổ. Khi các gói được gửi và nhận trên cùng một máy, chúng dường như không vượt qua ranh giới mạng mà wirehark giám sát.
Tuy nhiên, có một cách để giải quyết vấn đề này, bạn có thể định tuyến lưu lượng cục bộ ra ngoài qua cổng mạng (bộ định tuyến) bằng cách thiết lập một tuyến tĩnh (tạm thời) trên máy windows XP của bạn.
Giả sử địa chỉ IP XP của bạn là 192.168.0.2 và địa chỉ cổng vào (bộ định tuyến) của bạn là 192.168.0.1, bạn có thể chạy lệnh sau từ dòng lệnh windows XP để buộc tất cả lưu lượng cục bộ ra và trở lại qua ranh giới mạng, do đó, wirehark có thể theo dõi dữ liệu (lưu ý rằng wirehark sẽ báo cáo các gói hai lần trong trường hợp này, một lần khi chúng rời khỏi máy tính của bạn và một lần khi chúng quay trở lại).
route add 192.168.0.2 mask 255.255.255.255 192.168.0.1 metric 1
http://forums.whirlpool.net.au/archive/1037087 , vừa được truy cập.
Vui lòng thử Npcap: https://github.com/nmap/npcap , nó dựa trên WinPcap và hỗ trợ thu thập lưu lượng lặp lại trên Windows. Npcap là một dự án con của Nmap ( http://nmap.org/ ), vì vậy vui lòng báo cáo bất kỳ vấn đề nào trong danh sách phát triển của Nmap ( http://seclists.org/nmap-dev/ ).
Starting from Windows Vista: Npcap is an update of WinPcap using NDIS 6 Light-Weight Filter (LWF), done by Yang Luo for Nmap project during Google Summer of Code 2013 and 2015. Npcap has added many features compared to the legacy WinPcap.
Bạn có thể xem trực tiếp lưu lượng truy cập lặp lại trong Wireshark bằng cách đọc nó đầu ra của RawCap ngay lập tức. cmaynard mô tả cách tiếp cận khéo léo này tại các diễn đàn Wireshark . Tôi sẽ trích dẫn nó ở đây:
[...] nếu bạn muốn xem lưu lượng truy cập trực tiếp trong Wireshark, bạn vẫn có thể thực hiện bằng cách chạy RawCap từ một dòng lệnh và chạy Wireshark từ một dòng lệnh khác. Giả sử bạn có đuôi của cygwin, điều này có thể được thực hiện bằng cách sử dụng một cái gì đó như sau:
cmd1: RawCap.exe -f 127.0.0.1 dumpfile.pcap
cmd2: tail -c +0 -f dumpfile.pcap | Wireshark.exe -k -i -
Nó yêu cầu đuôi của cygwin và tôi không thể tìm ra cách thực hiện việc này bằng các công cụ có sẵn của Windows. Cách tiếp cận của anh ấy hoạt động rất tốt đối với tôi và cho phép tôi sử dụng tất cả các khả năng lọc của Wiresharks trên lưu lượng truy cập vòng lặp được chụp trực tiếp.
stdout
. Vì vậy, cho đến ngày hôm nay, giải pháp được cung cấp ở trên có thể được đơn giản hóa như sau, không tail
bắt buộc: RawCap.exe -q 127.0.0.1 - | Wireshark.exe -i - -k
Bạn có thể đọc thêm về các tính năng RawCap mới trên trang thông báo RawCap Redux tại đây: netresec.com/?page=Blog&month=2020-01&post=RawCap -Redux
Đối với Windows ,
Tuy nhiên, bạn không thể nắm bắt các gói cho Local Loopback trong Wireshark , bạn có thể sử dụng một chương trình rất nhỏ nhưng hữu ích có tên là RawCap ;
Chạy RawCap trên dấu nhắc lệnh và chọn Loopback Pseudo-Interface (127.0.0.1), sau đó chỉ cần viết tên của tệp chụp gói ( .pcap )
Một bản demo đơn giản như dưới đây;
C:\Users\Levent\Desktop\rawcap>rawcap
Interfaces:
0. 169.254.125.51 Local Area Connection* 12 Wireless80211
1. 192.168.2.254 Wi-Fi Wireless80211
2. 169.254.214.165 Ethernet Ethernet
3. 192.168.56.1 VirtualBox Host-Only Network Ethernet
4. 127.0.0.1 Loopback Pseudo-Interface 1 Loopback
Select interface to sniff [default '0']: 4
Output path or filename [default 'dumpfile.pcap']: test.pcap
Sniffing IP : 127.0.0.1
File : test.pcap
Packets : 48^C
Bạn không thể chụp lặp lại trên Solaris, HP-UX hoặc Windows, tuy nhiên, bạn có thể dễ dàng khắc phục hạn chế này bằng cách sử dụng một công cụ như RawCap .
RawCap có thể nắm bắt các gói thô trên bất kỳ ip nào bao gồm 127.0.0.1
(localhost / loopback). Rawcap cũng có thể tạo một pcap
tệp. Bạn có thể mở và phân tích pcap
tệp bằng Wireshark .
Xem tại đây để biết chi tiết đầy đủ về cách giám sát localhost bằng RawCap và Wireshark.