2011-09-06 19 views
8

Tôi đã sử dụng cả hai, và tôi kết luận rằng tôi có thể đọc dữ liệu html từ các trang web với tcpflow nhưng không thể làm như vậy với tcpdump. Điều tốt nhất tôi nhận được là một số văn bản ASCII xấu xí với nhiều ký hiệu thời gian.tcpdump vs tcpflow (hoặc "tại sao tcpdump dữ liệu gói ASCII không thể đọc được?")

Sự hiểu biết của tôi là tcpdump không tập hợp lại các gói, trong khi tcpflow thực hiện. Nhưng nếu đó là sự khác biệt quan trọng, liệu dữ liệu gói từ tcpdump vẫn có thể đọc được - chỉ trong những đoạn nhỏ hơn? Vấn đề mà tcpdump được giới hạn trong ASCII và lưu lượng truy cập mạng nhất được mã hóa bằng UTF-8?

Tôi là tân binh về phân tích/lập trình mạng nên hãy tha thứ cho tôi nếu tôi thiếu điều gì đó hiển nhiên.

+3

Chỉ cần sử dụng wireshark để đọc tệp chụp tcpdump, sau đó chọn gói trong phiên đang được đề cập. Bạn có thể sử dụng "Phân tích"> "Theo dõi luồng TCP" để có được kết xuất ASCII của toàn bộ luồng. –

Trả lời

11

Để nhận dữ liệu được mã hóa đó, bạn nên sử dụng tcpdump với tùy chọn tcpdump –A (vốn a). Nó chuyển văn bản mà không có bất kỳ tiêu đề và được sử dụng chủ yếu cho các trang web. Do đó chúng tôi nhận được trang phản hồi một cách dễ dàng.

Tôi nghĩ bạn đang nhầm lẫn giữa lớp ứng dụng và gói lớp truyền tải.

Tôi không biết về tcpflow nhưng tcpdump nắm bắt toàn bộ gói (bao gồm tiêu đề và tất cả nội dung khác) không chỉ dữ liệu. Dữ liệu html mà bạn đang đề cập sẽ nằm trong phần dữ liệu của gói tcp/udp/icmp cho dù bạn đang sử dụng và vì vậy nó cần bạn hiểu cấu trúc của gói tcp/udp/icmp cũng như ...

Tôi chụp gói này trên máy và dữ liệu HTML của bạn hiển thị rõ ràng, bạn cần viết kịch bản để nhận nó từ đầu ra với kiến ​​thức về cấu trúc gói.

16:15:17.968325 IP 172.31.9.84.80 > 172.31.9.177.56559: P 2575928381:2575928808(427)  
ack 65285447 win 1716 <nop,nop,timestamp 21031622 15165633> 
0x0000: 4500 01df 66fd 4000 4006 66d8 ac1f 0954 [email protected]@.f....T 
0x0010: ac1f 09b1 0050 dcef 9989 8c3d 03e4 2d47 ..... P.....=..-G 
0x0020: 8018 06b4 1a2a 0000 0101 080a 0140 eac6  .....*[email protected] 
0x0030: 00e7 68c1 4854 5450 2f31 2e31 2032 3030 ..h.HTTP/1.1.200 
0x0040: 204f 4b0d 0a44 6174 653a 2046 7269 2c20 .OK..Date:.Fri,. 
0x0050: 3130 204a 756c 2032 3030 3920 3130 3a32 10.Jul.2009.10:2 
0x0060: 303a 3136 2047 4d54 0d0a 5365 7276 6572 0:16.GMT..Server 
0x0070: 3a20 4170 6163 6865 2f32 2e30 2e35 3220 :.Apache/2.0.52. 
0x0080: 2852 6564 2048 6174 290d 0a4c 6173 742d (Red.Hat)..Last- 
0x0090: 4d6f 6469 6669 6564 3a20 4672 692c 2031 Modified:.Fri,.1 
0x00a0: 3020 4a75 6c20 3230 3039 2030 393a 3331 0.Jul.2009.09:31 
0x00b0: 3a30 3420 474d 540d 0a45 5461 673a 2022 :04.GMT..ETag:." 
0x00c0: 3266 6231 3333 2d37 372d 6131 3935 3436 2fb133-77-a19546 
0x00d0: 3030 220d 0a41 6363 6570 742d 5261 6e67  00"..Accept-Rang 
0x00e0: 6573 3a20 6279 7465 730d 0a43 6f6e 7465 es:.bytes..Conte 
0x00f0: 6e74 2d4c 656e 6774 683a 2031 3139 0d0a nt-Length:.119.. 
0x0100: 4b65 6570 2d41 6c69 7665 3a20 7469 6d65 Keep-Alive:.time 
0x0110: 6f75 743d 3135 2c20 6d61 783d 3130 300d out=15,.max=100. 
0x0120: 0a43 6f6e 6e65 6374 696f 6e3a 204b 6565 .Connection:.Kee 
0x0130: 702d 416c 6976 650d 0a43 6f6e 7465 6e74 p-Alive..Content 
0x0140: 2d54 7970 653a 2074 6578 742f 6874 6d6c -Type:.text/html 
0x0150: 3b20 6368 6172 7365 743d 4953 4f2d 3838  ;.charset=ISO-88 
0x0160: 3539 2d31 0d0a 0d0a 3c68 746d 6c3e 0a0a 59-1....<html>.. 
0x0170: 3c62 6f64 793e 0a49 6e64 6961 6e20 696e <body>.Indian.in 
0x0180: 7374 6974 7574 6520 6f66 2074 6563 686e stitute.of.techn 
0x0190: 6f6c 6f67 7920 2e2e 2e2e 2e20 7468 6973  ology.......this 
0x01a0: 2069 7320 7468 6520 7465 7374 2070 6167 .is.the.test.pag 
0x01b0: 652e 0a3c 4120 6872 6566 3d22 6164 2e68 e..<A.href="ad.h 
0x01c0: 746d 6c22 3e61 6263 643c 2f41 3e0a 0a3c tml">abcd</A>..< 
0x01d0: 2f62 6f64 793e 0a3c 2f68 746d 6c3e 0a   /body>.</html>. 

7-8 dòng cuối cùng mô tả dữ liệu html.

sử dụng -s0 để chụp toàn bộ khung và -X để in ở định dạng có thể đọc được ở trên ASCII.

Để nhận dữ liệu được mã hóa đó, bạn nên sử dụng TCPDUMP với tùy chọn –A (vốn a). Nó chuyển văn bản mà không có bất kỳ tiêu đề và được sử dụng chủ yếu cho các trang web. Do đó chúng tôi nhận được trang phản hồi một cách dễ dàng.

Đối với ví dụ:

Tôi yêu cầu index.html để 172.31.9.84 tại cổng 80

Sau đó, tôi yêu cầu GET/index.html (một trang ví dụ mà chỉ chứa văn bản “viện Ấn Độ của công nghệ này là trang test”)

Tại thời điểm này khi tôi bắt các gói tin tôi nhận được một cái gì đó như:

Request: 

18:10:42.387426 IP 172.31.9.177.42943 > 172.31.9.84.80: 
P 1:15(14) ack 1 win 46 <nop,nop,timestamp 6644101 353753635> 
[email protected]@........T...P^R.Mb.L.....ke..... 
.ea....#GET /index.html 

Response: 

18:10:42.388127 IP 172.31.9.84.80 > 172.31.9.177.42943: P 1:53(52) 
ack 15 win 1448 <nop,nop,timestamp 353758368 6644101> 
[email protected]@.8m..T.. ..P..b.L.^R.[....d...... 
.....ea.<html> 

<body> 
Indian institute of technology this is the test page 
</body> 
</html> 
+0

Cảm ơn bạn rất nhiều Udit. Có, tôi đã nhầm lẫn giữa hai lớp của mô hình OSI. –

+1

Thậm chí tốt hơn, hãy sử dụng 'tcpdump -w' để ghi các gói hoàn toàn vào một tệp và sau đó' tcpdump -r' để khôi phục chúng và tìm các tùy chọn dòng lệnh tốt nhất bằng cách lặp lại để xem chi tiết bạn muốn xem. –

+0

'Dữ liệu html mà bạn đang đề cập sẽ nằm trong phần dữ liệu của gói tcp/udp/icmp' Thật sao? Bạn nghĩ rằng có khả năng anh ấy đang truy cập một trang web phản hồi với HTML được đóng gói trong ... gói ICMP? Không chắc. 'bạn cần phải viết kịch bản để có được nó từ đầu ra với một kiến ​​thức về cấu trúc gói' Không đúng sự thật. Bạn chỉ có thể sử dụng Wireshark. –

2

khi cố gắng để có được dữ liệu HTTP sử dụng tcpdump, bạn sẽ thấy c văn bản lear trong ASCII nếu bạn áp dụng tùy chọn -A. Tuy nhiên, dữ liệu HTTP hầu như luôn được nén bằng chế độ gzip hoặc khác. Bạn có thể nhìn thấy nó trong tiêu đề:

Content-Encoding: gzip, nén, bzip2

Như vậy, tcpdump sẽ ra màn hình của bạn nhiều byte và họ là những dữ liệu nén !!! Bạn sẽ cần phải sử dụng tshark hoặc wireshark để xem dữ liệu phẳng. Sau đó, vấn đề của bạn không phải là UTF8.

Bạn có thể kiểm tra hiển thị dữ liệu tcpdump vô hiệu hóa mô-đun xì hơi trong máy chủ web Apache.

Hy vọng trợ giúp này.

+0

Điều đó có ích. Cảm ơn bạn Eriberto. –

Các vấn đề liên quan