Игра Яндекс Практикума
Игра Яндекс Практикума
Игра Яндекс Практикума

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

Новости Отредактировано

4К открытий4К показов

Исследователь Александр Корзников обнаружил возможность подключиться к любой запущенной сессии в 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К показов