Task 12 [Day 7] Networking The Grinch Really Did Steal Christmas
Câu chuyện
Bây giờ là 6 giờ sáng và Elf McSkidy đang đến trụ sở SOC của Công ty Lễ hội Tốt nhất để bắt đầu giám sát cơ sở hạ tầng của TBFC. Sau khi đăng nhập, Elf McEager tiếp tục đọc qua các email do Elf McSkidy để lại trong suốt buổi tối.
Nhiều cảnh báo quét tự động hơn, xem này, một nhóm APT khác. Có vẻ như nó sẽ là một khởi đầu tuần dài nhưng dễ dàng đối với Elf McEager.
Trong khi xóa các email tồn đọng, Elf McEager đọc nội dung sau: "URGENT: Đã phát hiện thấy quá trình lọc dữ liệu trên TBFC-WEB-01". "Uh oh" Elf McEager kêu lên. "TBFC-WEB-01? Đó là máy chủ web của ông già Noel! Ai có động cơ để đánh cắp dữ liệu từ đó ?!". Đã đến lúc Elf McEager luôn cảnh giác phải chứng minh độ mặn mà của mình và tìm ra chính xác điều gì đã xảy ra.
Vô tình với Elf McEager, Elf McSkidy đã tạo ra tất cả điều này! May mắn thay, đây không phải là một cuộc tấn công thực sự - mà là một bài tập huấn luyện được tạo ra trước khi đánh giá hiệu suất của Elf McEager.
- Mục tiêu học tập
- Địa chỉ IP là gì và chúng được chỉ định như thế nào.
- Hiểu TCP / IP và UDP
- Bắt tay 3 chiều
- Khóa học về sự cố Wireshark (nó được sử dụng ở đâu và tại sao)
- Lọc và toán tử cơ bản
- Phân tích một số PCAPS đầu tiên của chúng tôi
- HTTP
- SMB
- Thử thách
Made with ❤ by CMNatic
Thế nào là một địa chỉ ip?
Bạn sẽ nghe nói về thuật ngữ "địa chỉ IP" thường xuyên trong lĩnh vực công nghệ thông tin - không chỉ TryHackMe. Viết tắt của địa chỉ Giao thức Internet, tôi muốn giải thích điều cơ bản này của mạng bằng cách sử dụng giống như cách hệ thống bưu chính / thư tín hoạt động trong cuộc sống thực.
Khi gửi thư, bạn phải cung cấp địa chỉ nơi thư sẽ đến và cách tốt nhất là đưa địa chỉ của bạn làm địa chỉ gửi lại trong trường hợp thư bị thất lạc (hoặc bạn muốn cho người nhận biết cách trả lời). Địa chỉ IP phục vụ cùng một mục đích nhưng dành cho các thiết bị được kết nối với mạng! Các thiết bị được kết nối với internet sẽ có hai trong số các địa chỉ này - một địa chỉ công cộng và một địa chỉ riêng tư. Hãy coi địa chỉ cá nhân là tên của người nhận tại một doanh nghiệp, chẳng hạn như Joe Smith, và địa chỉ công cộng là địa điểm của doanh nghiệp này, tức là 160 Kemp Road, London.
Giả sử bạn đang truy cập Internet thông qua máy tính của mình. Máy tính của bạn sẽ là một phần của hai mạng và đến lượt nó, sẽ sử dụng cả địa chỉ IP công cộng và riêng tư:
- Một địa chỉ IP riêng để xác định chính nó giữa các thiết bị khác (chẳng hạn như điện thoại thông minh, TV và các máy tính khác) trong mạng của ngôi nhà của bạn. Trong ảnh chụp màn hình bên dưới, hai thiết bị có địa chỉ IP riêng sau:
Device Name | IP Address | IP Address Type |
---|---|---|
DESKTOP-KJE57FD | 192.168.1.77 | Riêng |
CMNatic-PC | 192.168.1.74 | Riêng |
Tương tự, TryHackMe sử dụng các địa chỉ riêng tư này. Để bạn có thể truy cập các thiết bị TryHackMe khác, chẳng hạn như các phiên bản mà bạn triển khai trong phòng này, bạn cần phải ở trên cùng một mạng riêng vì các phiên bản này không được kết nối với internet. Đây là lý do tại sao bạn phải sử dụng một ứng dụng khách như OpenVPN để kết nối với mạng.
MuirlandOracle giải thích cách các địa chỉ IP riêng tư này hoạt động trong phòng Intro to Networking của anh ấy.
- Nhà cung cấp dịch vụ Internet (ISP) của bạn cung cấp một địa chỉ IP công cộng để xác định ngôi nhà của bạn trên Internet (Internet chỉ là rất nhiều mạng được kết nối). Sử dụng ví dụ của chúng tôi ở trên, hai thiết bị sẽ chia sẻ một địa chỉ IP công cộng để nhận dạng chính chúng trên Internet:
Device Name | IP Address | IP Address Type |
---|---|---|
DESKTOP-KJE57FD | 86.157.52.21 | Public |
CMNatic-PC | 86.157.52.21 | Public |
Điều này đạt được thông qua NATting, tuy nhiên, việc trình bày chi tiết cách thức hoạt động chính xác của nó, điều này nằm ngoài phạm vi ngày nay một chút.
Protocols 101
Với dự đoán Internet sẽ có 50 tỷ thiết bị được kết nối vào cuối năm 2020 (https://www.cisco.com/c/dam/en_us/about/ac79/docs/innov/IoT_IBSG_0411FINAL.pdf),
hỗn loạn nhanh chóng xảy ra nếu không có quy tắc cơ bản về cách các thiết bị giao tiếp với nhau.
Nếu điều này là một chút khó hiểu - tôi không trách bạn, chỉ cần chịu với tôi ở đây. Hãy nghĩ về nó theo cách này: Bạn sử dụng các giao thức trong cuộc sống hàng ngày! Khi nói chuyện với ai đó, cả hai sẽ sử dụng cùng một tập hợp các giao thức ... nếu không, sẽ không ai hiểu nhau. Ít nhất, tất cả các bên muốn trò chuyện sẽ sử dụng cùng một ngôn ngữ - đây là một giao thức! Các giao thức khác cũng có thể bao gồm ngữ cảnh hoặc chủ đề của cuộc trò chuyện. Nếu bất kỳ ai đi lạc khỏi các giao thức này - họ có nguy cơ không được hiểu! Điều này cũng tương tự đối với các thiết bị kết nối mạng.
- Quay lại phần kỹ thuật ...
Nhập các giao thức như kiểu TCP / IP & UDP / IP. Với TCP / IP là nơi phổ biến nhất hiện nay, chúng ta sẽ thảo luận thêm về vấn đề này. TCP / IP là một giao thức đảm bảo rằng mọi dữ liệu được gửi đi đều được xử lý theo cùng một thứ tự. Quay trở lại hệ thống bưu điện của chúng tôi, thư của bạn sẽ được gửi đến nhiều nơi - ngay cả khi gửi trong nước. Lưu lượng truy cập máy tính của bạn cũng như vậy, đi từ thiết bị này sang thiết bị khác trong một quá trình được gọi là định tuyến. Một thiết bị có thể cung cấp dữ liệu nhanh hơn (và kết quả là theo một thứ tự khác) thì một thiết bị khác lại gây đau đầu cho tình huống mà độ chính xác là quan trọng, chẳng hạn như sau:
- Tải tập tin
- Truy cập một trang web trong trình duyệt của bạn
- Gửi e-mail
Điều này không giống như giao thức UDP nơi mà việc có tất cả các gói không hoàn toàn quan trọng (làm cho giao thức nhanh hơn rất nhiều so với TCP / IP), đó là lý do tại sao các ứng dụng như phát trực tuyến video sử dụng UDP (tức là Skype). Chúng tôi không thực sự quan tâm nếu một vài gói bị mất vì chúng tôi vẫn có thể nhìn thấy phần lớn bức tranh.
TCP/IP gửi dữ liệu như thế nào? Bắt tay ba bước:
Bắt tay ba bước là phương pháp làm cho TCP trở nên đáng tin cậy. Bất kỳ dữ liệu nào được gửi đi đều được cung cấp một dãy số ngẫu nhiên và được tái tạo lại bằng cách sử dụng dãy số này và tăng dần lên 1. Cả hai máy tính phải đồng ý về cùng một dãy số để dữ liệu được gửi theo đúng thứ tự. Thứ tự này được thỏa thuận trong ba bước.
Trong sơ đồ bên dưới, "Máy khách" có số thứ tự ban đầu (ISN) là "0" trong đó "Máy chủ" có "5.000". Mọi dữ liệu được gửi từ "Máy khách" và nhận được trên "Máy chủ" sẽ là chuỗi ban đầu + 1. Nếu đây là gói đầu tiên từ "Máy khách" thì đây sẽ là "0 + 1". Tôi đã chỉ ra ba gói được gửi từ "Máy khách" trong bảng dưới đây để giúp chứng minh điều này:
Device | Initial Sequence Number (IN) | Final Sequence Number | |
---|---|---|---|
Client (Sender) | 0 | 0 + 1 = 1 | |
Client (Sender) | 1 | 1 + 1 = 2 | |
Client (Sender) | 2 | 2 + 1 = 3 |
- SYN - Máy khách: Đây là dãy số ban đầu của tôi (ISN) để đồng bộ hóa với (0)
- SYN / ACK - Máy chủ: Đây là Dãy số ban đầu (ISN) của tôi để đồng bộ hóa với (5.000) và Tôi xác nhận dãy số ban đầu của bạn (0)
- ACK - Khách hàng: Tôi xác nhận Chuỗi số ban đầu (ISN) của bạn là (5.000), đây là một số dữ liệu là ISN + 1 của tôi
Khi dữ liệu được nhận, nó sẽ được người nhận tập hợp lại. Hãy chỉ ra các điều kiện cần phải lắp ráp lại:
Ví dụ về dữ liệu kết hợp lại TCP:
Không yêu cầu lắp ráp lại:
Nếu "Máy chủ" nhận dữ liệu được nhận theo đúng thứ tự mà dữ liệu được gửi từ "Máy khách":
- Đã gửi ngày 1 - Đã nhận ngày 1
- Đã gửi lần 2 - Đã nhận lần 2
- Đã gửi thứ 3 - Đã nhận thứ 3
Sau đó, không cần lắp ráp lại vì dữ liệu được nhận theo đúng thứ tự mà nó đã được gửi.
Lắp ráp yêu cầu:
Ví dụ: nếu "Máy chủ" nhận tất cả dữ liệu, nhưng theo một thứ tự khác thì dữ liệu đã được gửi đi, cần phải lắp ráp lại:
- Đã gửi ngày 1 - Đã nhận ngày 1
- Đã gửi thứ 2 - Đã nhận thứ 3
- Đã gửi thứ 3 - Đã nhận thứ 2
Bởi vì tất cả dữ liệu được nhận, chỉ theo một thứ tự khác, nó có thể được tập hợp lại bằng cách sử dụng các số thứ tự đã thỏa thuận mà lẽ ra sẽ được trao đổi trong quá trình bắt tay ba bước.
Kết nối bị ngắt:
Nếu "Máy khách" gửi ba gói, nhưng "Máy chủ" chỉ nhận được hai trong số ba gói, chúng sẽ bị ngắt kết nối với nhau do dữ liệu được gửi bị hỏng:
- Đã gửi ngày 1 - Đã nhận ngày 1
- Đã gửi lần 2 - Không nhận được
- Đã gửi thứ 3 - Đã nhận thứ 2
Dữ liệu sẽ không được xử lý bởi "Máy chủ" vì gói được gửi lần thứ 2 bởi "Máy khách" không bao giờ được "Máy chủ" # 2 nhận, có nghĩa là đã xảy ra mất mát dữ liệu trên đường đi.
Khóa học về sự cố trong giám sát lưu lượng mạng:
Có thể nắm bắt chính xác những gì đang di chuyển trên mạng và hiểu đây là một kỹ năng quan trọng trong công nghệ thông tin. Từ chẩn đoán đến thu thập thông tin đăng nhập, các vị trí trong CNTT, từ quản trị viên hệ thống đến pháp y kỹ thuật số và chúng tôi đều sử dụng lưu lượng mạng theo cách riêng của họ. Ví dụ: vì dữ liệu được gửi qua HTTP hoặc FTP không được mã hóa, một pentester có thể nắm bắt được tên người dùng và mật khẩu đang được nhập vào một trang web.
Giới thiệu Wireshark:
Wireshark có khả năng ghi lại nhật ký của tất cả các gói được gửi và nhận trên bộ điều hợp mạng của máy tính. Ví dụ: chúng ta có thể thấy cách một máy tính (được đánh dấu màu đỏ) kết nối với máy tính (được đánh dấu màu đen) đang chạy máy chủ web qua HTTP, trong trường hợp này, đó là trang web: web_server / download.HTML, mà chúng tôi có thể xuất và tự xem:
Tuy nhiên, mạng khá ồn ào ... Wireshark đã bắt được 2.648 gói tin sau một phút trên máy của tôi. Điều này làm cho việc phân tích rất khó khăn. Rất may, chúng tôi có thể sử dụng bộ lọc để thu hẹp kết quả. Chúng tôi có thể lọc theo nhiều thứ, nhưng chúng tôi sẽ chỉ đề cập đến một số thứ quan trọng trong bảng bên dưới. Lưu ý rằng tất cả các ví dụ bên dưới sử dụng toán tử == để xem liệu bộ lọc có khớp chính xác với giá trị mà chúng tôi cung cấp hay không.
Filter | Description | Example |
---|---|---|
ip.src | Show all packets that originate from the specified IP address | ip.src == 192.168.1.1 |
ip.dst | Show all packets that are destined to the specified IP address | ip.dst == 192.168.1.1 |
tcp/udp.port | Show all packets that are sent via the protocol and port specified | tcp.port == 22 / udp.port == 67 |
protocol.request.method | Show all packets that use a specific method of the protocol given. For example, HTTP allows for both a GET and POST to retrieve and submit data accordingly. | http.request.method == GET / POST |
Trong ảnh chụp màn hình bên dưới, tôi đã sử dụng bộ lọc ip.src để liệt kê tất cả các gói được gửi rõ ràng từ một địa chỉ cụ thể, sử dụng toán tử == để xác định máy chủ lưu trữ mà tôi muốn tìm kiếm. (145.254.160.237
). Chúng ta sẽ nhanh chóng khám phá việc sử dụng các toán tử này trong phần tiếp theo.
Kết hợp bộ lọc với toán tử
Operator | Description | Example |
---|---|---|
== | You'd use this operator to check if the filter exactly matches the value given in all packets | ip.addr == 192.168.1.1 will show all packets with the IP address 192.168.1.1 (this could be source or destination) |
!= | This operator checks if the filter does not match the value given in all packets | ip.addr != 192.168.1.10 will show all packetsthat does not include the IP address 192.168.1.10 (this could be source or destination) |
&& | Use this operator to combine multiple filters together. | For example, to show all packets associated with two different IP addresses ip.addr == 192.168.1.1 && ip.addr == 192.168.1.10 will only show packets with the source or destination IP addresses of 192.168.1.1 or 192.168.1.10 |
Xuất dữ liệu từ Wireshark:
Như đã trình bày trước đó, Wireshark có khả năng xuất dữ liệu từ các giao thức như HTTP bằng cách điều hướng đến "File → Export Objects" và chọn giao thức có sẵn. Trong ảnh chụp màn hình bên dưới, chúng tôi liệt kê các đối tượng có thể được xuất từ giao thức SMB chia sẻ tệp.
Chúng ta sẽ xuất tệp "test.txt" vào thiết bị của bạn.
As highlighted below:
Thách thức
Tải xuống tệp ZIP "aocpcaps.zip" được đính kèm với tác vụ này, sử dụng kết hợp các bộ lọc và tính năng của Wireshark mà chúng tôi đã đề cập để trả lời các câu hỏi bên dưới:
Open "pcap1.pcap" in Wireshark. What is the IP address that initiates an ICMP/ping?
If we only wanted to see HTTP GET requests in our "pcap1.pcap" file, what filter would we use?
Now apply this filter to "pcap1.pcap" in Wireshark, what is the name of the article that the IP address "10.10.67.199" visited?
Let's begin analysing "pcap2.pcap". Look at the captured FTP traffic; what password was leaked during the login process?
There's a lot of irrelevant data here - Using a filter here would be useful!
Continuing with our analysis of "pcap2.pcap", what is the name of the protocol that is encrypted?
Analyse "pcap3.pcap" and recover Christmas!
What is on Elf McSkidy's wishlist that will be used to replace Elf McEager?
0 Comments