Какая учетная запись Windows используется, когда никто не вошел в систему?

25

Когда никто не вошел в Windows (отображается экран входа в систему), от какого пользователя выполняются текущие процессы? (Видео / звуковые драйверы, сеанс входа в систему, любое серверное программное обеспечение, средства управления доступом и т. Д. Они не могут быть ни пользователем, ни предыдущим пользователем, потому что никто не вошел в систему. Как насчет процессов, которые были запущены пользователем, но продолжают запускаться после выхода из системы? (например, HTTP, FTP-серверы и другие сетевые устройства). Переключаются ли они на учетную запись SYSTEM? Если запущенный пользователем процесс переключается на SYSTEM, это указывает на очень серьезную уязвимость. Работает ли этот процесс под этим пользователем продолжать работать от имени этого пользователя после выхода из системы?

Поэтому взлом SETHC позволяет использовать CMD в качестве SYSTEM?

Кунал Чопра
источник
«Переключение пользователей» на самом деле не является черно-белой операцией в Windows. Служба может выдавать себя за нескольких пользователей одновременно и при этом использовать исходную учетную запись. Это полезно для сервисов, которые должны действовать от имени определенных пользователей, например, для аутентифицированных посетителей сайта.
MSalters
3
Windows - многопользовательская операционная система, что означает, что разные процессы могут принадлежать разным пользователям одновременно . Это не так, как только вы входите в систему, весь компьютер «переключается» на ваш аккаунт
el.pescado

Ответы:

40

Когда никто не вошел в Windows (отображается экран входа в систему), от какого пользователя выполняются текущие процессы? (Видео / звуковые драйверы, сеанс входа в систему, любое серверное программное обеспечение, средства контроля доступа и т. Д.

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

Сеанс входа в систему, я не могу проверить прямо сейчас, но я уверен, что он также использует SYSTEM. Вы можете увидеть logonui.exe в Process Hacker или SysInternals ProcExp . На самом деле, вы можете видеть все таким образом.

«Серверное программное обеспечение», см. Службы Windows ниже.

Как насчет процессов, которые были запущены пользователем, но продолжают выполняться после выхода из системы? (Например, HTTP, FTP-серверы и другие сетевые устройства). Они переключаются на учетную запись SYSTEM?

Здесь есть три вида:

  1. Обычные старые "фоновые" процессы. Они запускаются под той же учетной записью, что и те, кто их запускал, и не запускаются после выхода из системы. Процесс выхода из системы убивает их всех.

    «HTTP, FTP-серверы и другие сетевые устройства» не работают как обычные фоновые процессы. Они работают как сервисы.

  2. Windows "обслуживает" процессы. Они запускаются не напрямую, а через Service Manager. По умолчанию службы запускаются как LocalSystem (что isanae говорит как SYSTEM), хотя для них могут быть настроены выделенные учетные записи.

    (Конечно, практически никто не беспокоится. Они просто устанавливают XAMPP или WampServer или какую-то другую хрень, и позволяют ей работать как SYSTEM, навсегда не исправленной.)

    Я думаю, что в современных системах Windows сервисы также могут иметь свои собственные идентификаторы безопасности, но, опять же, я еще не слишком много исследовал.

  3. Дела по расписанию. Они запускаются службой «Планировщик заданий» «в фоновом режиме» и всегда запускаются под учетной записью, настроенной в задаче (обычно независимо от того, кто ее создал).

Если запущенный пользователем процесс переключается на SYSTEM, это указывает на очень серьезную уязвимость

Это не уязвимость, поскольку для установки службы у вас уже должны быть права администратора. Наличие прав администратора уже позволяет вам делать практически все.

(см. также различные другие неуязвимости того же типа)

grawity
источник
2
Возможно, стоит отметить, что большая часть IIS работает с учетными записями с более низкими привилегиями, созданными специально для процессов IIS из коробки. (Это относится ко многим серверам Windows HTTP, FTP и т. Д.). Подробнее см. Здесь . Так что это часто зависит от настроек по умолчанию той программы, которую вы используете.
jpmc26
1
СИСТЕМА и Локальный администратор по сути одно и то же. Если у вас есть один, вы можете получить другой, и ОС только устанавливает контрольно-пропускные пункты, предназначенные главным образом для предотвращения ошибок. (Примечание. The Old New Thing не является официальной документацией Microsoft.)
CVN
3
В наши дни многие службы работают как NetworkService или LocalService, а не как LocalSystem.
Бен Фойгт
2
Начиная с Windows 7 и 2008 R2, управляемые учетные записи служб и виртуальные учетные записи позволяют запускать службы под их собственными удостоверениями, поэтому у вас нет группы служб, совместно использующих LocalService / NetworkService / LocalSystem, что ограничивает доступ, если одна служба имеет уязвимость.
января
2

Процессы входа и предварительного входа в систему выполняются как SYSTEM (также называемая LocalSystem). Фактически, один из способов заставить оболочку (такую ​​как приглашение CMD) работать в качестве SYSTEM в некоторых версиях Windows - это заменить программу специальных возможностей, например программу чтения с экрана, экранную лупу или экранную клавиатуру, копией (или ссылка на) CMD.EXE, а затем используйте ярлык для включения этой функции специальных возможностей перед входом в систему. Вы получите командную строку, даже если в систему не вошли пользователи, и CMDона будет работать как SYSTEM.

(Примечание: очевидно, что это опасно, поскольку позволяет людям обходить процесс входа в Windows. Никогда не следует настраивать компьютер таким образом, а затем оставлять его таким.)

CBHacking
источник
1
Работает в Windows 7, заменил sethc.exe на cmd.exe в C: \ Windows \ System32 \
1

Они не «переключаются» ни на что; такие процессы никогда не запускаются в контексте текущего пользователя.
Они принадлежат SYSTEMпользователю.

Любые процессы и услуги, принадлежащие отдельному пользователю, завершаются при выходе из системы.
Вот что означает выход из системы .

Гонки легкости с Моникой
источник
Я не уверен ... Во-первых, я нашел пост MS Technet, где (не так много это значит) принятый персоналом ответ заявил, что услуги не прекращаются при выходе из системы. Я не уверен, что это точное определение выхода из системы в более широком смысле: я видел несколько демонов в Linux, которые остались после того, как я вышел из системы, psа затем как другой
underscore_d
1
Это не правильно. Службы могут быть запущены от имени другого пользователя, и они будут запускаться и продолжать работать без «входа» этого пользователя. Они начнут свой собственный сеанс с учетными данными этих пользователей, поэтому на самом деле пользователь будет входить в систему во время работы службы, но программы для рабочего стола / автозапуска и т. Д. Запускаться не будут, и это то, что обычные пользователи понимают как «вошли в систему». Тем не менее, служба будет работать с учетными данными этого пользователя и имеет доступ к файлам этих пользователей.
Йозеф
@Josef: ваш аргумент сводится к тому, что «некоторые люди неправильно используют термин« залогинен ». Фактический смысл вашего комментария согласуется с моим ответом: этот пользователь считается вошедшим в систему до тех пор, пока у него есть службы / процессы, запущенные для его учетной записи.
Легкость гонки с Моникой
@LightnessRacesinOrbit нет, есть реальная разница. Если вы создаете службу со своей учетной записью, которая запускается при загрузке, не будет запущен процесс для отображения рабочего стола (поэтому не будет запущен dwm.exe или explorer.exe), все ваши программы автозапуска не будут и т. д. Итак, если у вас есть интерактивный сеанс входа в систему, активнее намного больше, чем если бы запущен только сеанс службы. Что именно "залогинено" открыто для обсуждения. Даже если служба работает с вашими учетными данными, вам все равно придется войти в систему, чтобы использовать Windows самостоятельно!
Йозеф
1
Что ж, «такие процессы никогда не выполняются в текущем пользовательском контексте», все равно неправильно. Сервисы работают в пользовательском контексте, установленном для них. Для встроенных служб Windows это одна из системных учетных записей. Для других сервисов это может быть любой аккаунт. В особенности серверное программное обеспечение должно создавать новую учетную запись пользователя и запускать эти учетные данные.
Йозеф