Advertisement

Responsive Advertisement

Advent of Cyber 3 (2021) - Day 11

 

Task 16  [Day 11] Networking Where Are The Reindeers?

Trước khi bắt đầu, chúng tôi khuyên bạn nên khởi động Máy kèm theo AttackBox vì bạn sẽ cần sử dụng các tài nguyên này để trả lời các câu hỏi ở phần cuối.

McDatabaseAdmin lao vào phòng và khóc với McSkidy, "Chúng tôi đã bị khóa khỏi lịch trình tuần lộc - phương tiện vận chuyển của ông già Noel sẽ hoạt động như thế nào cho Giáng sinh?" Grinch đã khóa McDatabaseAdmin trong hệ thống của mình. Bạn cần thăm dò bề mặt bên ngoài của máy chủ để xem liệu bạn có lấy lại quyền truy cập cho anh ta hay không.

MS SQL Server là Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS). Một cách đơn giản để nghĩ về cơ sở dữ liệu quan hệ là một nhóm các bảng có quan hệ. Để hiểu sơ bộ về hoạt động của cơ sở dữ liệu quan hệ, hãy xem xét cơ sở dữ liệu của một cửa hàng với ba bảng sau:

  1. Đồ điện tử
  2. Khách hàng
  3. Hóa đơn

Mỗi mục trong bảng Mặt hàng Điện tử có:

  • ID
  • Name
  • Price
  • Quantity

Mỗi mục trong bảng Khách hàng cũng có các thuộc tính riêng:

  • ID
  • Name
  • Email
  • Phone

Cuối cùng, bảng Hóa đơn sẽ đề cập đến một khách hàng và một hoặc nhiều mặt hàng điện tử. Bảng Hóa đơn sẽ tham chiếu đến một “thực thể” từ một bảng khác bằng cách sử dụng ID của nó. Bằng cách này, chúng tôi chỉ cần ghi chi tiết khách hàng và chi tiết mặt hàng điện tử một lần thay vì sao chép chúng vào mỗi hóa đơn mới. Trường hợp này là một ví dụ đơn giản hóa của cơ sở dữ liệu quan hệ. Hình dưới đây cho thấy ba bảng có liên quan như thế nào.

Lịch trình vận chuyển có trong cơ sở dữ liệu của tuần lộc. Tuy nhiên, McDatabaseAdmin không còn có thể đăng nhập vào hệ thống của mình sau khi kẻ xấu đã thay đổi mật khẩu hệ thống. Hãy xem chúng tôi có thể trợ giúp như thế nào. Đảm bảo rằng bạn đã khởi động Máy được đính kèm cùng với AttackBox. Hãy cho họ một vài phút để bắt đầu hoàn toàn trước khi tiếp tục trả lời các câu hỏi sau.

Answer the questions below

Bạn quyết định rằng bước đầu tiên sẽ là kiểm tra các dịch vụ đang chạy trên MACHINE_IP. Bạn sử dụng công cụ của ngày hôm qua, Nmap.

Biết rằng MACHINE_IP là một hệ thống MS Windows, bạn mong đợi nó không phản hồi với các đầu dò ping theo mặc định; do đó, bạn cần thêm -Pn vào lệnh nmap của mình để thực hiện quét. Điều này hướng dẫn Nmap bỏ qua ping mục tiêu để xem liệu máy chủ có thể truy cập được hay không. Nếu không có tùy chọn này, Nmap sẽ cho rằng máy chủ đích đang ngoại tuyến và không tiến hành quét.

Có một cổng mở liên quan đến MS SQL Server có thể truy cập qua mạng. Số cổng là gì?

Biết MS SQL Server đang chạy và có thể truy cập qua mạng, chúng tôi muốn kiểm tra xem tên người dùng và mật khẩu của mình có còn hợp lệ hay không. Sử dụng thiết bị đầu cuối AttackBox, chúng tôi sẽ sử dụng lệnh sqsh (phát âm là skwish), một trình bao cơ sở dữ liệu tương tác.

Một cú pháp đơn giản sẽ là  sqsh -S server -U username -P password, giải thích:

  • -S server sử dụng kết nối đến máy chủ nào -S MACHINE_IP
  • -U username sử dụng tên user là gì, ví dụ, -U sa 
  • -P password mật khẩu của user.

Ví dụ thử chạy, sqsh -S MACHINE_IP -U sa -P t7uLKzddQzVjVFJp

Nếu kết nối thành công, bạn sẽ nhận được lời nhắc. Lời nhắc mà bạn đã nhận được là gì?



McDatabaseAdmin cho chúng tôi biết tên cơ sở dữ liệu là reindeer và nó có ba bảng:

  1. names
  2. presents
  3. schedule

Để hiển thị bảng name, bạn có thể sử dụng cú pháp sau,SELECT * FROM table_name WHERE condition.

  • SELECT * được sử dụng để trả về các cột (thuộc tính) cụ thể. * đề cập đến tất cả các cột.
  • FROM table_name để chỉ định bảng bạn muốn đọc.
  • WHERE condition để chỉ định các hàng (thực thể).

Trong thiết bị đầu cuối bên dưới, chúng tôi đã thực hiện truy vấn, SELECT * FROM reindeer.dbo.names ;. Truy vấn SQL này sẽ kết xuất tất cả nội dung của tên bảng từ reindeercơ sở dữ liệu. Lưu ý rằng ; cho biết phần cuối của truy vấn SQL, trong khi đi gửi một lô SQL đến cơ sở dữ liệu.

Pentester Terminal
pentester@TryHackMe$ sqsh -S MACHINE_IP -U sa -P "t7uLKzddQzVjVFJp"
1> SELECT * FROM reindeer.dbo.names;
2> go
 id          first                                    last                                     nickname
 ----------- ---------------------------------------- ---------------------------------------- ----------------------------------------
           1 Dasher                                   Dasher                                   Dasher                                  
           2 Dancer                                   Dancer                                   Dancer                                  
           3 Prancer                                  Prancer                                  Prancer                                 
           4 Vixen                                    Vixen                                    Vixen                                   
           5 Comet                                    Comet                                    Comet                                   
           6 Cupid                                    Cupid                                    Cupid                                   
           7 Donner                                   Donder                                   Dunder                                  
           8 Blitzen                                  Blixem                                   Blitzen                                 
           9 Rudolph                                  Reindeer                                 Red Nosed

 (9 rows affected)

Chúng ta có thể thấy bốn cột trong bảng được hiển thị ở trên: id, họ (tên), họ (tên) và biệt hiệu. Tên đầu tiên của tuần lộc trong id 9 là gì?

Kiểm tra bảng schedule. Điểm đến của chuyến đi dự kiến vào ngày 7 tháng 12 là gì?




Kiểm tra bảng  presents. Số lượng có sẵn cho hiện tại là bao nhiêu “Power Bank”?


Bạn đã hoàn thành công việc tuyệt vời! Bạn đã giúp McDatabaseAdmin lấy lại lịch biểu! Bây giờ, hãy xem liệu chúng ta có thể chạy các lệnh MS Windows trong khi tương tác với cơ sở dữ liệu hay không. Một số Máy chủ MS SQL đã bật xp_cmdshell. Nếu đúng như vậy, chúng ta có thể có quyền truy cập vào một thứ gì đó tương tự như dấu nhắc lệnh.

Cú pháp lệnh là xp_cmdshell 'COMMAND' ;. Hãy thử một lệnh đơn giản, whoami, hiển thị người dùng đang chạy các lệnh. Trong đầu ra đầu cuối bên dưới, sau khi kết nối với MS SQL Server, chúng tôi đã thử xp_cmdshell 'whoami' ;, và chúng tôi có thể thấy rằng người dùng là dịch vụ nt\mssqlserver. Điều này có nghĩa là bất kỳ lệnh nào chúng tôi chuyển đến xp_cmdshell sẽ chạy dưới dạng nt service\mssqlserver.

Pentester Terminal
pentester@TryHackMe$ sqsh -S MACHINE_IP -U sa -P "t7uLKzddQzVjVFJp"
1> xp_cmdshell 'whoami';
2> go

	output

[...]

	nt service\mssqlserver
    
	NULL
    
(2 rows affected, return status = 0)

Chúng ta có thể chạy các lệnh khác mà chúng ta có thể thực hiện trên dòng lệnh MS Windows. Ví dụ, chúng ta có thể sử dụng dir để liệt kê các tệp và thư mục và nhập tên tệp để hiển thị nội dung của tệp. Hãy xem xét ví dụ trong cửa sổ đầu cuối bên dưới, nơi chúng tôi tiết lộ nội dung của tệp văn bản WindowsUpdate.log.

Pentester Terminal
pentester@TryHackMe$ sqsh -S MACHINE_IP -U sa -P "t7uLKzddQzVjVFJp"
sqsh-2.5.16.1 Copyright (C) 1995-2001 Scott C. Gray
Portions Copyright (C) 2004-2014 Michael Peppler and Martin Wesdorp
This is free software with ABSOLUTELY NO WARRANTY
For more information type '\warranty'
1> xp_cmdshell 'type c:\windows\WindowsUpdate.log';
2> go

	output
	
[...]
        
        Windows Update logs are now generated using ETW (Event Tracing for Windows).
	Please run the Get-WindowsUpdateLog PowerShell command to convert ETW traces into a readable WindowsUpdate.log.

	NULL
	
	NULL
	
	For more information, please visit https://go.microsoft.com/fwlink/?LinkId=518345 
(5 rows affected, return status = 0)
1>

Có một lá cờ ẩn trong thư mục chính của người dùng Grinch. Nội dung của nó là gì?




Xin chúc mừng, cờ bạn đã khôi phục có chứa mật khẩu của McDatabaseAdmin! Trong nhiệm vụ này, chúng tôi đã học cách sử dụng sqsh để tương tác với MS SQL Server. Chúng tôi biết rằng nếu xp_cmdshell được bật, chúng tôi có thể thực thi các lệnh hệ thống và đọc kết quả đầu ra bằng cách sử dụng sqsh.


Post a Comment

0 Comments