• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья PowerRunAsSystem

Эрмано

(L3) cache
Пользователь
Регистрация
28.08.2024
Сообщения
261
Решения
1
Реакции
182
Источник: https://github.com/PhrozenIO/PowerRunAsSystem
Перевёл: Эрмано
Специально для xss.pro

Привет, я снова решил покопипастить перевести пару статей, на этот раз перевожу про PowerRunAsSystem - это сценарий PowerShell, также доступный в виде устанавливаемого модуля через галерею PowerShell, предназначенный для выдачи себя за пользователя NT AUTHORITY/SYSTEM и выполнения команд или запуска интерактивных процессов без использования сторонних инструментов. Для этого используются только встроенные функции Windows.
Традиционно повышение привилегий до пользователя SYSTEM из учетной записи администратора требует использования таких инструментов, как PsExec от Sysinternals, или создания собственной службы. С помощью PowerRunAsSystem вы можете достичь той же цели, используя встроенный планировщик задач Windows, избавившись от необходимости использовать внешние утилиты.

Этот инструмент позволяет:

  • Выдать себя за пользователя SYSTEM в текущей сессии
  • Исполнять неинтерактивные команды от имени SYSTEM
  • Запустите новый интерактивный процесс от имени SYSTEM (привязанный к активной сессии).
В случаях, когда нет графического доступа к машине, вы можете перенаправить ввод/вывод порожденного процесса SYSTEM на приемник для взаимодействия(например, приемник Netcat).
Важно отметить, что для запуска процесса SYSTEM в стандартной конфигурации требуются привилегии администратора. Убедитесь, что вы либо получили доступ к удаленному терминалу (например, SSH или WinRM) с правами администратора, либо открыли новый терминал с повышенными привилегиями (Run as Administrator).

Представленные функции
  • Invoke-SystemCommand
  • Invoke-InteractiveSystemProcess
  • Invoke-ImpersonateSystem
  • Invoke-RevertToSelf
Установка

PowerShell Gallery(Рекомендуется)

Для выполнения следующих команд в процессе установки могут потребоваться привилегии (например, права администратора, соответствующие настройки политики выполнения). Убедитесь, что вы понимаете и выполняете эти требования, прежде чем приступать к работе.
Код:
Install-Module -Name PowerRunAsSystem
Import-Module -Name PowerRunAsSystem

Импортировать как скрипт
IEX(Get-Content .\PowerRunAsSystem.ps1 -Raw -Encoding UTF8)

Использованиевание

Invoke-SystemCommand:
  • Запустите новый процесс от имени пользователя SYSTEM через планировщик задач. Обратите внимание, что процесс SYSTEM не будет привязан к активной терминальной сессии, то есть он не будет интерактивным. Это удобно для быстрого выполнения команд от имени SYSTEM без необходимости прямого взаимодействия с процессом.
Доступные аргументы:
ПараметрТипПо умолчаниюОписание
ПриложениеСтроковыйПрограмма для исполнения
АргументСтроковый-Command "whoami | Out-File C:\result.txt"Аргументы программы(опционально)

Invoke-InteractiveSystemProcess​

Создайте новый интерактивный процесс от имени пользователя SYSTEM, который будет привязан к активной терминальной сессии.
Это может быть особенно полезно в сценариях, где требуется интерактивный процесс SYSTEM. Например, при использовании Arcane Server запуск его как интерактивного процесса SYSTEM позволяет захватить как рабочий стол, так и подсказки LogonUI/UAC.
1728844356895.png

Доступные аргументы:
ПараметрТипПо умолчаниюОписание
CommandLineStringpowershell.exeThe complete command line to execute.
HideSwitchNoneIf present, the process is not visible.
RedirectKindChoiceNoneIf the process input/output needs to be redirected to an external source (as discussed below)…
AddressStringNoneUsed if the RedirectKind is set (as described below).
PortInt (R: 0-65535)NoneUsed if the RedirectKind is set (as described below).
Расширенное использование : Флаг RedirectKind

None (по умолчанию)​

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

Reverse​

  • Stdout, stderr и stdin процесса перенаправляются на сетевой сокет в обратном режиме (клиент -> сервер). Такая настройка позволяет взаимодействовать с порожденным процессом, не требуя доступа к рабочему столу, что особенно полезно, когда процесс инициируется из SSH или WinRM-сессии.
Пример:
Создайте новый слушатель Netcat (адаптируйте команду в зависимости от операционной системы и версии Netcat):
nc -l 4444

Затем запустите интерактивный процесс SYSTEM:
Invoke-InteractiveSystemProcess -RedirectKind "Reverse" -Address "127.0.0.1" -Port 4444

Наслаждайтесь оболлочкой от имени SYSTEM!

Invoke-ImpersonateSystem​

Выдать себя за пользователя SYSTEM в текущей терминальной сессии.
1728844821671.png

Invoke-RevertToSelf​

Остановка выдачи себя за другого пользователя
1728844870372.png


Итог:
В этом переводе мы изучили набор скриптов - PowerRunAsSystem, который может очень сильно помочь, при проведении пентестов.

С вами был Эрмано, спасибо за внимание.
 
Последнее редактирование:
Это эксплутация SeImpersonatePrivilege по типу как potato или нечно другое?
Вот этого не знаю, тут надо исходники изучить, но я думаю, что также как в семействе картофельных
 
Вот этого не знаю, тут надо исходники изучить, но я думаю, что также как в семействе картофельных
к сожалению нет, проверил, это что-то по типу sudo. Даже не знаю где бы могло пригодиться. А так хотелось чтоб это была реализация семейства potato
 
к сожалению нет, проверил, это что-то по типу sudo. Даже не знаю где бы могло пригодиться. А так хотелось чтоб это была реализация семейства potato
Механизм повышение прав до уровня NT AUTHORITY\SYSTEM предоставляет возможность исполнения кода в максимально привилегированном контексте на системе (за исключением исполнения в ядре). Повышение до этого уровня привилегий в инструменте осуществляется через создание запланированной задачи, которая должна исполниться от лица NT AUTHORITY\SYSTEM. Права на создание подобной задачи по умолчанию есть у администраторов системы.

 
Механизм повышение прав до уровня NT AUTHORITY\SYSTEM предоставляет возможность исполнения кода в максимально привилегированном контексте на системе (за исключением исполнения в ядре). Повышение до этого уровня привилегий в инструменте осуществляется через создание запланированной задачи, которая должна исполниться от лица NT AUTHORITY\SYSTEM. Права на создание подобной задачи по умолчанию есть у администраторов системы.


Я в курсе, проверял же, выше написал. Просто не уловил смысла, ведь права Администратора нужны. Какая разница между Администратор и SYSTEM по большому счету.
 
Я в курсе, проверял же, выше написал. Просто не уловил смысла, ведь права Администратора нужны. Какая разница между Администратор и SYSTEM по большому счету.

Большая разница.

Кратко:
Для винды это совершенно разный контекст безопасности процесса.

От SYSTEM процессы запускаются с токеном, который имеет высокий уровень целостности. Фактически, процесс имеет доступ к бОльшему кол-ву защищаемых объектов винды.
 
Про интегрити лвл я тоже думал, у системы он ХАЙ должен быть. Нет мороки с UAC. В таком случае да, разница есть, модуль может быть полезен где нибудь.
 
к сожалению нет, проверил, это что-то по типу sudo. Даже не знаю где бы могло пригодиться. А так хотелось чтоб это была реализация семейства potato
Жаль, ну мало ли, вдруг пригодится где-то, никогда не знаешь
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх