Trao đổi với tôi

http://www.buidao.com

1/5/10

[Using Tools] Using Wireshark (Ethereal)

1.5 Using Wireshark (Ethereal)
Tổng quan

Việc học và hiểu tốt về một công cụ sniffer là một trong những yêu cầu tối cần thiết đối với những người làm việc liên quan tới network. Việc sử dụng tốt sniffer sẽ giúp chúng ta :

  • Capture được các gói tin từ nhiều nguồn khác nhau
  • Hiểu sâu hơn về bộ giao thức TCP/IP
  • Phân tích các gói tin được capture để hiểu rõ hơn về chức năng của giao thức mạng
  • Giúp đỡ trong việc phân tích và khắc phục sự cố mạng

1.5.1 Peeking at a Sniffer
Ok thực hiện một demo nhỏ, tôi bật WireShark lên và cấu hình nó, sau đó tôi truy cập vào website : www.milw0rm.com. Sau khi truy cập xong, tôi cho dừng việc capture packets của WireShark và tiến hành phân tích ngữ nghĩa của dòng traffic.


Packet1 : ARP Broadcast. Tại sao lại có nó nhỉ, hehe quay trở lại ví dụ của chúng ta, ta đang cố gắng thực hiện một kết nối ra ngoài Internet, và trước khi máy tính của chúng ta có thể thực sự trao đổi được dữ liệu, nó cần phải xác định defaut gateway nằm ở đâu trong mạng Local network (tức là mạng LAN hiện thời của chúng ta). Địa chỉ IP của default gateway đã được cấu hình trên máy tính của chúng ta rồi, tuy nhiên địa chỉ MAC của nó thì chúng ta chưa biết. Do đó từ máy tính của tôi gửi đi một thông điệp tới toàn mạng LAN rằng “Ai có địa chỉ IP là 192.168.0.1? Hãy trả lời lại cho 192.168.0.186″.

Packet2 : Toàn bộ máy tính trong mạng local subnet của tôi đều nhận được gói tin Arp broadcast này và chúng kiểm tra xem có phù hợp với yêu cầu từ máy tôi hay không.Lúc này chỉ có duy nhất địa chỉ 192.168.0.1 trả lời lại cho gói tin ARP của tôi và nó gửi lại cho máy tôi một gói tin là ARP unicast reply, trong đó chứa thông tin về địa chỉ MAC của default gateway.

Packet3 : Ok, giờ thì máy tính của tôi đã biết được nơi mà nó cần phải gửi các packets để làm sao các packets đó đi ra được Internet, chúng ta cần resolve địa chỉ IP của website : www.milw0rm.com. Máy tính của tôi gửi một gói tin là DNS query tới DNS Server được chỉ ra trong phần cấu hình TCP/IP trên máy của tôi và hỏi DNS Server rằng : Địa chỉ ip của site milw0rm.com là gì?

Packet4 : Thằng DNS Server trả lời lại cho ta biết rằng FQDN của thằng www.milw0rm.com có bí danh là milw0rm.com

Packet5 : Tiếp theo máy tính của ta chấp nhận câu trả lời từ phía DNS Server và tiếp tục đi tìm câu trả lời cuối cùng là địa chỉ IP của milw0rm.com là gì ?

Packet6 : Lúc này thằng DNS Server sẽ trả lời lại và nói cho máy ta biết địa chỉ IP của site milw0rm.com là 213.150.45.196.

Packet7 : Có được câu trả lời về IP của milw0rm, máy của chúng ta tiến hành thủ tục bắt tay 3 bước (3 way handshake) với địa chỉ ip 213.150.45.196 tại port 80 và bắt đầu bằng việc gửi đi một SYN request.

Packet8 : Thằng Web Server sau khi nhận được gói SYN request của ta sẽ trả lời lại bằng một ACK và SYN về máy của ta.

Packet9 : Lúc này máy chúng ta kết thúc quá trình bắt tay 3 bước bằng cách gửi lại ACK về Web Server.

Packet10 : Sau khi kết thúc quá trình bắt tay tức là máy chúng ta lúc này có thể nói chuyện bằng service sử dụng các specific protocol. Do dúng ta dùng Web browser, cho nên máy chúng ta sẽ gửi một HTTP GET để yêu cầu lấy trang index page, và tất cả các linked images về browser của ta.

Packet11 – end : Toàn bộ trang index của milw0rm đã được load về browser trên máy của chúng ta.

Sau khi phân tích như trên các bạn có thể thấy rằng chương trình sniffer thực sự rất hữu ích, nó giúp ta hình dung rõ ràng nhất những gì đang xảy ra trong môi trường mại của chúng ta.

1.5.2 Capture filters
Nhìn hình minh họa ở trên các bạn sẽ nhận thấy nó rất đẹp, đẹp là bởi vì nó không có các gói tin thuộc dạng “background noise”. Phải thú thực những gì mà ta làm ở trên là một ví dụ lý tưởng, đối với những môi trường nhiều máy tính truy cập các bạn sẽ nhận thấy khi ta capture sẽ nhận được vô số các gói tin hỗn độn nằm ngoài mục đích mong muốn của chúng ta. Những gói tin broadcast, các miscellaneous network services và các running applications khiến cho chúng ta nhiều lúc bị rối rắm trong quá trình phân tích các traffic.

Chính vì lý do này mà chúng ta phải cần tới các bộ lọc.Nhiệm vụ của filter sẽ giúp cho chúng ta loại ra các gói tin không cần thiết trong phiên capture. Các bạn hãy từ mình nghiên cứu và khám phá về nó.

1.5.3 Following TCP Streams
Như bạn thấy trong ví dụ về milw0rm.com ở trên, ta thấy rằng các packet từ 11- cho tới hết là khá khó khăn trong việc phân tích bởi nó bao gồm các fragments. Các chương trình sniffer hiện đại như WireShark có khả năng ráp nối lại toàn bộ thông tin của một session cụ thể và hiện thị nó dưới dạng dễ nhìn và dễ hiểu hơn.

RefLink: http://kienmanowar.wordpress.com/2008/10/13/15-using-wireshark-ethereal/