Advertisement

Responsive Advertisement

Advent of Cyber 3 (2021) - Day 10

 Task 15  [Day 10] Networking Offensive Is The Best Defence

McSkidy đang cố gắng khám phá cách những kẻ tấn công quản lý để xâm nhập vào mạng và gây thiệt hại cho cơ sở hạ tầng của Best Festival Company. Cô quyết định bắt đầu đánh giá bảo mật hệ thống của mình để khám phá cách Grinch Enterprises quản lý để gây ra thiệt hại này. Cô bắt đầu bằng cách tiến hành đánh giá bảo mật hệ thống của mình để khám phá cách Grinch Enterprises quản lý để gây ra thiệt hại này và tự hỏi họ đã khai thác dịch vụ nào.

Trước khi McSkidy bắt đầu kích hoạt Nmap, hãy xem xét một số từ khóa liên quan đến nhiệm vụ của cô ấy. Nếu bạn đã quen với các thuật ngữ địa chỉ IP, giao thức, máy chủ và số cổng, vui lòng bỏ qua ba phần sau và bắt đầu trực tiếp với phần Nmap.

IP Addresses

Mọi máy tính (máy chủ) kết nối với mạng cần phải có một địa chỉ logic. Ví dụ, máy chủ có thể là bất kỳ hệ thống nào có quyền truy cập mạng, chẳng hạn như máy tính xách tay, điện thoại thông minh và Raspberry Pi. Chúng tôi coi địa chỉ này là hợp lý vì nó được chỉ định bởi phần mềm và có thể thay đổi theo thời gian, chẳng hạn như khi máy chủ kết nối với mạng mới. Trong trường hợp này, địa chỉ logic là địa chỉ IP.

IP là viết tắt của Giao thức Internet. Để đơn giản hóa mọi thứ, chúng tôi sẽ xem xét Giao thức Internet phiên bản 4 (IPv4). Địa chỉ IPv4 được tạo thành từ 4 số thập phân. Phạm vi cho mỗi số là từ 0 đến 255. Địa chỉ IPv4 ví dụ là:

  • 192.168.0.10
  • 172.16.0.100
  • 10.10.11.12
  • 1.1.1.1

3 địa chỉ IP đầu tiên trong danh sách trên là riêng tư, nghĩa là chúng chỉ có thể được truy cập từ mạng riêng mà chúng thuộc về. Địa chỉ IP cuối cùng, 1.1.1.1, là địa chỉ IP công cộng có thể được truy cập bởi toàn bộ Internet và thuộc về Cloudflare.

Một số địa chỉ IP phục vụ một mục đích đặc biệt. Ví dụ, 127.0.0.1 thường được gọi là 'địa chỉ lặp lại' hoặc 'máy chủ cục bộ'. Theo mặc định, bất kỳ gói tin hoặc lưu lượng nào đến địa chỉ này sẽ không rời khỏi máy chủ.

Trên Microsoft Windows, một cách để tìm địa chỉ IP của bạn là chạy ipconfig trong dấu nhắc lệnh hoặc PowerShell. Trên Linux và macOS, bạn có thể tìm thấy địa chỉ IP của mình bằng cách thực hiện hiển thị địa chỉ ip trên thiết bị đầu cuối. 

Lưu ý: rằng ip sẽ chấp nhận các chữ viết tắt của các đối số như ip addr show hoặc thậm chí ip a s.

Terminal
user@TryHackMe$ ip addr show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: wlp1s0: mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 80:30:49:c8:28:b3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.202/24 brd 192.168.0.255 scope global dynamic noprefixroute wlp1s0
       valid_lft 84435sec preferred_lft 84435sec
    inet6 fe80::c3:6a8f:ff22:cff/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

Kết quả đầu cuối ở trên cho thấy rằng hệ thống Linux này có bộ điều hợp không dây với địa chỉ IP 192.168.0.202.

Nếu bạn muốn tìm hiểu thêm về mạng máy tính, chúng tôi khuyên bạn nên học Network Fundamentals 

Giao thức và máy chủ

Giả sử rằng chúng tôi muốn thiết lập một trang web và chúng tôi đã làm cho nó có thể truy cập được trên toàn Internet. Để người dùng trên Internet có thể truy cập trang web của chúng tôi, cần phải có địa chỉ IP công cộng. Máy chủ web là một chương trình lắng nghe các kết nối đến, thường là từ các trình duyệt web và phản hồi các yêu cầu của chúng.

Máy chủ thường đề cập đến một hệ thống máy tính cung cấp dịch vụ cho các máy khách khác, tức là các máy tính khác, qua mạng. Các dịch vụ mẫu bao gồm cung cấp các trang web, gửi email và tạo điều kiện cho hội nghị truyền hình.

Để máy khách giao tiếp với máy chủ, một giao thức cụ thể phải được tuân theo. Hãy xem xét sự tương tự sau đây. Bạn muốn gọi một ly cà phê espresso từ một cửa hàng cà phê để mang đi. Quy trình để có được một tách cà phê espresso có thể diễn ra như sau:

  • Khách hàng: Xin chào
  • Barista: Xin chào
  • Khách hàng: Tôi muốn một ly cà phê espresso, làm ơn
  • Barista: Đó sẽ là £ 3
  • Khách hàng: Của bạn đây, £ 3
  • Barista: Cảm ơn bạn. Cà phê espresso của bạn đã sẵn sàng.
  • Khách hàng: Xin cảm ơn.

Vì tôi tuân theo “quy trình” này, nên những khách hàng khác có thể tuân theo “quy trình” hơi khác dựa trên quán cà phê và văn hóa của quốc gia đó. Một số có thể bỏ qua "xin chào" ở đầu hoặc bỏ "cảm ơn" ở cuối. Trong thế giới con người, điều này vẫn sẽ hoạt động; tuy nhiên, đối với máy tính, chúng ta cần áp dụng một giao thức nghiêm ngặt mà cả máy khách và máy chủ cần phải tuân thủ. Đây là lý do tại sao chúng tôi có các giao thức tiêu chuẩn cho máy tính.

Để kể tên một số, đây là một số giao thức TCP / IP ví dụ:

  • Giao thức truyền siêu văn bản (HTTP) để phân phát các trang web
  • Hệ thống tên miền (DNS) để phân giải tên máy chủ thành địa chỉ IP
  • Giao thức Bưu điện phiên bản 3 (POP3) để gửi email
  • Giao thức chuyển thư đơn giản (SMTP) để gửi email
  • Telnet để đăng nhập từ xa
  • Secure Shell (SSH) để đăng nhập từ xa an toàn

Mỗi giao thức này được định nghĩa chi tiết trong tài liệu Yêu cầu Bình luận (RFC). Nếu bạn muốn biết thêm về các giao thức này, chúng tôi khuyên bạn nên tham gia Protocols and Servers.

Cổng

Trên một máy chủ, nhiều tiến trình (chương trình) có thể truy cập mạng cùng một lúc. Các quá trình này có thể sử dụng mạng đồng thời. Để máy chủ cho biết tiến trình nào nhận gói tin nào, chúng ta cần sử dụng số cổng. Để hiểu rõ hơn về khái niệm địa chỉ IP và số cổng, chúng ta hãy xem xét sự tương tự sau đây.

Hãy tưởng tượng công ty của TryHackMe ở London và hãy tưởng tượng có 100 văn phòng cho 100 kỹ sư nội dung ở đó. Địa chỉ công ty giống như một địa chỉ IP công cộng. Với địa chỉ công ty, người đưa thư (tương tự như một bộ định tuyến) biết cách liên hệ với công ty và gửi các gói thư. Số cổng giống như số văn phòng trong công ty. Người đưa thư có thể chuyển đến địa chỉ công ty và giao cho lễ tân; tuy nhiên, một nhân viên của TryHackMe sẽ giao gói hàng đến văn phòng nội bộ.

Khi nhiều quá trình đang sử dụng mạng hoặc Internet đồng thời, mỗi quá trình có thể được nhận dạng bằng số cổng mà nó đang sử dụng. Trong các máy chủ công cộng, các số cổng mặc định được sử dụng bởi các giao thức khác nhau để khách hàng không cần phải đoán. Bảng dưới đây cho thấy một số giao thức phổ biến và số cổng mà chúng sử dụng theo mặc định.

ProtocolPort Number
HTTP80
HTTPS443
POP3110
SMTP25
SSH22
Telnet23

Hãy xem xét hình bên dưới. Các gói IP đến máy chủ có địa chỉ IP 10.10.13.13 sẽ được chuyển đến tiến trình đang chạy dựa trên số cổng đích.

  • Đối với các gói loại TCP có số cổng 22, quá trình đích là máy chủ SSH.
  • Đối với các gói loại TCP có cổng số 80, quá trình đích là máy chủ HTTP.
  • Đối với các gói loại UDP (hoặc TCP) có cổng số 53, quá trình đích là máy chủ DNS.


Chúng tôi sẽ không trình bày chi tiết về TCP và UDP trong nhiệm vụ này. Tất cả những gì bạn cần biết bây giờ là hai giao thức này nằm trên giao thức IP và kết nối các quá trình chạy trên các máy chủ khác nhau. Hơn nữa, TCP yêu cầu bắt tay ba bước để thiết lập kết nối, trong khi UDP thì không.

Nmap

McSkidy muốn khám phá những gì kẻ tấn công đã học được về các máy chủ và máy chủ của cô ấy. Cô ấy khởi động AttackBox và khởi động Máy ảo (VM) kèm theo và đợi cả hai tải đầy đủ.

Cô ấy muốn kiểm tra những dịch vụ nào cô ấy đã cài đặt trên máy ảo. Trên AttackBox, cô ấy mở một thiết bị đầu cuối và vội vàng chạy quét Nmap đối với máy ảo. McSkidy có thể chạy quét cổng mạng rất cơ bản bằng lệnh nmap -sT MACHINE_IP hoặc nmap -sS MACHINE_IPTheo mặc định, Nmap kiểm tra 1000 cổng TCP phổ biến nhất.

  • TCP Connect Scan: Để chạy kiểu quét này, tùy chọn -sT là bắt buộc. Nmap sẽ cố gắng hoàn thành quá trình bắt tay ba bước để thiết lập kết nối với mỗi cổng được quét.
  • TCP SYN Scan: Bạn có thể chọn quá trình quét này bằng tùy chọn -sS và Nmap sẽ không tạo kết nối hoàn chỉnh nếu cổng đang mở. Về mặt kỹ thuật, Nmap không hoàn thành bắt tay ba chiều TCP.

Để hiểu rõ hơn về sự khác biệt giữa -sT -sS, chúng ta có thể sử dụng phép tương tự như gõ cửa. Quá trình quét kết nối TCP (-sT) giống như bạn đang gõ cửa, đợi ai đó mở nó, chào hỏi nhau, sau đó lấy cớ ra về. Quá trình quét TCP SYN (-sS) giống như gõ cửa và một khi ai đó trả lời, bạn giả vờ rằng không phải bạn đã gõ và bỏ đi một cách ngây thơ. Điều này sẽ khiến đối phương khó nhớ đến bạn hơn.

Thực hiện lab






Answer the questions below
Help McSkidy and run nmap -sT MACHINE_IP. How many ports are open between 1 and 100?






















What is the smallest port number that is open?

What is the service related to the highest port number you found in the first question?

Now run nmap -sS MACHINE_IP. Did you get the same results? (Y/N)

If you want Nmap to detect the version info of the services installed, you can use nmap -sV MACHINE_IP. What is the version number of the web server?

By checking the vulnerabilities related to the installed web server, you learn that there is a critical vulnerability that allows path traversal and remote code execution. Now you can tell McSkidy that Grinch Enterprises used this vulnerability. What is the CVE number of the vulnerability that was solved in version 2.4.51?

You are putting the pieces together and have a good idea of how your web server was exploited. McSkidy is suspicious that the attacker might have installed a backdoor. She asks you to check if there is some service listening on an uncommon port, i.e. outside the 1000 common ports that Nmap scans by default. She explains that adding -p1-65535 or -p- will scan all 65,535 TCP ports instead of only scanning the 1000 most common ports. What is the port number that appeared in the results now?

What is the name of the program listening on the newly discovered port?

If you would like to learn more about the topics covered in today’s tasks, we recommend checking out the Network Security module.


Post a Comment

0 Comments