Tổng quan về Wireshark
Ethereal là một chương trình phân tích giao thức mã nguồn mở ban đầu được viết bởi Gerald Combs. Sau đó nó được đổi tên thành Wireshark năm 2006. Hiện nay Wireshark được quản lý và phát triển bởi hàng trăm người trên khắp thế giới.
Nó không thể làm những việc gì?
Như bất kì một công cụ nào khác, Wireshark có thể được dùng cho một số việc và không cho một số việc khác. Ở đây là danh sách của một số việc mà Wireshark không thể làm:
1. Nó không thể dùng để vạch ra một mạng. Thay vào đó công cụ Nmap có thể đảm nhiệm chức năng này.
2. Nó không sinh ra ra các dữ liệu mạng - nó là một công cụ bị động. Những công cụ như nmap, ping và traceroute là ví dụ về các công cụ có khả năng sinh ra các dữ liệu mạng. Những công cụ này là công cụ chủ động.
3. Nó chỉ có thể chỉ ra thông tin chi tiết về các giao thức mà nó thật sự hiểu. Nó hiểu được rất nhiều các giao thức và có thể mở rộng ra, vì vậy bạn có thể thêm vào các giao thức hỗ trợ cho nó nếu nó không hiểu. Tuy nhiên bạn sẽ chỉ có thể xem được các dữ liệu mà nó bắt được dưới dạng hexdump.
4. Nó chỉ có thể bắt được dữ liệu tốt khi giao diện driver của hệ điều hành hỗ trợ. Ví dụ của việc này là việc bắt dữ liệu thông qua mạng không dây. Nó không làm việc tốt với một số phần mềm và phần cứng kết hợp.
Cài đặt Wireshark ( tôi ko nêu ở đây)
Chạy Wireshark trên Windows
Khởi động Wireshark
Giao diện Wireshark
Giao diện của Wireshark rất đơn giản.
1. Title bar - Thanh này sẽ chứa những thông tin khác nhau phụ thuộc vào những gì Wireshark đang làm. Nếu nó đang bắt dữ liệu mạng, nó sẽ hiểu thị giao điện đang sử dụng. Nếu nó đang hiển thị dữ liệu từ lần bắt dữ liệu trước đó, tên của file chứa trong dữ liệu bắt được đó sẽ được hiển thị (untitled sẽ được hiển thị nếu lần bắt đó được trình diễn, dừng lại và không được lưu lại). Ngược lại nó sẽ hiển thị tên của ứng dụng: Wireshark network Protocol Analyzer.
2. Menu bar - Thanh này cung cấp khả năng truy cập đến các tính năng của ứng dụng.
a. File - Chức năng làm với việc với dữ liệu bắt được như lưu lại và export đến các định dạng file khác nhau.
b. Edit - Chức năng tìm kiểm packets, thiết đặt thay đổi thời gian, và tham khảo các thiết đặt
c. View - Chức năng thay đổi cách hiển thị thông tin của Wireshark.
d. Go - Chức năng tìm vị trí của một packet chỉ rõ.
e. Capture - Chức năng bắt đầu và dừng lại các lần bắt, lưu lại các filter và làm việc với các giao diện mạng.
f. Analyze - Chức năng giải thích và lọc dữ liệu bắt được.
g. Statistics - Chức năng thống kê phân tích dữ liệu bắt được.
h. Help - Chức năng trợ giúp.
3. Main tool bar - Lối tắt để sử dụng các chức năng thường dùng trong thanh menu.
4. Filter tool bar - Truy cập nhanh đến chức năng filter.
5. Packet list pane - Hiển thị tất cả các packet trong file bắt hiện tại.
6. Packet details pane - Chỉ rõ các chi tiết của packet được chọn hiện tại trong khung Packet List.
7. Packet bytes pane - Chế độ xem hexdum của packet hiện tại trong Packet List.
8. Status bar - Cung cấp các thông điệp và thông tin phản hồi đến người dùng.
3. Hướng dẫn sử dụng những tính năng cơ bản của WireShark:
3.1. Cửa sổ chính:
Sau khi cài đặt sau, chạy chương trình bạn sẽ thấy giao diện như hình vẽ:
trong đó:
1 : thanh menu của chương trình.
2 : thanh công cụ chính.
3 : thanh công cụ lọc.
4 : khung danh sách gói tin mà chương trình bắt được.
5: khung chi tiết gói tin, ở đây thể hiện đầy dủ thông tin chi tiết của các gói tin.
6: khung gói byte hiển thị dữ liệu của các gói (được lựa chọn trong danh sach gói) dưới dạng cơ số hexa.
7: thanh trạng thái hiển thị thông điệp thông tin.
3.2. Chức năng bắt trực tiếp dữ liệu trên mạng:
Các công cụ bắt gói tin của Wireshark cung cấp các tính năng sau:
- Bắt từ các loại phần cứng khác nhau (Ethernet, Token Ring, ATM, …)
- giải mã các gói tin trong khi vẫn tiếp tục chụp.
- Bộ lọc gói tin, làm giảm số lượng dữ liệu được ghi lại.
Một trong những phương pháp sau đây có thể được sử dụng để bắt đầu chụp các gói tin với Wireshark:
+ kích vào biểu tượng đầu tiên trên thanh công cụ chính sẽ xuất hiện hộp thoại:
> chọn loại card mạng rồi nhấn Start để bắt đầu
+ Kích vào biểu tượng thứ 2 trên thanh công cụ:
3.2.1 Capture frame
> chọn loại card mạng trong phần interface
> IP address: địa chỉ IP của giao diện được lựa chọn. Nếu không rõ địa chỉ IP thì sẽ hiển thị là “unknown”
> Link-layer header type: nên để mặc định.
> Buffer size: Đây là kích thước của bộ đệm hạt nhân mà sẽ giữ các gói tin bị bắt,đến khi chúng được ghi vào đĩa
> Capture packets in promiscuous mode: đánh dấu tick nếu muốn bắt tất cả các gói tin trong mạng LAN của bạn, nếu không chỉ bắt được các gói tin đi và đến máy tính của bạn.
> Limit each packet to n bytes: giới hạn kích thước của gói tin. Nên để mặc đĩnh giá sẽ là 65535.
3.2.2 Capture File(s) frame
Use multiple files: Thay vì sử dụng một tập tin duy nhất, Wireshark sẽ tự động chuyển sang một hình mới,nếu một điều kiện gây ra cụ thể đạt được.
Next file every n megabyte: Chuyển sang các file tiếp theo sau khi số các byte (s)/kilobyte(s)/megabyte(s)/GB(s)đã bị bắt.
Next file every n minute(s): Chuyển sang các file tiếp theo sau khi số lượng nhất định thứ hai (s) / phút(s)/giờ(s)/ngày(s)đã trôi qua.
Ring buffer with n files: Tạo thành một vòng đệm của các tập tin chụp, với số lượng nhất định các tập tin.
Stop capture after n file(s): Dừng thu sau khi chuyển đến tập tin tiếp theo số lần nhất định
3.2.3 Stop Capture... frame
after n packet(s): Dừng chụp sau khi số các gói tin đã bị bắt.
after n megabytes(s): Dừng chụp sau khi số các byte(s)/kilobyte(s)/megabyte(s)/GB(s)đãđượcbắt.Tùy chọn này chuyển sang màu xám,nếu "Sử dụng nhiều file" được chọn.
after n minute(s): Dừng chụp sau khi số lượng nhất định thứ hai (s)/phút(s)/giờ(s)/ngày(s) đã trôi qua.
3.2.4 Display Options frame
Update list of packets in real time: cập nhật danh sách gói tin theo thời gian thực,
Automatic scrolling in live capture: tự động di chuyển trực tiếp để bắt.
Hide capture info dialog: ẩn hộp thoại
3.2.5 Name Resolution frame :
Enable MAC name resolution: tính năng dịch địa chỉ MAC thành tên
Enable network name resolution: tính năng dịch địa chỉ mạng thành tên.
Enable transport name resolution: tính năng dịch địa chỉ giao vận thành giao thức
3.3 Lưu thông tin:
+ kích vào biểu tượng ổ đĩa mềm hoặc nhấn tổ hợp phím Ctrl+S
Chọn vị trí để lưu đặt, đặt tên trong ô file name và kích nút Save để lưu lại.
3.4 Mở file đã lưu
+ kích vào biểu tượng Open trên thanh công cụ hoặc nhấn tổ hợp phím Ctrl+O
Chọn file cần mở và kích Open.
Ví dụ về cách làm việc của Wireshark
Trong ví dụ này, tôi sẽ khởi động Wireshark bắt các packet trên mạng không dây của laptop. Sau đó tôi sẽ khởi động Thunderbird để lấy lại email từ Comcast và Gmail.
1. Đầu tiên khởi động Wireshark.
2. Sau đó chọn Capture -> Interfaces từ thanh menu.
3. Sau đó hộp thoại Interfaces sẽ được mở ra. Chọn giao diện mà bạn muốn sử dụng. Đây là điều quan trong khi Wireshakr (như với bất kì trình phân tích giao thức nào khác) chỉ có thể bắt dữ liệu từ một mạng mà nó kết nối đến một cách tự nhiên. Tôi dùng Ethernet adapter không dây trong laptop vì vậy sẽ chọn Intel adapter trong danh sach. Nhấn nút "Start". Tiến trình bắt dữ liệu sẽ được bắt đầu. Sau một thời gian ngắn, bạn sẽ thấy cửa sổ chính của Wireshark (danh sách packet, chi tiết và khung byte) được điền đầy với các dữ liệu
4. Bây giờ tôi sẽ khởi động Thunderbird và đăng nhập vào cả hai tài khoản Gmail và Comcast. Tại thời điểm này tôi sẽ chờ đợi cho tất cả các mail download về và sau đó sẽ dừng việc bắt mạng bằng cách chọn Capture -> Stop từ thanh menu. Nhấn File và Save để lưu việc bắt dữ liệu này vào đĩa sau khi tất cả các dữ liệu đã được bắt.
5. Tôi vừa bắt được 2 phiên POP3 hoàn thiện với Wireshark. Để lấy riêng thông tiên về các phiên pop tôi sẽ dùng một filter. Trong thanh filter bạn điền vào đoạn text sau và nhấn nút "apply": tcp.port eq 110. Điều này sẽ giới hạn các hiển thị về traffice trên cổng tcp 110 (cổng pop). Cũng nên chú ý rằng Wireshark hiểu được POP (Post Office Protocol), vì vậy nó sẽ trình diễn được các bít của thông tin như câu lệnh POP và các thông tin chứng thực. Tôi không kết nối đến Comcast mail server sử dụng SSL vì vậy mật khẩu của tôi được chứa trong các traffic dưới dạng clear text nghĩa là các dữ liệu không được mã hóa. Tôi phải chọn screenshot này một cách khôn ngoan và thật sự dùng cái này để khắc phục các sự cố về người dùng client kết nối đến pop và imap server.
6. Kéo thanh cuộn xuống phía dưới của dữ liệu bắt được sau khi đã dùng filter nó chỉ hiện ra một cuộc đàm thoại giữa hai host: laptop của tôi và Comcast mail server. Điều gì xảy ra với Gmail? Bởi vì tôi dùng SSL với tài khoản gmail và kết nối SSL POP được kết hợp với cổng 995 chứ không phải cổng 110. Trong thanh filter điền vào đoạn text sau và nhấn "apply": tcp.port eq 995. Điều này sẽ trình diễn tất cả các POP thông qua SSL. Nhưng chú ý rằng không có bất kỳ thông tin chi tiết nào khác sẽ có về giao thức ứng dụng này. Giao thức dùng trên cổng 995 là TCP, SSl và TLS. Bạn sẽ thấy một số packet đi kèm với các key, nhưng đó là tất cả để làm với vấn đề bảo mật kết hợp với SSL và TLS. Tất cả dữ liệu của ứng dụng này đã bị mã hóa.
Phân tích gói tin với WIRESHARK
1. Một số tình huống cơ bản Trong phần này chúng ta sẽ đề cập đến vấn đề cụ thể hơn. Sử dụng Wireshark và phân tích gói tin để giải quyết một vấn đề cụ thể của mạng. Chúng tôi xin đưa ra một số tình huống điển hình.A Lost TCP Connection (mất kết nối TCP) Một trong các vấn đề phổ biến nhất là mất kết nối mạng.Chúng ta sẽ bỏ qua nguyên nhân tại sao kêt nối bị mất, chúng ta sẽ nhìn hiện tượng đó ở mức gói tin. Ví dụ: Một ví truyền file bị mất kết nối: Bắt đầu bằng việc gửi 4 gói TCP ACK từ 10.3.71.7 đến 10.3.30.1. Hình 3.1-1: This capture begins simply enough with a few ACK packets. Lỗi bắt đầu từ gói thứ 5, chúng ta nhìn thấy xuất hiện việc gửi lại gói của TCP. Hình 3.1-2: These TCP retransmissions are a sign of a weak or dropped connection.Theo thiết kế, TCP sẽ gửi một gói tin đến đích, nếu không nhận được trả lời sau một khoảng thời gian nó sẽ gửi lại gói tin ban đầu. Nếu vẫn tiếp tục không nhận được phản hồi, máy nguồn sẽ tăng gấp đôi thời gian đợi cho lần gửi lại tiếp theo. Như ta thấy ở hình trên, TCP sẽ gửi lại 5 lần, nếu 5 lần liên tiếp không nhận được phản hồi thì kết nối được coi là kết thúc. Hiện tượng này ta có thể thấy trong Wireshark như sau: Hình 3.1-4: Windows will retransmit up to five times by default. Khả năng xác định gói tin bị lỗi đôi khi sẽ giúp chúng ta có thể phát hiện ra mấu trốt mạng bị mất là do đâu. Unreachable Destinations and ICMP Codes (không thể chạm tới điểm cuối và các mã ICMP) Một trong các công cụ khi kiểm tra kết nối mạng là công cụ ICMP ping. Nếu may mắn thì phía mục tiêu trả lời lại điều đó có nghĩa là bạn đã ping thành công, còn nếu không thì sẽ nhận được thông báo không thể kết nối tới máy đích. Sử dụng công cụ bắt gói tin trong việc này sẽ cho bạn nhiều thông tin hơn thay vì chỉ dung ICMP ping bình thường. Chúng ta sẽ nhìn rõ hơn các lỗi của ICMP. Hình 3.1-5: A standard ping request from 10.2.10.2 to 10.4.88.88 Hình dưới đây cho thấy thông báo không thể ping tới 10.4.88.88 từ máy 10.2.99.99. Như vậy so với ping thông thường thì ta có thể thấy kết nối bị đứt từ 10.2.99.99. Ngoài ra còn có các mã lỗi của ICMP, ví dụ : code 1 (Host unreachable) Hình 3.1-6: This ICMP type 3 packet is not what we expected. Unreachable Port (không thể kết nối tới cổng)Một trong các nhiệm vụ thông thường khác là kiểm tra kết nối tới một cổng trên một máy đích. Việc kiểm tra này sẽ cho thấy cổng cần kiểm tra có mở hay không, có sẵn sang nhận các yêu cầu gửi đến hay không. Ví dụ, để kiểm tra dịch vụ FTP có chạy trên một server hay không, mặc định FTP sẽ làm việc qua cổng 21 ở chế độ thông thường. Ta sẽ gửi gói tin ICMP đến cổng 21 của máy đích, nếu máy đích trả lời lại gói ICMP loại o và mã lỗi 2 thì có nghĩa là không thể kết nối tới cổng đó.s Fragmented Packets Hình 3.1-7: This ping request requires three packets rather than one because the data being transmitted is above average size. Ở đây có thể thấy kích thước gói tin ghi nhận được lớn hơn kích thước gói tin mặc định gửi đi khi ping là 32 bytes tới một máy tính chạy Windows. Kích thước gói tin ở đây là 3,072 bytes. Determining Whether a Packet Is Fragmented (xác định vị trí gói tin bị phân đoạn) No Connectivity (không kết nối) Vấn đề : chúng ta có 2 nhân viên mới Hải và Thanh và được sắp ngồi cạnh nhau và đương nhiên là được trang bị 2 máy tính. Sauk hi được trang bị và làm các thao tác để đưa 2 máy tính vào mạng, có một vấn đề xảy ra là máy tính của Hải chạy tốt, kết nối mạng bình thường, máy tính của Thanh không thể truy nhập Internet.Mục tiêu : tìm hiểu tại sao máy tính của Thanh không kết nối được Internet và sửa lỗi đó. Các thông tin chúng ta có
Nói tóm lại là 2 máy này được cấu hình không có gì khác nhau. Tiến hành Cài đặt Wireshark trực tiếp lên cả 2 máy. Phân tích Trước hết trên máy của Hải ta nhìn thấy một phiên làm việc bình thường với HTTP. Đầu tiên sẽ có một ARP broadcast để tìm địa chỉ của gateway ở tầng 2, ở đây là 192.168.0.10. Khi máy tính của Hải nhận được thông tin nó sẽ bắt tay với máy gateway và từ đó có phiên làm việc với HTTP ra bên ngoài. Hình 3.1-8: Hải’s computer completes a handshake, and then HTTP data transfer begins. Trường hợp máy tính của Thanh Hình 3.1-9: Thanh’s computer appears to be sending an ARP request to a different IP address. Hình trên cho thấy yêu cầu ARP không giống như trường hợp ở trên. Địa chỉ gateway được trả về là 192.168.0.11. Như vậy có thể thấy NetBIOS có vấn đề. NetBIOS là giao thức cũ nó sẽ được thay thế TCP/IP khi TCP/IP không hoạt động. Như vậy là máy của Thanh không thể kết nối Internet với TCP/IP. Chi tiết yêu cầu ARP trên 2 máy : Máy Hải Máy Thanh Kết luận : máy Thanh đặt sai địa chỉ gateway nên không thể kết nối Internet, cần đặt lại là 192.168.0.10. The Ghost in Internet Explorer (con ma trong trình duyệt IE) Hiện tượng : máy tính của A có hiện tượng như sau, khi sử dụng trình duyệt IE, trình duyệt tự động trỏ đến rất nhiều trang quảng cáo. Khi A thay đổi bằng tay thì vẫn bị hiện tượng đó thậm chí khở động lại máy cũng vẫn bị như thế. Thông tin chúng ta có
Vì hiện tượng này chỉ xảy ra trên máy của A và trang home page của A bị thay đổi khi bật IE nên chúng ta sẽ tiếp hành bắt gói tin từ máy của A. Chúng ta không nhất thiết phải cài Wireshark trực tiếp từ máy của A. Chúng ta có thể dùng kỹ thuật “Hubbing Out” . Phân tích Hình 3.1-13: Since there is no user interaction happening on A’s computer at the time of this capture, all of these packets going across the wire should set off some alarms. Chi tiết gói tin thứ 5: Hình 3.1-14: Looking more closely at packet 5, we see it is trying to download data from the Internet. Từ máy tính gửi yêu cầu GET của HTTP đến địa chỉ như trên hình. Hình 3.1-15: A DNS query to the weatherbug.com domain gives a clue to the culprit. Gói tin trả lại bắt đầu có vấn đề : thứ tự các phần bị thay đổi. Một số gói tiếp theo có sự lặp ACK. Hình 3.1-16: A DNS query to the weatherbug.com domain gives a clue to the culprit. Sau một loạt các thay đổi trên thì có truy vấn DNS đến deskwx.weatherbug.com Đây là địa chỉ A không hề biết và không có ý định truy cập. Như vậy có thể là có một process nào đó đã làm thay đổi địa chỉ trang chủ mỗi khi IE được bật lên. Dùng một công cụ kiểm tra process ẩn ví dụ như Process Explore và thấy rằng có tiến trình weatherbug.exe đang chạy. Sau khi tắt tiến trình này đi không còn hiện tượng trên nữa. Thông thường các tiến trình như weatherbug có thể là virus, spyware. Giao diện Process Explore Lỗi kết nối FTP Tình huống : có tài khoản FTP trên Windows Server 2003 đã update service packs vừa cài đặt xong, phần mềm FTP Server hoàn toàn bình thường, khoản đúng nhưng không truy nhập được. Thông tin chúng ta có
Tiến hành Cài đặt Wireshark trên cả 2 máy. Phân tích Client: Hình 3.1-19: The client tries to establish connection with SYN packets but gets no response; then it sends a few more. Client gửi các gói tin SYN để bắt tay với server nhưng không có phản hồi từ server.Server : Hình 3.1-20: The client and server trace files are almost identical. Có 3 lý do có thể dẫn đến hiện tượng trên
Kết luận Đôi khi bắt gói tin không cho ta biết trực tiếp vấn đề nhưng nó đã hạn chế được rất nhiều trường hợp và giúp ta đưa ra suy đoán chính xác vấn đề là gì. vnsecurity.vn Tin mới hơn:
Tin cũ hơn:
Xử lý các tính huống thực tế với WireShark
|
Link PM Wireshark : http://www.mediafire.com/?je9tt1a4wzrzp0e
Đăng nhận xét