nt authority система что это
Nt authority система что это
Добрый день! Уважаемые читатели и гости одного из популярнейших блогов по системному администрированию Pyatilistnik.org. В прошлый раз мы с вами подробно рассмотрели командлет Restart-Computer и научились с его помощью производить локальную или удаленную перезагрузку компьютера или сервера, это полезный навык. В сегодняшней публикации я бы хотел вас научить запускать оболочку PowerShell с максимальными правами от имени системной учетной записи «СИСТЕМА (NT AUTHORITY\SYSTEM)» или ее еще иногда называют Local System. Это то же полезный скил, который вас может сильно выручить в разных обстоятельствах. Давайте от слов к практике.
Что можно делать с PowerShell от имени SYSTEM
Я не буду расписывать, что из себя представляет локальная, системная учетная запись, напомню лишь, что из под нее работает подавляющее количество сервисов Windows и она имеет максимальные права на все в вашей ОС (Папки, файлы, кусты реестра, тома). Имея запущенное окно PowerShell от системной учетной записи вы можете абсолютно все в этой системе, например можете отключать службы, которые были ограничены, или подключаться к чужой RDP сессии, поправить защищенные ветки реестра, например, как в случае с ошибкой 10016.
Методы запуска PowerShell от имени системной учетной записи
Я могу выделить ряд методов, которыЕ помогут нам решить нашу задачу, сразу хочу отметить, что вы спокойно можете при наличии прав запускать оболочку и удаленно от имени SYSTEM.
Запуск PowerShell от учетной записи NT AUTHORITY\SYSTEM из PSexec
Далее вам необходимо ваш архив извлечь, дабы получить папку с утилитами. У вас есть два варианта запуска PSexec, из командной строки или же из свой PowerShell. Давайте опробуем командную строку, которую вы должны ОБЯЗАТЕЛЬНО открыть от имени администратора, далее вы должны перейти в cmd в расположение с утилитой PSexec. Делается это командой:
После чего вы пишите команду, которая запустит окно PowerShell от имени системы:
В результате у вас откроется дополнительное окно PowerShell в режиме администратора и от имени «nt authority\система«. Проверить, это можно командой whoami.
То же самое можно сделать и из самой PowerShell(), тут вам нужно будет так же открыть PowerShell от имени администратора и ввести команды:
Чтобы удаленно получить окно PowerShell через PSexec, вам необходимо выполнить:
Где svt2019s01, это имя моего сервера с Windows Server 2019. Как видим идет попытка подключения, где на удаленном компьютере запускается служба PSexec, вам будут необходимы права локального администратора там. Если подключение не проходит, то у вас блокируется брандмауэром, убедитесь, что порт WinRM (TCP 5985) у вас разрешен.
После успешного подключения можно ввести команду hostname, чтобы посмотреть, правильно ли вы подключились, ну и посмотреть командой whoami, из под кого запущен PowerShell, как видно из скриншота, это учетная запись nt authority\система.
Так же вы можете из оболочки запустить команду:
Она так же все запустит, единственное поменяйте в ней путь до утилиты PSexec на свой.
Запуск PowerShell от учетной записи NT AUTHORITY\SYSTEM из планировщика заданий
Данный метод более изощренный нежели использование внешней утилиты PSexec, но я уверен, что его так же полезно знать. В окне выполнить введите команду taskschd.msc.
Открываем библиотеку планировщика заданий и щелкаем по нему правым кликом, из контекстного меню выберите пункт «Создать простую задачу«
Задаем ее имя у меня оно будет «Запуск PowerShell NT».
В настройках тригера выставим запуск задачи «Однократно«.
Задаем время запуска.
Оставляем пункт «Запустить программу» и нажимаем далее.
Тут нам необходимо заполнить два пункта:
В поле программы вам нужно вписать строку в зависимости от разрядности вашей архитектуры:
В качестве аргумента, вам необходимо указать путь до нашего скрипта, расположенного по пути C:\Scripts\Get-CurrentUser.ps1
ExecutionPolicy, это команда позволяющая выполнять не подписанные скрипты.
заканчиваем создание простого задания, обязательно выставите галку «Открыть окно «Свойств» для этой задачи после нажатия кнопки «Готово«.
заканчиваем создание простого задания, обязательно выставите галку «открыть окно «Свойств» для этой задачи после нажатия кнопки «Готово». Далее у вас откроется окно свойств данной задачи, вы можете заметить, что она по умолчанию выполняется от того пользователя, кто ее создал, в моем примере, это ROOT\Администратор, это нужно поменять. Нажмите кнопку изменить.
Если у вас русская Windows, то в окне поиска введите «СИСТЕМА», если английская версия, то введите SYSTEM.
В результате вы увидите, что задача запускается от системной учетной записи (nt authority\система).
Это пользователь, который для каких-либо устаревших целей отображается как группа?
Примечание. Что такое пользователь NT AUTHORITY \ SYSTEM? похоже, но не отвечает на вопрос, почему он отображается как группа и ведет себя как пользователь.
Во-вторых, NT-AUTHORITY и SYSTEM не являются ни учетными записями, ни группами, несмотря на то, что говорят различные другие источники (даже внутри Microsoft). У SID обычно есть имя, которое отображается при необходимости. Учетная запись пользователя будет предоставлять свой SID в качестве основного SID для токена доступа, который также будет определять имя, отображаемое различными утилитами. Но токен доступа может содержать дополнительные SID, например, для всех групп, к которым принадлежит эта учетная запись пользователя. При проверке разрешений Windows будет искать любой SID в маркере доступа, который имеет это разрешение.
Некоторые известные Windows SID будут иметь имена, сообщаемые Windows, хотя на самом деле они не принадлежат какой-либо учетной записи.
SID не должен даже определять учетную запись пользователя или группу. Он просто определяет набор разрешений. Вышеупомянутая статья Википедии добавляет:
Windows предоставляет или запрещает доступ и привилегии к ресурсам на основе списков контроля доступа (ACL), которые используют SID для уникальной идентификации пользователей и их членства в группах. Когда пользователь входит в систему, генерируется токен доступа, который содержит SID пользователя и группы и уровень привилегий пользователя. Когда пользователь запрашивает доступ к ресурсу, токен доступа сверяется с ACL, чтобы разрешить или запретить конкретное действие с конкретным объектом.
SID NT-AUTHORITY\SYSTEM может быть добавлен к другим учетным записям. Например, это сказано об учетной записи LocalSystem :
Учетная запись LocalSystem является предопределенной локальной учетной записью, используемой диспетчером управления службами. [. ] Его токен включает идентификаторы NT AUTHORITY \ SYSTEM и BUILTIN \ Administrators; эти учетные записи имеют доступ к большинству системных объектов.
В приведенном выше тексте уже можно увидеть путаницу, которая царит даже в документации Microsoft относительно системных идентификаторов безопасности, которые не являются ни учетными записями, ни группами, а представляют собой просто набор разрешений. Эта путаница распространяется и на другие утилиты и статьи, поэтому любая возвращенная информация должна быть тщательно изучена.
В статье Microsoft « Известные идентификаторы безопасности в операционных системах Windows» подробно описаны все системные идентификаторы безопасности, некоторые из которых я приведу ниже:
Nt authority система что это
Этот форум закрыт. Спасибо за участие!
Лучший отвечающий
Вопрос
Добрый день.
Антивирусное ПО (Kaspersky Endpoint Security 10 для Windows) в системе мониторинга (KSC10) статистика «наиболее заражающее пользователи» NT AUTHORITY\система более 4 тыс алертов за сутки
пример:
UDS:DangerousObject.Multi.Generic 13 ноября 2017 г. 9:39:03 C:\Windows\31779272.exe неизвестно Результат: Удалено: UDS:DangerousObject.Multi.Generic Пользователь: NT AUTHORITY\система (Системный пользователь) Объект: C:\Windows\31779272.exe
UDS:DangerousObject.Multi.Generic 13 ноября 2017 г. 9:16:56 C:\Windows\33089992.exe неизвестно Результат: Удалено: UDS:DangerousObject.Multi.Generic Пользователь: NT AUTHORITY\система (Системный пользователь) Объект: C:\Windows\33089992.exe
Есть ли какая то возможно ограничить использование учётной записи NT AUTHORITY\система? Сеть доменная.
Ответы
Скорее всего, это у вас компьютеры кто-то по сети заражает: подключается по сети с правами администратора и копирует туда тело вируса (скорее всего, чтобы запустить его либо как службу, либо через WMI). Вариантов заражения тут два: либо производится подключение с правами администратора с заражённой машины, либо через использование уязвимости.
А по поводу использования уязвимостей (прищнаком чего будет отсутствие вхоодо по сети) нужно начать с того, что установить все обновления безопасности на все подверженные атакам компьютеры. Если не поможет (что вряд ли), то придётся анализировать сетевой трафик, чтобы установить источник атаки.
Все ответы
Как не прескорбно но лечить нужно ту систему, которая ОС.
Ограничить пользователя система нельзя да и смысла нет так как это равносильно стрельбе в ногу, с тем же успехом можно выключить ПК.
Так же стоит помнить о необходимости установки обновлений ОС на оставшихся машинах, обновлении и активации проверок антивируса, включении UAC, смена админских паролей, настройке бекапов критичных сервисов и пр. бестпрактисы которые многие игнорируют.
Дабы попробовать локализовать проблему проверяйте службы, отключая все что не подписано сертификатами МС, проверяйте шедульные задачи, парки автозапуска, ветки реестра автозапуска и пр.
The opinion expressed by me is not an official position of Microsoft
Основы повышения привилегий в Windows
Решил для себя и для тех, кому будет полезно, собрать все что знаю, но не помню по теме, в этой статье. Делитесь советами. Основным источником этой статьи является эта.
Я вольно перевел и добавил немного от себя, того, что насобирал и узнал из других источников.
В общем, тут представлены способы, которые помогут нам достигнуть цели повышения привилегий.
Отправной точкой для этой небольшой статьи является непривилегированная оболочка (учетная запись). Возможно, мы использовали эксплойт или провели атаку и получили эту оболочку.
В принципе, в начальный момент времени мы не понимаем машину: что она делает, к чему она подключена, какой уровень привилегий у нас есть или даже какая это операционная система.
Сначала нам нужно получить нужную нам информацию, чтобы понять, где мы вообще находимся и что имеем:
Эта команда позволяет определить, как из нее видно, Название и версию ОС. Можно выполнить ее и без параметров, тогда вывод команды будет более полным, но нам достаточно и этого.
Далее важно узнать имя машины и имя пользователя, под которым мы подключились.
Сначала глянем на имеющиеся интерфейсы и таблицу маршрутизации.
где
/query — Вывод данных о всех запланированных задачах,
/fo LIST — Вывод в список.
/v — Вывод подробных сведений о задании.
Следующая команда связывает запущенные процессы с запущенными службами.
где,
/SVC — Отображение служб для каждого процесса.
Также посмотрим список запущенных служб Windows.
Полезно также посмотреть информацию о драйверах скомпрометированной системы.
Далее хочется упомянуть о, наверное, самой полезной команде Windows — wmic. Команда WMIC (Windows Management Instrumentation Command) используется для получения сведений об оборудовании и системе, управления процессами и их компонентами, а также изменения настроек с использованием возможностей инструментария управления Windows (Windows Management Instrumentation или WMI). Хорошее описание.
К сожалению, некоторые конфигурации Windows по умолчанию не разрешают доступ к WMIC, если пользователь не входит в группу Администраторов (что действительно хорошая идея). Любая версия XP не позволяла доступ к WMIC с непривилегированной учетной записи.
Напротив, Windows 7 Professional и Windows 8 Enterprise по умолчанию позволяли пользователям с низкими привилегиями использовать WMIC.
По обычаю — параметры программы:
Прежде чем идти дальше стоит пробежаться по собранной информации. Также стоит обратить внимание на установленные в системе патчи, так как любая информация о дырах в системе даст нам дополнительную опору для повышения своих привилегий. По номеру HotFix можно поискать уязвимости по повышению привилегий.
Далее мы рассмотрим автоматическую установку. Если существует необходимость установки и настройки большого парка машин, то как правило, технический персонал не будет перемещаться от машины к машине для настройки персонального каждой. Существует несколько решений для автоматической установки. Для нас не так важно, что это за методы и как они работают, а важно то, что они оставляют конфигурационные файлы, которые используются для процесса установки, содержащие много конфиденциальной информации, такой как ключ продукта операционной системы и пароль администратора. Что нас больше всего интересует, так это пароль администратора, который мы можем использовать для повышения наших привилегий.
Как правило, это следующие каталоги:
Данные файлы содержат пароли в открытом виде или кодировке BASE64.
Примеры:
Sysprep.inf — пароль в открытом виде.
«
Sysprep.xml — пароль в кодировке base64.
«
Unattended.xml — пароль в кодировке base64.
Также для хостов, подключенных к домену можно поискать файл Group.xml, который содержит зашифрованный AES256 пароль, но который можно расшифровать, т.к. ключ выложен на msdn (https://msdn.microsoft.com/en-us/library/cc422924.aspx) и других источниках. Но это в случае, если используется политика создания локальных пользователей на хостах или, например, задании пароля локальному Администратору.
Например, у меня лежит тут:
Открыв его, ищем параметр “cpassword”.
Далее нужно расшифровать данную последовательность. Используем, например, CrypTool. Сначала раскодируем Base64.
Особенности Base64 в том, что его длина должна быть кратна 4. Поэтому считаем блоки по 4, и если в последнем блоке не хватает символов, то недостающие дописываем символами «=».
У меня вышло 2 «=».
Далее расшифруем. Применяя тот ключ, что выше.
Убираем лишние точки, разделяющие знаки и получаем пароль.
В дополнение к Group.xml вот несколько других файлов предпочтений политики, которые могут иметь дополнительный набор атрибутов «cPassword”:
Для того, чтобы иметь возможность использовать это, мы должны проверить, что оба раздела реестра установлены, и если это так, мы можем получить SYSTEM shell. Проверим:
В состав Metasploit входит специальный модуль exploit/windows/local/always_install_elevated, который создает MSI-файл со встроенным в него специальным исполняемым файлом, который извлекается и выполняется установщиком с привилегиями системы. После его выполнения msi-файл прекращает установку, чтобы предотвратить регистрацию действия в системе. К тому же если запустить установку с ключом /quiet, то даже не выведется ошибка.
Ну и немного полезных команд по поиску по системе:
Команда ниже будет искать в файловой системе имена файлов, содержащие определенные ключевые слова. Вы можете указать любое количество ключевых слов.
Поиск определенных типов файлов по ключевому слову, эта команда может генерировать много выходных данных.
Аналогично две команды ниже могут быть использованы для grep реестра по ключевым словам, в данном случае „password“.
На данный момент у нас уже есть достаточно, чтобы получить системный шел. Но есть еще пара направленbй атаки для получения желаемого результата: мы рассмотрим службы Windows и разрешения для файлов и папок. Наша цель здесь — использовать слабые разрешения для повышения привилегий сеанса.
Мы будем проверять много прав доступа, в этом нам поможет accesschk.exe, который является инструментом от Microsoft Sysinternals Suite. Microsoft Sysinternals содержит много отличных инструментов. Пакет можно загрузить с сайта Microsoft technet (https://docs.microsoft.com/ru-ru/sysinternals/downloads/sysinternals-suite).
Мы можем проверить необходимый уровень привилегий для каждой службы с помощью accesschk.
Мы можем видеть разрешения, которые имеет каждый уровень пользователя.
Accesschk может автоматически проверять, есть ли у нас доступ на запись к службе Windows с определенным уровнем пользователя. Как правило, как пользователь с низкими привилегиями, мы хотим проверить „Пользователей“. Удостоверьтесь, что проверили, к каким группам пользователей вы принадлежите.
-c В качестве имени указана служба Windows, например ssdpsrv (укажите “*” для вывода на экран всех служб)
-d Обрабатывать только каталоги
-e Выводить только явным образом заданные уровни целостности (только для ОС Windows Vista)
-k В качестве имени указан раздел реестра, например hklm\software
-n Выводить только объекты, не имеющие правил доступа
-p В качестве имени указано имя или идентификатор процесса (PID), например cmd.exe (укажите в качестве имени “*”, чтобы вывести на экран все процессы)
-q Опустить заголовок
-r Выводить только объекты, к которым есть право доступа на чтение
-s Рекурсивная обработка
-v Выводить подробную информацию
-w Выводить только объекты, к которым есть право доступа на запись
Также есть еще одна интересная команда:
Позволяет найти запись в реестре о файле, который запускался автоматически, но сейчас уже отсутствует в системе. Запись могла остаться, если например, сервис был неправильно удален. При каждом запуске система безуспешно пытается запустить этот файл. Этой ситуацией также можно воспользоваться для расширения своих полномочий. Просто на место этого файла можно подставить наш.
Далее рассмотрим две уязвимости:
Первая: реплицируем результаты поста, написанного Parvez из GreyHatHacker; „Elevating privileges by exploiting weak folder permissions“ (http://www.greyhathacker.net/?p=738).
Этот пример является частным случаем угона dll. Программы обычно не могут функционировать сами по себе, у них есть много ресурсов, которые им нужно подключить (в основном dll, но и собственные файлы). Если программа или служба загружает файл из каталога, к которому у нас есть доступ на запись, мы можем злоупотребить этим, чтобы запустить оболочку с привилегиями, под которыми работает программа.
Как правило, приложение Windows будет использовать предопределенные пути поиска, чтобы найти dll, и он будет проверять эти пути в определенном порядке. Dll угон обычно происходит путем размещения вредоносных dll по одному из этих путей. Эта проблема может быть устранена путем указания приложению абсолютных путей к необходимой dll.
Порядок поиска dll:
Так как dll не существует, мы в конечном итоге прохождения всех путей поиска. Как пользователь с низким уровнем привилегий у нас немного шансов положить вредоносный dll в п. 1-4, 5. Но если у нас есть доступ на запись в любой из каталогов, то наши шансы на победу велики.
Давайте посмотрим, как это работает на практике, для нашего примера мы будем использовать IKEEXT (модули ключей IPSec IKE и AuthIP) сервис, который пытается загрузить wlbsctrl.dll.
Любой каталог в „C:\“ даст доступ на запись для аутентифицированных пользователей, это дает нам шанс.
F — полный доступ.
(OI) — наследование объектами.
(CI) — наследование контейнерами.
(IO) — только наследование.
(NP) — запрет на распространение наследования.
(I)- наследование разрешений от родительского контейнера.
Прежде чем перейти к действию, необходимо проверить состояние службы IKEEXT. В этом случае мы можем увидеть, что он установлен на „AUTO_START“!
Теперь мы знаем, что у нас есть необходимые условия, и мы можем создать вредоносную dll и перехвата оболочки!
После передачи evil.dll на наш целевой компьютер все, что нам нужно сделать, это переименовать его в wlbsctrl.dll и переместить в „C:\Python27“. Как только это будет сделано, нам нужно терпеливо ждать перезагрузки машины (или мы можем попытаться принудительно перезагрузить), и мы получим системную оболочку.
После этого осталось только дождаться перезагрузки системы.
Для нашего последнего примера мы рассмотрим запланированные задачи. Опишу принцип, т.к. у всех могут быть разные случаи.
Находим процесс, службу, приложение запускаемое планировщиком задач от SYSTEM.
Проверяем права доступа на папку, где находится наша цель.
Ясно, что это серьезная проблема конфигурации, но еще хуже тот факт, что любой прошедший проверку Пользователь (аутентифицированный пользователь) имеет доступ на запись в эту папку. В этом примере мы можем просто перезаписать двоичный исполняемый файл файлом, сгенерированным в metasploit.
Можно закодировать дополнительно.
Теперь остается только загрузить вредоносный исполняемый файл и перезаписать его в папку выполняемого файла. Как только это будет сделано, мы можем спокойно идти спать и рано с утра получить системный шел.
Эти два примера должны дать нам представление об уязвимостях, которые необходимо искать при рассмотрении разрешений для файлов и папок. Потребуется время, чтобы изучить все пути binpath для служб windows, запланированные задачи и задачи автозапуска.
Напоследок пара советов по использованию accesschk.exe.
Найти все слабые разрешения для папок на диске.
Найти все слабые разрешения для файлов на диске.