Написать пост

Уязвимость или фича? Несколько инструкций командной строки Windows позволяют перехватить сессию любого авторизованного пользователя

Аватар Антон

Исследователь Александр Корзников обнаружил возможность подключиться к любой запущенной сессии в Windows (с любыми правами), будучи залогиненным под какой-либо другой. Об этом он рассказал в своем блоге, посвященном вопросам компьютерной безопасности.

Первый раз Александр проэксплуатировал уязвимость случайно: открыв в диспетчере задач вкладку «Пользователи», он попробовал подключиться к учетной записи, к которой у него не было доступа, и это у него получилось, причем операционная система не потребовала ввести пароль. Однако когда он попытался переключиться обратно, система потребовала пароль. Александр счел это неожиданным поведением и решил разобраться в вопросе. Причем пользователь второй учетной записи в результате оказался разлогинен, но не получил даже уведомления об этом.

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

Для чего можно использовать эту уязвимость?

Александр поделился сценарием использования такой уязвимости:

  1. Банковский сотрудник, имеющий доступ к управлению банковскими счетами, входит в свою учетную запись.
  2. Во время обеда он отлучается, заблокировав свою учетную запись (но не выйдя из нее) — для возобновления работы ему будет необходимо только ввести пароль, его сессия останется активна и все приложения, которые работали на момент блокировки, останутся в прежнем состоянии.
  3. В это же время системный администратор входит в свою учетную запись на этом же компьютере и получает доступ к учетной записи банковского сотрудника, а значит, и всем запущенным приложениям, то есть к управлению банковскими счетами. Затем он перечисляет все средства президента банка себе на счет и покидает страну.

Особенно опасна эта уязвимость тем, что на нее можно натолкнуться, даже не преследуя цель обойти систему защиты прав доступа. Следующие версии Windows оказались уязвимы:

  • Windows 2012 R2
  • Windows 2008
  • Windows 10
  • Windows 7

Технические детали

Все, что вам необходимо — это иметь доступ к командной строке NT AUTHORITY/SYSTEM. Простейший способ — использовать psexec.exe, но в таком случае утилита должна быть предварительно установлена:

			psexec -s \\localhost cmd
		

Другой способ — создать службу, которая будет подключать атакуемую учетную запись к нашей. Порядок действий следующий:

  1. Получите информацию о всех сессиях:C:\Windows\system32>query user USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME administrator 1 Disc 1 3/12/2017 3:07 PM>localadmin rdp-tcp#55 2 Active . 3/12/2017 3:10 PM
  2. Создайте службу:C:\Windows\system32>sc create sesshijack binpath= "cmd.exe /k tscon 1 /dest:rdp-tcp#55"[SC] CreateService SUCCESS
  3. Запустите службу:net setart sesshijack

После этих действий ваша сессия будет заменена целевой.

Автор также поделился тремя видео, демонстрирующими уязвимость:

На данный момент этот блок не поддерживается, но мы не забыли о нём!Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём!Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём!Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
Следите за новыми постами
Следите за новыми постами по любимым темам
4К открытий4К показов