Task 14 [Day 9] Networking Where Is All This Data Going
Trong nhiệm vụ này, chúng tôi sẽ hướng dẫn bạn các kỹ năng và kiến thức cần thiết để thực hiện phân tích gói cơ bản bằng Wireshark.
Phân tích gói là một kỹ thuật được sử dụng để nắm bắt và chặn lưu lượng mạng đi qua các giao diện mạng của máy tính. Phân tích gói cũng có thể được gọi với các thuật ngữ khác nhau như trình đánh hơi gói, phân tích gói, phân tích giao thức hoặc phân tích mạng. Là một cá nhân an ninh mạng, việc đạt được kỹ năng phân tích gói tin là một yêu cầu quan trọng để xử lý sự cố mạng và phân tích giao thức truyền thông. Sử dụng các công cụ phân tích mạng như Wireshark, nó bắt các gói mạng theo thời gian thực và hiển thị chúng ở định dạng con người có thể đọc được. Nó cung cấp nhiều tính năng nâng cao, bao gồm chụp trực tiếp và phân tích ngoại tuyến. Nhiệm vụ này bao gồm các bước phân tích gói một cách chi tiết bằng cách sử dụng Wireshark để phân tích các giao thức khác nhau (giao thức không được mã hóa) như HTTP, DNS và FTP.
Kỹ năng và kiến thức cần thiết
Chúng tôi giả định rằng người dùng có các kỹ năng nền tảng cơ bản để hoàn thành tác vụ này, yêu cầu kiến thức lý thuyết và thực tế, bao gồm các khái niệm mạng cơ bản, Ngăn xếp TCP / IP, Mô hình OSI và bắt tay TCP. Điều này không chỉ áp dụng cho phân tích gói tin mà còn cho hầu hết các chủ đề khác mà chúng tôi sẽ giải quyết trong vấn đề an ninh mạng.
Công cụ phân tích gói
Có rất nhiều công cụ được sử dụng trong phân tích lưu lượng mạng và đánh giá mạng. Mỗi công cụ này cung cấp một cách khác nhau để nắm bắt hoặc phân tích lưu lượng truy cập. Một số cung cấp các cách để sao chép và chụp, trong khi những người khác đọc và nhập bằng cách sử dụng các giao diện khác nhau. Trong căn phòng này, chúng ta sẽ khám phá Wireshark. Hãy nhớ rằng những công cụ này yêu cầu đặc quyền của quản trị viên.
Wireshark là gì?
Wireshark được cài đặt sẵn trên THM AttackBox và bạn có thể khởi chạy THM AttackBox bằng cách sử dụng nút Start AttackBox và mở Wireshark.
Nếu bạn muốn thực hiện thử thách này trên máy tính của riêng mình, có thể tải xuống Wireshark từ đây: Download Wireshark
Đối với nhiệm vụ này, chúng tôi đã chuẩn bị một tệp PCAP để tải xuống và làm theo hướng dẫn cũng như áp dụng các kỹ năng phân tích gói tin cần thiết bằng cách sử dụng các tình huống khác nhau. Nếu đang sử dụng AttackBox, bạn không cần tải tệp xuống vì tệp đã có trên máy; tệp AoC3.pcap ở vị trí sau: /root/Rooms/AoC3/Day9/AoC3.pcap.
Chúng tôi có thể chạy Wireshark và nhập tệp PCAP được cung cấp như sau,
user@thm$ sudo wireshark /root/Rooms/AoC3/Day9/AoC3.pcap
Giao diện Wireshark có 5 thành phần chính: Menu lệnh là menu thả xuống tiêu chuẩn nằm ở đầu cửa sổ. Chúng tôi quan tâm đến các menu File và Capture. Menu File cho phép bạn lưu dữ liệu gói đã chụp hoặc mở tệp chứa dữ liệu gói đã chụp trước đó và thoát ứng dụng Wireshark.
Phần bộ lọc hiển thị là nơi chúng ta có thể chỉ định các quy tắc để tìm các gói tin nhất định. Danh sách các gói được bắt cho thấy tất cả các gói mạng đã gửi và nhận. Phần này bao gồm các trường quan trọng được sử dụng trong phần bộ lọc, chẳng hạn như địa chỉ IP nguồn và đích, giao thức và thông tin. Tiếp theo, các chi tiết của một tiêu đề gói đã chọn. Phần này hiển thị chi tiết về các gói mạng đã chọn và hiển thị tất cả các tiêu đề, bao gồm tất cả thông tin các lớp TCP. Cuối cùng là nội dung gói trong đó hiển thị nội dung gói ở định dạng thập lục phân và ASCII.
Lọc
Berkeley Packet Filter (BPF) cú pháp được sử dụng trong bộ phân tích gói để lọc trước gói tin cụ thể. Lọc gói có lợi khi định vị thông tin trong quá trình bắt gói. Cú pháp của Wireshark là phương pháp chính mà chúng tôi sẽ sử dụng trong phòng này để định vị các giao thức và thông tin nhất định. Dưới đây, chúng tôi đã bao gồm một số ví dụ về việc sử dụng bộ lọc hiển thị Wireshark:
Giả sử rằng chúng ta đang tìm kiếm tất cả các gói đã được gửi hoặc nhận bằng địa chỉ IP sau: 172.21.2.116. Do đó, bộ lọc sau sẽ giúp chúng tôi hiển thị tất cả các gói mạng có địa chỉ IP 172.21.2.116: ip.addr == 172.21.2.116
Kết quả là, chúng tôi có thể thấy rằng chúng tôi chỉ có thể hiển thị (các) gói mà chúng tôi cần.
Tiếp theo, chúng ta cũng có thể chỉ định một số giao thức nhất định, chẳng hạn như HTTP hiển thị tất cả các gói cho giao thức này. Chúng tôi cũng có thể chỉ định một tên miền để thu hẹp tìm kiếm. Ví dụ sau cho thấy rằng chúng tôi đang tìm kiếm các gói HTTP có tên miền google.com: http contains google.com
Tiếp theo, chúng ta cũng có thể xem xét một cổng cụ thể. Hãy cố gắng lọc và liệt kê tất cả các gói cho giao thức máy tính từ xa. Chúng ta có thể làm điều đó bằng cách sử dụng tcp.port : tcp.port == 3389
Tuy nhiên, giả sử rằng bạn đang theo dõi lưu lượng mạng và bạn muốn loại trừ các gói RDP. Trong trường hợp này, chúng ta có thể sử dụng quy tắc not Wireshark như hình dưới đây.
Tiếp theo, chúng tôi sẽ thực hiện kỹ thuật phân tích gói tin bằng cách sử dụng Wireshark trên các giao thức khác nhau, bao gồm HTTP, FTP, và DNS.
Chú ý: Đảm bảo mở công cụ Wireshark và tệp AoC3.pcap được nhập để theo dõi nội dung.
HTTP #1 - GET
Chúng tôi sẽ thực hiện phân tích gói trên các gói mạng được bắt trước trong PCAP để phân tích lưu lượng HTTP. Khi chúng tôi mở PCAP bằng Wireshark, nó sẽ hiển thị rất nhiều lưu lượng mạng do chúng tôi kết nối bằng giao thức RDP, khiến công việc của chúng tôi trở nên khó khăn hơn. Tuy nhiên, chúng tôi sẽ sử dụng bộ lọc Wireshark để chỉ tập trung vào các yêu cầu web. Trong trường hợp này, chúng tôi đang xử lý giao thức HTTP. Do đó, chúng ta có thể sử dụng các quy tắc của Wireshark để làm cho nó dễ dàng hơn. Chúng tôi có thể áp dụng quy tắc sau cho bộ lọc Wireshark để chỉ hiển thị lưu lượng HTTP: http.
Hình dưới đây cho thấy tất cả lưu lượng HTTP đã được gửi đến và đi từ máy chủ web. Trong gói đầu tiên, chúng ta có thể thấy rằng yêu cầu web được gửi từ máy 192.168.100.95 đến máy chủ web, cũng là máy của chúng ta. Trong phần thông tin, chúng tôi cũng có thể thấy rằng chúng tôi đã gửi một yêu cầu GET cố gắng lấy / quản trị nội dung. Trong gói tiếp theo, máy chủ web trả lời người gửi bằng mã phản hồi HTTP 404, có nghĩa là nó không được tìm thấy. Giả sử chúng ta cần thêm thông tin chi tiết về một gói tin cụ thể. Trong trường hợp đó, chúng ta có thể mở rộng (sử dụng dấu>) cây con giao thức truyền siêu văn bản để biết thêm chi tiết về yêu cầu của người gửi, chẳng hạn như địa chỉ IP của máy chủ lưu trữ, tác nhân người dùng web và các thông tin khác.
Chúng tôi có thể chỉ định phương thức HTTP. Trong trường hợp này, chúng tôi có thể chỉ định hiển thị tất cả các yêu cầu GET bằng cách sử dụng bộ lọc sau: http.request.method == GET. Tiếp tục làm theo các yêu cầu GET HTTP và trả lời câu hỏi trong tác vụ này.
HTTP #1 - POST
Trong trường hợp thứ hai, chúng tôi kiểm tra các yêu cầu HTTP POST được sử dụng để đăng nhập vào cổng web. Trong phần này, chúng tôi sẽ thực hiện phân tích gói để nắm bắt tên người dùng và mật khẩu của yêu cầu ĐĂNG. Đảm bảo mở tệp PCAP để thực hiện phân tích gói. Mục tiêu của bạn trong phần này là kiểm tra gói HTTP để lấy tên người dùng và mật khẩu. Để biết thêm chi tiết, bạn nhấp đúp vào gói cần thiết có yêu cầu ĐĂNG. Chúng ta có thể thấy tất cả thông tin cần thiết mà chúng ta cần trong phần thập lục phân trong văn bản rõ ràng. Ngoài ra, có những cách khác hiển thị thêm thông tin yêu cầu HTTP, đó là theo dõi luồng HTTP. Chúng ta có thể làm điều đó bằng cách nhấp chuột phải vào gói yêu cầu và sau đó chọn follow -> TCP Stream để xem các yêu cầu web và thông tin chi tiết của chúng.
Trong phần này, chúng ta phải tìm yêu cầu POST và khám phá tất cả thông tin gói để trả lời câu hỏi 2 và 3 trong nhiệm vụ này.
DNS giống như một danh bạ điện thoại khổng lồ lấy một URL (Như https://tryhackme.com/) và biến nó thành một địa chỉ IP. Điều này có nghĩa là mọi người không phải nhớ địa chỉ IP cho các trang web yêu thích của họ.
Tệp PCAP được cung cấp có các gói DNS đã được máy chủ của chúng tôi nhận. Tên miền mà chúng ta sẽ xem xét là packet.tryhackme.com. Xin lưu ý rằng đó là tên miền được sử dụng trong tệp PCAP làm ví dụ.
Trước tiên, hãy đảm bảo rằng bạn mở tệp PCAP. Sau đó, sử dụng bộ lọc Wireshark, chúng tôi sẽ chỉ định các gói DNS. Điều này có thể được thực hiện bằng cách sử dụng bộ lọc udp.port. Theo mặc định, giao thức DNS đang chạy trên cổng UDP 53 và đôi khi trên cổng TCP 53. Trong tác vụ này, chúng ta sẽ thực hiện với cổng UDP. Do đó, bộ lọc Wireshark sẽ như sau: udp.port == 53 hoặc chỉ dns
Bằng cách nhấp đúp vào gói DNS đầu tiên, chúng ta có thể thấy như sau:
Bằng cách mở rộng cây con Hệ thống tên miền (truy vấn), rõ ràng gói tin này là một câu hỏi Câu hỏi: 1, trong đó máy khách truy vấn tên miền và tìm kiếm câu trả lời từ máy chủ. Ngoài ra, bằng cách kiểm tra cây con Truy vấn, chúng ta có thể thấy rằng máy khách đang yêu cầu bản ghi loại A của tên miền packet.tryhackme.com.
Tiếp theo, chúng ta sẽ xem xét phản hồi đối với yêu cầu DNS. Trong Wireshark, lưu ý rằng trong yêu cầu truy vấn, là yêu cầu DNS đầu tiên, trong trường thông tin, chúng ta có thể thấy ID giao dịch với giá trị của truy vấn 0xef8e. Lưu ý rằng số tham chiếu truy vấn này có thể thay đổi trong trường hợp của bạn. Do đó, số tham chiếu truy vấn này được sử dụng để tìm phản hồi DNS phù hợp của truy vấn đó. Để xác nhận điều đó, hãy kiểm tra phần trường hiển thị truy vấn response 0xef8e A packet.tryhackme.com.
Bằng cách nhấp đúp vào gói được yêu cầu, chúng ta có thể thấy rằng nó có một phần câu trả lời, nơi nó có câu trả lời cho truy vấn của chúng tôi, đó là Địa chỉ: 127.0.0.1. Điều này có nghĩa là yêu cầu DNS loại A của packet.tryhackme.com là 127.0.0.1. Lưu ý rằng tệp PCAP có thể có các IP khác nhau hoặc các gói bổ sung chưa được thảo luận. Có các yêu cầu DNS khác đã được tạo trong tệp PCAP. Bây giờ, hãy tìm hiểu thêm về các truy vấn và phản hồi DNS trong Wireshark và trả lời câu hỏi 4 trong nhiệm vụ này.
Tệp PCAP được cung cấp có các gói FTP đã được máy chủ của chúng tôi nhận. Đối với nhiệm vụ này, chúng tôi sẽ xem xét lưu lượng FTP trong Wireshark. Giống như các giao thức khác, chúng tôi sẽ sử dụng bộ lọc Wireshark để xem xét các gói FTP. Theo mặc định, máy chủ FTP đang lắng nghe trên cổng TCP 21. Do đó, chúng tôi lọc và liệt kê tất cả các gói FTP bằng cách sử dụng bộ lọc sau: ftp hoặc tcp.port == 21
Hình dưới đây cho thấy tất cả các gói FTP và chúng ta có thể xem tất cả các chi tiết của gói bằng cách kiểm tra phần trường. Rõ ràng là người gửi được kết nối với máy chủ FTP và máy chủ phản hồi bằng tiêu đề máy chủ FTP, vsFTPd 3.0.3. Tiếp theo, người dùng đã gửi một yêu cầu FTP với tryhackftp dưới dạng lệnh người dùng, đây là tên người dùng của máy chủ FTP.
Tiếp tục kiểm tra các gói FTP trong Wireshark và trả lời câu hỏi 5 và 6 trong nhiệm vụ này. Chúng tôi cũng có thể hiển thị tất cả các lệnh FTP bằng cách chọn gói FTP đầu tiên và nhấp chuột phải vào nó. Sau đó, chọn follow -> TCP-Steam.
Người dùng đã đăng nhập vào máy chủ FTP bằng tên người dùng và mật khẩu và tải lên một tệp bí mật. Do đó, bộ lọc Wireshark hiện tại sẽ không hiển thị gói của tệp được tải lên thực sự. Thay vào đó, chúng ta có thể sử dụng bộ lọc ftp-data Wireshark để liệt kê các gói có nội dung của tệp. Áp dụng bộ lọc này và trả lời câu hỏi cuối cùng trong nhiệm vụ này.

What is the username and password used in the login page in the HTTP #2 - POST section?
What is the User-Agent's name that has been sent in HTTP #2 - POST section?
In the DNS section, there is a TXT DNS query. What is the flag in the message of that DNS query?
In the FTP section, what is the FTP login password?
In the FTP section, what is the FTP command used to upload the secret.txt file?
In the FTP section, what is the content of the secret.txt file?
0 Comments